


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、javaweb期末復(fù)習(xí)知識點整理1、 Web應(yīng)用概述 1. URL與URIURL: 統(tǒng)一資源定位器URI:統(tǒng)一資源定位符2. 常見HTML標(biāo)簽 3. 表單的處理 4. 靜態(tài)文檔與動態(tài)文檔的概念:靜態(tài)文檔是一種以文件的形式存放在服務(wù)器端的文檔,客戶發(fā)出對該文檔的請求,服務(wù)器返回這個文檔。動態(tài)文檔是指文檔的內(nèi)容可根據(jù)需要動態(tài)生成,又可分為服務(wù)器端動態(tài)文檔和客戶端動態(tài)文檔技術(shù)。5. Servlet概念:服務(wù)器端小程序,是使用ServletAPI以及相關(guān)類編寫的java程序,主要用來擴展web服務(wù)器的功能。6. 處理404錯誤:查看給定的路徑名是否正確,查看Servlet類文件是否在classes目錄
2、下,查看文件內(nèi)容是否正確,查看tomcat是否啟動2、 Servlet技術(shù)模型 1. Servlet的API:包,包v Servlet接口及方法 :1) public void init(ServletConfig config):完成Servlet初始化并準(zhǔn)備提供服務(wù)。容器傳給該方法一個ServletConfig類型的參數(shù)。2) public void service(ServletRequest req,ServletResponse res)throw ServletException,IOException:對每個客戶請求容器調(diào)用一次該方法,它允許Servlet為請求提供響應(yīng)。3) p
3、ublic void destroy()該方法由容器調(diào)用,指示Servlet清除本身,釋放請求的資源并準(zhǔn)備結(jié)束服務(wù)。4) public ServletConfig getServletConfig()返回關(guān)于Servlet的配置信息,如傳遞給init()方法的參數(shù)。5) public String getServletInfo()返回關(guān)于Servlet的信息,如作者,版本及版權(quán)信息。v ServleConfig接口作用及方法 v HttpServlet類 :新的service方法,doGet,doPostv HttpServletRequest接口及常用方法 v HttpServletResp
4、onse接口及常用方法2. Servlet的開發(fā)步驟 v 編寫一個Servlet類 v 編譯 v 部署 (1)在tomcat的虛擬目錄下,創(chuàng)建Web目錄(2)將編譯好的.class文件復(fù)制到Web目錄的WEB-INFclasses目錄(3)修改配置文件WEB-INF(4)啟動tomcat v 運行3. Servlet的執(zhí)行過程 1) 用戶通過單擊超鏈接或提交表單向容器請求訪問Servlet,容器分析這個請求,創(chuàng)建request和response兩個對象 2) 容器根據(jù)請求的URL找到正確的Servlet,為這個請求創(chuàng)建一個線程對象(每次請求都創(chuàng)建一個線程) 3) 容器調(diào)用Servlet的ser
5、vice方法,把請求和響應(yīng)對象作為參數(shù)傳遞給該方法 4) 調(diào)用Servlet的doGet()或doPost()方法 5) 向客戶發(fā)送響應(yīng):Servlet使用相應(yīng)對象獲得輸出流對象,調(diào)用有關(guān)方法將響應(yīng)寫給客戶,響應(yīng)通過容器發(fā)送給瀏覽器。4. Servlet的生命周期加載實例化Servlet初始化Servlet(init)為客戶提供服務(wù)(service)銷毀Servlet(destroy)5. 分析請求 http請求結(jié)構(gòu):請求行請求頭空行數(shù)據(jù)get方法與post方法的對比public String getParameter(String name)public String getParamete
6、rValues(String name)public Enumeration getParameterNames()6. 請求轉(zhuǎn)發(fā)RequestDispatcher dispatcher=(location);Dispatcher. forward(request, response)7. 發(fā)送響應(yīng)響應(yīng)結(jié)構(gòu):狀態(tài)行響應(yīng)頭空行響應(yīng)數(shù)據(jù)(“text/html;charset=gb2312”);PrintWriter out=();響應(yīng)重定向:(“URL”); return;響應(yīng)重定向與請求轉(zhuǎn)發(fā)的比較:forward()方法轉(zhuǎn)發(fā)請求是服務(wù)器端控制權(quán)的轉(zhuǎn)向,客戶端地址欄中不顯示轉(zhuǎn)發(fā)后的資源地址。sen
7、dRedirect()方法是服務(wù)器向瀏覽器發(fā)送一個特殊的響應(yīng),它使瀏覽器連接到新的位置,瀏覽器地址欄可看到地址的變化。使用重定向,資源不能位于WEB-INF目錄下。頁面錯誤:200表示請求成功,404表示頁面沒有找到,500表示服務(wù)器內(nèi)部錯誤3、 Servlet容器模型 1. Web應(yīng)用程序的部署(1)在tomcat的虛擬目錄下,創(chuàng)建Web目錄(2)將編譯好的.class文件復(fù)制到Web目錄的WEB-INFclasses目錄(3)修改配置文件WEB-INF(4)啟動tomcat 2. 理解Web應(yīng)用程序的部署描述文件下面的代碼展示了在部署描述文件中<servlet>元素的一個典型的
8、使用:<servlet> <servlet-name>helloServlet</servlet-name> 定義Servlet名稱 <servlet-class> 指定Servlet類的完整名稱 </servlet-class> <init-param>向Servlet傳遞的初始化參數(shù),可以定義多個 <param-name>email</param-name></param-value> </init-param> <servlet-mapping> 定義一個映
9、射 <servlet-name>HelloServlet</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping> <load-on-startup>2</load-on-startup> </servlet>3. ServletConfig得到ServletConfig接口對象的方法 :ServletConfig config = getServletConfig();覆蓋Servlet的init方法。ServletCo
10、nfig接口共定義了下面4個方法: public String getInitParameter(String name):返回指定名稱的初始化參數(shù)值(是從DD文件中取出)public Enumeration getInitParameterNames ()public String getServletName() :返回DD文件中<servlet-name>的名稱public ServletContext getServletContext():返回Servlet所在上下文對象4. ServletContext接口§ 使用RequestDispatcher實現(xiàn)請求轉(zhuǎn)發(fā)
11、 § ServletRequest的getRequestDispatcher()方法,可以傳遞一個相對路徑,§ ServletContext的getRequestDispatcher()方法只能傳遞以“/”開頭的路徑。 § 通過ServletContext對象共享數(shù)據(jù)4、 會話管理 1. 會話管理 v 理解會話的基本思想和管理機制 v 了解會話對象HttpSession及常見方法 調(diào)用獲取HttpSession對象:HttpSession session = (true);將信息存入會話public void setAttribute (String name,
12、Object value)查找與會話相關(guān)聯(lián)的信息 public Object getAttribute(String name) public Enumeration getAttributeNames() public void removeAttribute(String name)v 使用HttpSession對象通常需要三步:(1)為客戶創(chuàng)建或獲得與請求關(guān)聯(lián)的會話對象;(2)在會話對象中添加或刪除名/值對屬性;(3)如果需要可使會話失效。2. 通過Cookie(一小段文字信息)支持會話 v Cookie類的常用方法: getName、 getValue、setValue、setMaxA
13、ge和getMaxAge; v 向客戶端發(fā)送Cookie § 創(chuàng)建Cookie對象 Cookie c = new Cookie("username", "hacker"); § 將Cookie放入到HTTP響應(yīng)中 (c) 從客戶端讀取Cookie Cookie cookies = (); if (cookies!=null) for(int i = 0;i<i+) Cookie cookie = cookiesi; if().equals(cookieName) cookieValue = (); 3. URL重寫與
14、隱藏表單域重寫正在重定向的URL調(diào)用encodeRedirectURL( )方法 ( 在HTML頁面中,可以使用下面代碼實現(xiàn)隱藏的表單域: <input type="hidden" name="session" value="a1234">5、 JSP技術(shù)模型 1. JSP基本語法 <% %> JSP 指令:page指令、include指令和taglib指令<%! %> JSP 聲明:理解<%! int count = 0; %>和<% int count = 0; %>的區(qū)
15、別 <% %> JSP小腳本<%= %> JSP表達(dá)式<jsp: > JSP 動作:jsp標(biāo)準(zhǔn)動作、JSTL中的動作、用戶自定義動作 jsp標(biāo)準(zhǔn)動作包括<jsp:forward>、<jsp:include>、<jsp:plugin>、<jsp:useBean> 、<jsp:getProperty>、<jsp:setProperty> <%- -%> JSP注釋2. JSP頁面生命周期 v 理解JSP的執(zhí)行過程 瀏覽器訪問一個jsp頁面,服務(wù)器端的web容器將jsp轉(zhuǎn)換為ser
16、vlet,并處理執(zhí)行此servlet中的相關(guān)內(nèi)容,產(chǎn)生響應(yīng)結(jié)果,然后再由web容器將響應(yīng)結(jié)果返回客戶端瀏覽器。v 理解JSP頁面轉(zhuǎn)換 v 理解JSP頁面的生命周期頁面轉(zhuǎn)換頁面編譯加載類創(chuàng)建實例調(diào)用jspInit()方法調(diào)用_jspService()方法調(diào)用jspDestroy()方法3. 理解page指令屬性 v page指令用于告訴容器關(guān)于JSP頁面的全局屬性,該指令適用于整個轉(zhuǎn)換單元而不僅僅是它所聲明的頁面。 v 語法格式如下: <% page language="java" extends=""合法的實現(xiàn)了接口的java類 import=&q
17、uot; | package.*,." 導(dǎo)入在jsp中使用的java類和接口 contentType="mimeType ;charset=characterSet" | "text/html; charset=ISO-8859-1" 指定輸出類型 session="true | false" 指定jsp是否參加http會話 buffer="none | 8kb | sizekb" 指定輸出緩沖區(qū)的大小 autoFlush="true | false" isThreadSafe=&qu
18、ot;true | false" info="text" errorPage="relativeURL" 用相對URL指定另一個jsp頁面來處理錯誤 isErrorPage="true | false" 指定是否要用另一個jsp頁面來處理錯誤%> 4. JSP隱含變量(內(nèi)置對象)v JSP 有以下九種內(nèi)置對象,包括:§ request,請求對象(是HttpServletRequest的隱含變量)§ session,會話對象(是HttpSession的隱含變量)§ applic
19、ation,應(yīng)用程序?qū)ο螅ㄊ荢ervletContext的隱含變量)§ page,頁面對象§ response,響應(yīng)對象§ pageContext,頁面上下文對象§ out,輸出對象§ config,配置對象§ exception,例外對象 5. 作用域?qū)ο?應(yīng)用作用域application: ServletContext :在整個web應(yīng)用程序有效會話作用域session:HttpSession :在一個用戶會話范圍內(nèi)有效請求作用域request: ServletRequest :在用戶的請求和轉(zhuǎn)發(fā)的請求內(nèi)有效頁面作用域page:
20、PageContext :只在當(dāng)前頁面內(nèi)有效6、 Web組件重用與JavaBeans1. 靜態(tài)包含和動態(tài)包含 v 靜態(tài)包含是在JSP頁面轉(zhuǎn)換階段將另一個文件的內(nèi)容包含到當(dāng)前JSP文件中產(chǎn)生一個servlet。靜態(tài)包含使用include指令,語法: <% include file="relativeURL" %> 包含的文件在當(dāng)前Web應(yīng)用程序下,可以是任何基于文本的文件,如HTML、JSP、XML文件,甚至是簡單的.txt文件。 v 動態(tài)包含是通過JSP標(biāo)準(zhǔn)動作< jsp:include>實現(xiàn)的,它是在請求時將另一個頁面的輸出包含到主頁面的輸出中。
21、動態(tài)包含使用jsp:include標(biāo)準(zhǔn)動作,其語法如下所示:<jsp:include page="relativeURL" flush="true" /><%cincludefile=” ”%> <jsp:include page=” ” flush=”true”/> 修改了被包含的文件后,需更新源文件修改了被包含的文件后,不需更新源文件包含外部頁面的過程在原JSP頁面被編譯成Servlet時進(jìn)行包含外部頁面的過程在運行時進(jìn)行使用<jsp:forward>動作把請求轉(zhuǎn)發(fā)到其他組件,然后由轉(zhuǎn)發(fā)到的組件把響應(yīng)發(fā)
22、送給客戶v 該動作的格式為: <jsp:forward page="relativeURL" />v page屬性的值為轉(zhuǎn)發(fā)到的組件的相對URL,它可以使用請求時屬性表達(dá)式。v 它與<jsp:include>動作的不同之處在于,當(dāng)轉(zhuǎn)發(fā)到的頁面處理完輸出后,并不將控制轉(zhuǎn)回主頁面。v 使用<jsp:forward>動作,主頁面也不能包含任何輸出。2. JavaBeans及序列化 v JavaBean就是使用Java語言定義的類,而這種類的設(shè)計需要遵循Sun制定的JavaBean規(guī)范文檔中描述的有關(guān)約定。v 在Java模型中,通過JavaBea
23、n可以無限擴充Java程序的功能。v JavaBean的最大好處是可以實現(xiàn)代碼的重復(fù)利用,另外在JSP頁面中使用JavaBean可使代碼更簡潔,也易維護,也可充分利用面向?qū)ο笳Z言的特性。 v 在JSP程序中常用JavaBean來封裝業(yè)務(wù)邏輯、數(shù)據(jù)庫操作等等,可以很好地實現(xiàn)業(yè)務(wù)邏輯和表示邏輯的分離。3. Javabeans規(guī)范遵循下面3個規(guī)范的Java類作為JavaBean § 類必須是public的;類必須具有無參數(shù)的public構(gòu)造方法,§ JavaBeans類的成員變量一般稱為屬性(property)。對每個屬性訪問權(quán)限一般定義為private或protected,而不
24、是定義為public的。注意:屬性名必須以小寫字母開頭。 § 對每個屬性,一般定義兩個public方法,它們分別稱為訪問方法(getXxx)和修改方法(setXxx),允許容器訪問和修改bean的屬性。 JavaBean的主要特性 § 是一個Java類§ 有一個無參數(shù)的構(gòu)造函數(shù)§ 不應(yīng)該有公開的實例變量§ 對值的獲取采用getXxx和setXxx方法來訪問§ boolean型屬性,允許用is代替get和set 4. 在Servlet中使用JavaBeans通過JavaBeans共享數(shù)據(jù) etRequestDispatcher(&quo
25、t;/").forward(request,response); 5. 在JSP中使用JavaBeansv 使用<jsp:useBean>§ <jsp:useBean>動作通過五個屬性來定制該動作的行為: id 、scope 、class 、type 、beanName § <jsp:useBean id=”customer” class=” scope="session" /> v 使用<jsp:setProperty>§ <% page import=""
26、%>§ <jsp:useBean id="customer" class="" />§ <jsp:setProperty name="customer" property="custName" value=“zxm" /> v 使用<jsp:getProperty><jsp:getProperty name="customer" property="email" />6. 理解MVC設(shè)計模式及
27、其開發(fā)步驟v 理解MVC設(shè)計模式 v Model代表了數(shù)據(jù)對象,用JavaBeans實現(xiàn)v View用來在屏幕上顯示數(shù)據(jù)對象的當(dāng)前狀態(tài),是應(yīng)用程序的外觀,用JSP頁面實現(xiàn)v Controller定義了用戶接口對用戶輸入反應(yīng)的方式,它處理數(shù)據(jù)對象,用Servlet實現(xiàn) v 開發(fā)步驟 v 1. 定義JavaBeans表示數(shù)據(jù)v 2. 使用Servlet處理請求v 3.調(diào)用業(yè)務(wù)邏輯完成相應(yīng)功能,填寫JavaBeans對象數(shù)據(jù) v 4.結(jié)果的存儲v 5. 轉(zhuǎn)發(fā)請求到JSP頁面 v 6. 從JavaBeans對象中提取數(shù)據(jù)7、 JDBC數(shù)據(jù)庫訪問 1. JDBC數(shù)據(jù)庫訪問的一般步驟 1)加載驅(qū)動程序:使
28、用Class類的forName()靜態(tài)方法,如(""); 2) 建立連接對象:使用DriverManager類的getConnection() ,如 String dburl = jdbc: conn = (dburl, "root", "111111"); 3) 創(chuàng)建語句對象:使用Connection接口的不同方法創(chuàng)建,如 Statement stmt = ();4) 獲得SQL語句的執(zhí)行結(jié)果:對于查詢語句,調(diào)用executeQuery(String sql)方法,如:String sql = "SELECT * FROM
29、 books" ;ResultSet rst = (sql) ;while() (1)+"t") ; 對于語句如CREATE、ALTER、DROP、INSERT、UPDATE、DELETE等須executeUpdate(String sql)方法。5) 關(guān)閉建立的對象: close()方法釋放資源 2. JDBC API:Connection接口、Statement接口、ResultSet接口 3. 理解DAO設(shè)計模式v DAO(Data Access Object)稱為數(shù)據(jù)訪問對象。v DAO設(shè)計模式可以在使用數(shù)據(jù)庫的應(yīng)用程序中實現(xiàn)業(yè)務(wù)邏輯和數(shù)據(jù)訪問邏輯分離,從
30、而使應(yīng)用的維護變得簡單。v 它通過將數(shù)據(jù)訪問實現(xiàn)(通常使用JDBC技術(shù))封裝在DAO類中,提高應(yīng)用程序的靈活性。 8、 自定義標(biāo)簽 1. 自定義標(biāo)簽的開發(fā)步驟 創(chuàng)建標(biāo)簽處理類(tag handler);創(chuàng)建標(biāo)簽庫描述文件(TLD);在JSP文件中導(dǎo)入標(biāo)簽庫和使用標(biāo)簽。2. 理解TLD文件 <?xml version="" encoding="UTF-8" > <taglib version=""> <tlib-version></tlib-version> <uri>
31、60; <tag><name>hello2</name><tag-class></tag-class><body-content>empty</body-content><description>Prints Hello user! </description><attribute><name>user</name><required>false</required><rtexprvalue>true</rtexprvalue></attribute></tag></taglib> 3. 空標(biāo)簽、帶屬性標(biāo)簽和帶標(biāo)簽體的開發(fā)在JSP頁面要使用自定義標(biāo)簽,需要通過<taglib>指令聲明自定義標(biāo)簽的前綴和標(biāo)簽庫的URI,格式如下所示:<% taglib prefix= "test" uri=""%>的代碼如下: <% pag
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45264-2025登機輪椅車
- GB/T 20243.2-2025聲學(xué)道路表面對交通噪聲影響的測量第2部分:近距法
- 2024年育嬰師常識試題及答案
- 企業(yè)招聘居間合同范本
- 合同模板庫:輕松搞定各類協(xié)議
- 合同審查與簽訂指南
- 《第一單元 和計算機交朋友:4 裝扮桌面》教學(xué)設(shè)計-2024-2025學(xué)年浙江攝影版(三起)(2020)信息技術(shù)三年級上冊
- 衛(wèi)生員疫情防控課件
- 中小學(xué)課件制作
- 2025合同法:合同的執(zhí)行與遵守
- 中醫(yī)護理三基練習(xí)題庫+答案
- 2025年護士三基考核試題及答案
- 七年級下冊2025春季歷史 教學(xué)設(shè)計《明朝對外關(guān)系》 學(xué)習(xí)資料
- 《設(shè)備管理標(biāo)準(zhǔn)化實施手冊》
- 湖南省長沙市明達(dá)中學(xué)2024-2025學(xué)年九年級下學(xué)期入學(xué)考試英語試卷(含答案無聽力原文及音頻)
- 汽車站建設(shè)項目可行性研究報告
- 《中國古典園林之美》課件
- 2024年09月上海2024交通銀行交銀金融科技校園招考筆試歷年參考題庫附帶答案詳解
- 2025年廣西中馬欽州產(chǎn)業(yè)園區(qū)管委會招商服務(wù)有限公司招聘筆試參考題庫附帶答案詳解
- 《李寧戰(zhàn)略選擇》課件
- DB33T 2222-2019 船載寬帶衛(wèi)星通信終端主要技術(shù)參數(shù)要求
評論
0/150
提交評論