javaweb期末復(fù)習(xí)知識(shí)點(diǎn)整理_第1頁(yè)
javaweb期末復(fù)習(xí)知識(shí)點(diǎn)整理_第2頁(yè)
javaweb期末復(fù)習(xí)知識(shí)點(diǎn)整理_第3頁(yè)
javaweb期末復(fù)習(xí)知識(shí)點(diǎn)整理_第4頁(yè)
javaweb期末復(fù)習(xí)知識(shí)點(diǎn)整理_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Web應(yīng)用概述URL與URIURL:統(tǒng)一資源定位器URI:統(tǒng)一資源定位符常見(jiàn)HTML標(biāo)簽表單的處理靜態(tài)文檔與動(dòng)態(tài)文檔的概念:靜態(tài)文檔是一種以文件的形式存放在服務(wù)器端的文檔,客戶(hù)發(fā)出對(duì)該文檔的請(qǐng)求,服務(wù)器返回這個(gè)文檔。動(dòng)態(tài)文檔是指文檔的內(nèi)容可根據(jù)需要?jiǎng)討B(tài)生成,又可分為服務(wù)器端動(dòng)態(tài)文檔和客戶(hù)端動(dòng)態(tài)文檔技術(shù)。Servlet概念:服務(wù)器端小程序,是使用ServletAPI以及相關(guān)類(lèi)編寫(xiě)的java程序,主要用來(lái)擴(kuò)展web服務(wù)器的功能。處理404錯(cuò)誤:查看給定的路徑名是否正確,查看Servlet類(lèi)文件是否在classes目錄下,查看web.xml文件內(nèi)容是否正確,查看tomcat是否啟動(dòng)Servlet技術(shù)模型Servlet的API:javax.servlet包,javax.servlet.http包Servlet接口及方法:publicvoidinit(ServletConfigconfig):完成Servlet初始化并準(zhǔn)備提供服務(wù)。容器傳給該方法一個(gè)ServletConfig類(lèi)型的參數(shù)。publicvoidservice(ServletRequestreq,ServletResponseres)throwServletException,IOException:對(duì)每個(gè)客戶(hù)請(qǐng)求容器調(diào)用一次該方法,它允許Servlet為請(qǐng)求提供響應(yīng)。publicvoiddestroy()該方法由容器調(diào)用,指示Servlet清除本身,釋放請(qǐng)求的資源并準(zhǔn)備結(jié)束服務(wù)。publicServletConfiggetServletConfig()返回關(guān)于Servlet的配置信息,如傳遞給init()方法的參數(shù)。publicStringgetServletInfo()返回關(guān)于Servlet的信息,如作者,版本及版權(quán)信息。ServleConfig接口作用及方法HttpServlet類(lèi):新的service方法,doGet,doPostHttpServletRequest接口及常用方法HttpServletResponse接口及常用方法Servlet的開(kāi)發(fā)步驟編寫(xiě)一個(gè)Servlet類(lèi)編譯部署(1)在tomcat的虛擬目錄下,創(chuàng)建Web目錄(2)將編譯好的.class文件復(fù)制到Web目錄的WEB-INF\classes目錄(3)修改配置文件WEB-INF\web.xml(4)啟動(dòng)tomcat運(yùn)行Servlet的執(zhí)行過(guò)程用戶(hù)通過(guò)單擊超鏈接或提交表單向容器請(qǐng)求訪問(wèn)Servlet,容器分析這個(gè)請(qǐng)求,創(chuàng)建request和response兩個(gè)對(duì)象容器根據(jù)請(qǐng)求的URL找到正確的Servlet,為這個(gè)請(qǐng)求創(chuàng)建一個(gè)線程對(duì)象(每次請(qǐng)求都創(chuàng)建一個(gè)線程)容器調(diào)用Servlet的service方法,把請(qǐng)求和響應(yīng)對(duì)象作為參數(shù)傳遞給該方法調(diào)用Servlet的doGet()或doPost()方法向客戶(hù)發(fā)送響應(yīng):Servlet使用相應(yīng)對(duì)象獲得輸出流對(duì)象,調(diào)用有關(guān)方法將響應(yīng)寫(xiě)給客戶(hù),響應(yīng)通過(guò)容器發(fā)送給瀏覽器。Servlet的生命周期加載實(shí)例化Servlet——初始化Servlet(init)——為客戶(hù)提供服務(wù)(service)——銷(xiāo)毀Servlet(destroy)分析請(qǐng)求http請(qǐng)求結(jié)構(gòu):請(qǐng)求行——請(qǐng)求頭——空行——數(shù)據(jù)get方法與post方法的對(duì)比publicStringgetParameter(Stringname)publicString[]getParameterValues(Stringname)publicEnumerationgetParameterNames()請(qǐng)求轉(zhuǎn)發(fā)RequestDispatcherdispatcher=request.getRequestDispatcher(location);Dispatcher.forward(request,response)request.setAttributerequest.getAttribute發(fā)送響應(yīng)響應(yīng)結(jié)構(gòu):狀態(tài)行——響應(yīng)頭——空行——響應(yīng)數(shù)據(jù)response.setContentType(“text/html;charset=gb2312”);PrintWriterout=response.getWriter();響應(yīng)重定向:response.sendRedirect(“URL”);return;響應(yīng)重定向與請(qǐng)求轉(zhuǎn)發(fā)的比較:forward()方法轉(zhuǎn)發(fā)請(qǐng)求是服務(wù)器端控制權(quán)的轉(zhuǎn)向,客戶(hù)端地址欄中不顯示轉(zhuǎn)發(fā)后的資源地址。sendRedirect()方法是服務(wù)器向?yàn)g覽器發(fā)送一個(gè)特殊的響應(yīng),它使瀏覽器連接到新的位置,瀏覽器地址欄可看到地址的變化。使用重定向,資源不能位于WEB-INF目錄下。頁(yè)面錯(cuò)誤:200表示請(qǐng)求成功,404表示頁(yè)面沒(méi)有找到,500表示服務(wù)器內(nèi)部錯(cuò)誤Servlet容器模型Web應(yīng)用程序的部署(1)在tomcat的虛擬目錄下,創(chuàng)建Web目錄(2)將編譯好的.class文件復(fù)制到Web目錄的WEB-INF\classes目錄(3)修改配置文件WEB-INF\web.xml(4)啟動(dòng)tomcat理解Web應(yīng)用程序的部署描述文件web.xml下面的代碼展示了在部署描述文件中<servlet>元素的一個(gè)典型的使用:<servlet><servlet-name>helloServlet</servlet-name>定義Servlet名稱(chēng)<servlet-class>com.myserver.HelloServlet指定Servlet類(lèi)的完整名稱(chēng)</servlet-class><init-param>向Servlet傳遞的初始化參數(shù),可以定義多個(gè)<param-name>email</param-name><param-value>hacker@163.com</param-value></init-param><servlet-mapping>定義一個(gè)映射<servlet-name>HelloServlet</servlet-name><url-pattern>/Hello</url-pattern></servlet-mapping><load-on-startup>2</load-on-startup></servlet>ServletConfig得到ServletConfig接口對(duì)象的方法:ServletConfigconfig=getServletConfig();覆蓋Servlet的init方法。ServletConfig接口共定義了下面4個(gè)方法:publicStringgetInitParameter(Stringname):返回指定名稱(chēng)的初始化參數(shù)值(是從DD文件中取出)publicEnumerationgetInitParameterNames()publicStringgetServletName():返回DD文件中<servlet-name>的名稱(chēng)publicServletContextgetServletContext():返回Servlet所在上下文對(duì)象ServletContext接口使用RequestDispatcher實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)ServletRequest的getRequestDispatcher()方法,可以傳遞一個(gè)相對(duì)路徑,ServletContext的getRequestDispatcher()方法只能傳遞以“/”開(kāi)頭的路徑。通過(guò)ServletContext對(duì)象共享數(shù)據(jù)會(huì)話管理會(huì)話管理理解會(huì)話的基本思想和管理機(jī)制了解會(huì)話對(duì)象HttpSession及常見(jiàn)方法調(diào)用request.getSession獲取HttpSession對(duì)象:HttpSessionsession=request.getSession(true);將信息存入會(huì)話publicvoidsetAttribute(Stringname,Objectvalue)查找與會(huì)話相關(guān)聯(lián)的信息publicObjectgetAttribute(Stringname)publicEnumerationgetAttributeNames()publicvoidremoveAttribute(Stringname)使用HttpSession對(duì)象通常需要三步:(1)為客戶(hù)創(chuàng)建或獲得與請(qǐng)求關(guān)聯(lián)的會(huì)話對(duì)象;(2)在會(huì)話對(duì)象中添加或刪除名/值對(duì)屬性;(3)如果需要可使會(huì)話失效。通過(guò)Cookie(一小段文字信息)支持會(huì)話Cookie類(lèi)的常用方法:getName、getValue、setValue、setMaxAge和getMaxAge;向客戶(hù)端發(fā)送Cookie創(chuàng)建Cookie對(duì)象Cookiec=newCookie("username","hacker");

將Cookie放入到HTTP響應(yīng)中response.addCookie(c)從客戶(hù)端讀取CookieCookie[]cookies=request.getCookies();if(cookies!=null){for(inti=0;i<cookies.length;i++){Cookiecookie=cookies[i];if(cookie.getName().equals(cookieName))cookieValue=cookie.getValue();}}URL重寫(xiě)與隱藏表單域重寫(xiě)正在重定向的URL調(diào)用encodeRedirectURL()方法response.sendRedirect(

response.encodeRedirectURL(http://localhost/store/catalog)在HTML頁(yè)面中,可以使用下面代碼實(shí)現(xiàn)隱藏的表單域:<inputtype="hidden"name="session"value="a1234">JSP技術(shù)模型JSP基本語(yǔ)法<%@%>JSP指令:page指令、include指令和taglib指令<%!%>JSP聲明:理解<%!intcount=0;%>和<%intcount=0;%>的區(qū)別<%%>JSP小腳本<%=%>JSP表達(dá)式<jsp:>JSP動(dòng)作:jsp標(biāo)準(zhǔn)動(dòng)作、JSTL中的動(dòng)作、用戶(hù)自定義動(dòng)作jsp標(biāo)準(zhǔn)動(dòng)作包括<jsp:forward>、<jsp:include>、<jsp:plugin>、<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty><%----%>JSP注釋JSP頁(yè)面生命周期理解JSP的執(zhí)行過(guò)程瀏覽器訪問(wèn)一個(gè)jsp頁(yè)面,服務(wù)器端的web容器將jsp轉(zhuǎn)換為servlet,并處理執(zhí)行此servlet中的相關(guān)內(nèi)容,產(chǎn)生響應(yīng)結(jié)果,然后再由web容器將響應(yīng)結(jié)果返回客戶(hù)端瀏覽器。理解JSP頁(yè)面轉(zhuǎn)換理解JSP頁(yè)面的生命周期頁(yè)面轉(zhuǎn)換——頁(yè)面編譯——加載類(lèi)——?jiǎng)?chuàng)建實(shí)例——調(diào)用jspInit()方法——調(diào)用_jspService()方法——調(diào)用jspDestroy()方法理解page指令屬性page指令用于告訴容器關(guān)于JSP頁(yè)面的全局屬性,該指令適用于整個(gè)轉(zhuǎn)換單元而不僅僅是它所聲明的頁(yè)面。語(yǔ)法格式如下:<%@page[language="java"][extends="package.class"]合法的實(shí)現(xiàn)了javax.servlet.jsp.JspPage接口的java類(lèi)[import="{package.class|package.*},..."]導(dǎo)入在jsp中使用的java類(lèi)和接口[contentType="mimeType[;charset=characterSet]"|"text/html;charset=ISO-8859-1"]指定輸出類(lèi)型[session="true|false"]指定jsp是否參加http會(huì)話[buffer="none|8kb|sizekb"]指定輸出緩沖區(qū)的大小[autoFlush="true|false"][isThreadSafe="true|false"][info="text"][errorPage="relativeURL"]用相對(duì)URL指定另一個(gè)jsp頁(yè)面來(lái)處理錯(cuò)誤[isErrorPage="true|false"]指定是否要用另一個(gè)jsp頁(yè)面來(lái)處理錯(cuò)誤%>

JSP隱含變量(內(nèi)置對(duì)象)JSP有以下九種內(nèi)置對(duì)象,包括:request,請(qǐng)求對(duì)象(是HttpServletRequest的隱含變量)session,會(huì)話對(duì)象(是HttpSession的隱含變量)application,應(yīng)用程序?qū)ο螅ㄊ荢ervletContext的隱含變量)page,頁(yè)面對(duì)象response,響應(yīng)對(duì)象pageContext,頁(yè)面上下文對(duì)象out,輸出對(duì)象config,配置對(duì)象exception,例外對(duì)象作用域?qū)ο髴?yīng)用作用域application:ServletContext:在整個(gè)web應(yīng)用程序有效會(huì)話作用域session:HttpSession:在一個(gè)用戶(hù)會(huì)話范圍內(nèi)有效請(qǐng)求作用域request:ServletRequest:在用戶(hù)的請(qǐng)求和轉(zhuǎn)發(fā)的請(qǐng)求內(nèi)有效頁(yè)面作用域page:PageContext:只在當(dāng)前頁(yè)面內(nèi)有效Web組件重用與JavaBeans靜態(tài)包含和動(dòng)態(tài)包含靜態(tài)包含是在JSP頁(yè)面轉(zhuǎn)換階段將另一個(gè)文件的內(nèi)容包含到當(dāng)前JSP文件中產(chǎn)生一個(gè)servlet。靜態(tài)包含使用include指令,語(yǔ)法:<%@includefile="relativeURL"%>包含的文件在當(dāng)前Web應(yīng)用程序下,可以是任何基于文本的文件,如HTML、JSP、XML文件,甚至是簡(jiǎn)單的.txt文件。動(dòng)態(tài)包含是通過(guò)JSP標(biāo)準(zhǔn)動(dòng)作<jsp:include>實(shí)現(xiàn)的,它是在請(qǐng)求時(shí)將另一個(gè)頁(yè)面的輸出包含到主頁(yè)面的輸出中。動(dòng)態(tài)包含使用jsp:include標(biāo)準(zhǔn)動(dòng)作,其語(yǔ)法如下所示:<jsp:includepage="relativeURL"flush="true"/><jsp:include><%@cincludefile=””%><jsp:includepage=””flush=”true”/>修改了被包含的文件后,需更新源文件修改了被包含的文件后,不需更新源文件包含外部頁(yè)面的過(guò)程在原JSP頁(yè)面被編譯成Servlet時(shí)進(jìn)行包含外部頁(yè)面的過(guò)程在運(yùn)行時(shí)進(jìn)行

使用<jsp:forward>動(dòng)作把請(qǐng)求轉(zhuǎn)發(fā)到其他組件,然后由轉(zhuǎn)發(fā)到的組件把響應(yīng)發(fā)送給客戶(hù)該動(dòng)作的格式為:<jsp:forwardpage="relativeURL"/>page屬性的值為轉(zhuǎn)發(fā)到的組件的相對(duì)URL,它可以使用請(qǐng)求時(shí)屬性表達(dá)式。它與<jsp:include>動(dòng)作的不同之處在于,當(dāng)轉(zhuǎn)發(fā)到的頁(yè)面處理完輸出后,并不將控制轉(zhuǎn)回主頁(yè)面。使用<jsp:forward>動(dòng)作,主頁(yè)面也不能包含任何輸出。JavaBeans及序列化JavaBean就是使用Java語(yǔ)言定義的類(lèi),而這種類(lèi)的設(shè)計(jì)需要遵循Sun制定的JavaBean規(guī)范文檔中描述的有關(guān)約定。在Java模型中,通過(guò)JavaBean可以無(wú)限擴(kuò)充Java程序的功能。JavaBean的最大好處是可以實(shí)現(xiàn)代碼的重復(fù)利用,另外在JSP頁(yè)面中使用JavaBean可使代碼更簡(jiǎn)潔,也易維護(hù),也可充分利用面向?qū)ο笳Z(yǔ)言的特性。在JSP程序中常用JavaBean來(lái)封裝業(yè)務(wù)邏輯、數(shù)據(jù)庫(kù)操作等等,可以很好地實(shí)現(xiàn)業(yè)務(wù)邏輯和表示邏輯的分離。Javabeans規(guī)范遵循下面3個(gè)規(guī)范的Java類(lèi)作為JavaBean類(lèi)必須是public的;類(lèi)必須具有無(wú)參數(shù)的public構(gòu)造方法,JavaBeans類(lèi)的成員變量一般稱(chēng)為屬性(property)。對(duì)每個(gè)屬性訪問(wèn)權(quán)限一般定義為private或protected,而不是定義為public的。注意:屬性名必須以小寫(xiě)字母開(kāi)頭。對(duì)每個(gè)屬性,一般定義兩個(gè)public方法,它們分別稱(chēng)為訪問(wèn)方法(getXxx)和修改方法(setXxx),允許容器訪問(wèn)和修改bean的屬性。JavaBean的主要特性是一個(gè)Java類(lèi)有一個(gè)無(wú)參數(shù)的構(gòu)造函數(shù)不應(yīng)該有公開(kāi)的實(shí)例變量對(duì)值的獲取采用getXxx和setXxx方法來(lái)訪問(wèn)boolean型屬性,允許用is代替get和set在Servlet中使用JavaBeans通過(guò)JavaBeans共享數(shù)據(jù)//創(chuàng)建實(shí)例并設(shè)置屬性CustomerBeancustomer=newCustomerBean();customer.setCustName(request.getParameter("custName"));customer.setEmail(request.getParameter("email"));customer.setPhone(request.getParameter("phone"));request.setAttribute("customer"customer);getServletContext().getRequestDispatcher("/customer.jsp").forward(request,response);在JSP中使用JavaBeans使用<jsp:useBean><jsp:useBean>動(dòng)作通過(guò)五個(gè)屬性來(lái)定制該動(dòng)作的行為:id、scope、class、type、beanName<jsp:useBeanid=”customer”class=”com.model.CustomerBean”scope="session"/>使用<jsp:setProperty><%@pageimport="com.model.CustomerBean"%><jsp:useBeanid="customer"class="com.model.CustomerBean"/><jsp:setPropertyname="customer"property="custName"value=“zxm"/>使用<jsp:getProperty><jsp:getPropertyname="customer"property="email"/>理解MVC設(shè)計(jì)模式及其開(kāi)發(fā)步驟理解MVC設(shè)計(jì)模式Model—代表了數(shù)據(jù)對(duì)象,用JavaBeans實(shí)現(xiàn)View—用來(lái)在屏幕上顯示數(shù)據(jù)對(duì)象的當(dāng)前狀態(tài),是應(yīng)用程序的外觀,用JSP頁(yè)面實(shí)現(xiàn)Controller—定義了用戶(hù)接口對(duì)用戶(hù)輸入反應(yīng)的方式,它處理數(shù)據(jù)對(duì)象,用Servlet實(shí)現(xiàn)開(kāi)發(fā)步驟1.定義JavaBeans表示數(shù)據(jù)2.使用Servlet處理請(qǐng)求3.調(diào)用業(yè)務(wù)邏輯完成相應(yīng)功能,填寫(xiě)JavaBeans對(duì)象數(shù)據(jù)4.結(jié)果的存儲(chǔ)5.轉(zhuǎn)發(fā)請(qǐng)求到JSP頁(yè)面6.從JavaBeans對(duì)象中提取數(shù)據(jù)JDBC數(shù)據(jù)庫(kù)訪問(wèn)JDBC數(shù)據(jù)庫(kù)訪問(wèn)的一般步驟1)加載驅(qū)動(dòng)程序:使用Class類(lèi)的forName()靜態(tài)方法,如Class.forName("com.mysql.jdbc.Driver");2)建立連接對(duì)象:使用DriverManager類(lèi)的getConnection(),如Stringdburl=jdbc:mysql://localhost:3306/bankConnectionconn=DriverManager.getConnection(dburl,"root","111111");3)創(chuàng)建語(yǔ)句對(duì)象:使用Connection接口的不同方法創(chuàng)建,如Statementstmt=conn.createStatement();4)獲得SQL語(yǔ)句的執(zhí)行結(jié)果:對(duì)于查詢(xún)語(yǔ)句,調(diào)用executeQuery(Stringsql)方法,如:Stringsql="SELECT*FROMbooks";ResultSetrst=stmt.executeQuery(sql);while(rst.next()){out.print(rst.getString(1)+"\t");}對(duì)于語(yǔ)句如CREATE、ALTER、DROP、INSERT、UPDATE、DELETE等須executeUpdate(Stringsql)方法。5)關(guān)閉建立的對(duì)象:close()方法釋放資源JDBCAPI:Connection接口、Statement接口、ResultSet接口理解DAO設(shè)計(jì)模式DAO(DataAccessObject)稱(chēng)為數(shù)據(jù)訪問(wèn)對(duì)象。DAO設(shè)計(jì)模式可以在使用數(shù)據(jù)庫(kù)的應(yīng)用程序中實(shí)現(xiàn)業(yè)務(wù)邏輯和數(shù)據(jù)訪問(wèn)邏輯分離,從而使應(yīng)用的維護(hù)變得簡(jiǎn)單。它通過(guò)將數(shù)據(jù)訪問(wèn)實(shí)現(xiàn)(通常使用JDBC技術(shù))封裝在DAO類(lèi)中,提高應(yīng)用程序的靈活性。自定義標(biāo)簽自定義標(biāo)簽的開(kāi)發(fā)步驟創(chuàng)建標(biāo)簽處理類(lèi)(taghandler);創(chuàng)建標(biāo)簽庫(kù)描述文件(TLD);在JSP文件中導(dǎo)入標(biāo)簽庫(kù)和使用標(biāo)簽。理解TLD文件<?xmlversion="1.0"encoding="UTF-8"?><taglibversion="2.0"><tlib-version>1.0</tlib-version><uri>http://localhost/sampleLib</uri>

<tag><name>hello2</name><tag-class>sampleLib.HelloTag2</tag-class><body-content>empty</body-content><description>PrintsHellouser!</description><attribute><name>user</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib>空標(biāo)簽、帶屬性標(biāo)簽和帶標(biāo)簽體的開(kāi)發(fā)在JSP頁(yè)面要使用自定義標(biāo)簽,需要通過(guò)<taglib>指令聲明自定義標(biāo)簽的前綴和標(biāo)簽庫(kù)的URI,格

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論