久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長(zhǎng)、見(jiàn)賢思齊
當(dāng)前位置:公文素材庫(kù) > 計(jì)劃總結(jié) > 工作總結(jié) > java web總結(jié)

java web總結(jié)

網(wǎng)站:公文素材庫(kù) | 時(shí)間:2019-05-28 03:18:54 | 移動(dòng)端:java web總結(jié)

java web總結(jié)

JavaWeb總結(jié)

1.JSP運(yùn)行原理

(1)用戶通過(guò)客戶端瀏覽器向服務(wù)器發(fā)送請(qǐng)求。

(2)JSP文件將JSP引擎編譯成Java的class文件,即servlet。(3)將產(chǎn)生的servlet加載到內(nèi)存執(zhí)行。

(4)Servlet的運(yùn)行結(jié)果以HTML(或XML)形式通過(guò)web服務(wù)器返回客戶端的瀏覽器。

2.web項(xiàng)目設(shè)計(jì)

(1)公開(kāi)目錄(2)web_INF目錄(3)Class目錄

3.JSP的基本語(yǔ)法

(1)腳本元素:聲明、腳本段、表達(dá)式。(2)腳本段:

(3)聲明:不會(huì)產(chǎn)生任何輸出內(nèi)容→聲明全局變量。(4)表達(dá)式:(5)EL表達(dá)式:${}

(6)指令元素:不在客戶端可見(jiàn)(7)page指令、include指令、taglib指令

page指令:language屬性、contentType(text/html)、text/plainapplication/msword、application/x-msexecl、PageEncoding、info、import屬性.

include指令:在JSP頁(yè)面中靜態(tài)包含一個(gè)文件taglib指令:指令元素翻譯階段執(zhí)行,動(dòng)作元素執(zhí)行階段被執(zhí)行。

用于包含其他文件可以是靜態(tài)文件,也可以是動(dòng)態(tài)文件。包含動(dòng)態(tài)文件時(shí)用傳(建一值)考點(diǎn):

4.指令與動(dòng)作的區(qū)別(include)1.執(zhí)行時(shí)間不同

指令是偏譯時(shí)包含靜態(tài)文件

動(dòng)作是運(yùn)行時(shí)包含的文件2.引入內(nèi)容不同

指令引入靜態(tài)文本(html.jsp)。動(dòng)作引入執(zhí)行頁(yè)面或severlet的應(yīng)答文本。

5.JSP內(nèi)置對(duì)象

Out,request,response,session,application,page,pageContext,exception,config

request客戶端向服務(wù)端發(fā)送請(qǐng)求。

response用于服務(wù)器端封裝JSP處理請(qǐng)求后產(chǎn)生的結(jié)果。response對(duì)象的sendRedirect(url)方法相當(dāng)于兩次請(qǐng)求。

而在網(wǎng)址不變情況下內(nèi)部跳轉(zhuǎn)不同頁(yè)面,但依舊屬于同一次請(qǐng)求

6.session和cookie的區(qū)別

1.存放地點(diǎn)不同

Session存放在服務(wù)器端,cookie存放在客戶端的硬盤(pán)里2.存活時(shí)間

session隨用戶訪問(wèn)服務(wù)器而產(chǎn)生,隨客戶下線或超時(shí)而消失3.安全性

session存放在服務(wù)器端,不能被修改,且隨客戶端瀏覽器的關(guān)閉而消失,安全性較好。Cookie存放在客戶端,安全性較差。

7.數(shù)據(jù)庫(kù)

java.sql.Driver

java.sql.DriverManager加載驅(qū)動(dòng)程序java.sql.Connetion表示數(shù)據(jù)庫(kù)連接對(duì)象,對(duì)數(shù)據(jù)庫(kù)一切操作都在這個(gè)基礎(chǔ)上

java.sql.Statement執(zhí)行SQL語(yǔ)句和返回結(jié)果

java.sql.ResultSet結(jié)果集用來(lái)暫時(shí)存放數(shù)據(jù)庫(kù)查詢操作結(jié)果

8.編寫(xiě)程序的步驟1.裝載驅(qū)動(dòng)程序

class.forName("com.mySQL.jdbc.Driver")2.定義所需連接數(shù)據(jù)庫(kù)的地址

StringmysqlURL="jdbc.mysql://host:port/dbName"3.建立與數(shù)據(jù)庫(kù)的連接

Connectionconn=DriverMannager.getConnection(url,"登錄數(shù)據(jù)庫(kù)用戶名","密碼")

4.聲明并執(zhí)行SQL語(yǔ)句5.處理返回的結(jié)果6.關(guān)閉對(duì)象

StringdriverStr="com.mysql.jdbc.Driver"

Stringconnstr="jdbc:mysql://localhost:3306/book";ClassforName(driverStr)

Connectionconn=DriverManager.getConnection(connstr."root"."123")第4步:建立語(yǔ)句對(duì)象

Statementstmt=conn.createStatement()第5步:聲明并執(zhí)行SQL語(yǔ)句

Stringsql="select*frombook";

ResultSetrs=stmt.executeQuery(sql);第6步:

Statement接口的3個(gè)方法:1、ResultSetexecuteQuery(Stringsql)2、intexecuteUpdate(Stringsql)3、booleanexecute(Stringsql)ResultSet的方法:1、booleannext()2、getxxx()

第7:rs.close()stmt.close()con.close()注:關(guān)閉資源的順序與打開(kāi)資源順序恰好相反。第8步:異常處理

try{.........}catch(SQLExecptionex){.........}

9.JavaBean組件(可重用)

組件:是一個(gè)獨(dú)立的模塊,外界可以不了解內(nèi)部如何實(shí)現(xiàn),只需通過(guò)其提供的接口對(duì)組件進(jìn)行訪問(wèn)即可,組件可重用。

特點(diǎn):1、實(shí)現(xiàn)代碼重復(fù)使用;2、易編寫(xiě),易維護(hù),易使用。

10.JavaBean類的編碼約定

1、類實(shí)現(xiàn)了java.io.Serializable接口2、必須放在某個(gè)Package(包)中

3、類中如果有構(gòu)造方法,那么這個(gè)方法是共有的,并且無(wú)參數(shù)4、所有屬性都是私有的(private修飾)5、getXXX:用來(lái)獲取屬性,此方法是共有的6、setXXX:用來(lái)設(shè)置屬性,此方法是共有的

7、對(duì)于boolean類型的成員變量允許使用“is”代替“get”和“set”8、類中的普通方法不適合上面的命名規(guī)則,但這個(gè)方法必是public的。

3個(gè)標(biāo)記:

網(wǎng)頁(yè)中創(chuàng)建JavaBean實(shí)例

用于為bean中的屬性賦值用于獲取bean中屬性的值id=”javaBean實(shí)例名”class=”javaBean對(duì)應(yīng)的類名”設(shè)置的屬性

獲取JavaBean實(shí)例指令的屬性值,并將這個(gè)值轉(zhuǎn)換成字符串顯示到JSP頁(yè)面。

11.servlet的生命周期

(1)當(dāng)客戶第一次請(qǐng)求servlet時(shí),servlet被加載到內(nèi)存容器會(huì)創(chuàng)建servlet實(shí)例,并調(diào)用其init()方法進(jìn)行初始化工作。

(2)容器創(chuàng)建請(qǐng)求對(duì)象,然后調(diào)用servlet的service()方法為客戶提供服務(wù)。(3)當(dāng)servlet不再被需求時(shí),容器調(diào)用servlet的destory()方法將servlet實(shí)例銷毀。

12.Servlet開(kāi)發(fā)

引入import.javax.servlet.*和import.javax,servlet.http.*包

13.Servlet過(guò)濾器

Servlet過(guò)濾器是一種java組件,它位于客戶端和處理程序之間Servlet過(guò)濾器工作原理

14.Model1和model2Model1:JSP+JavaBean

Model2:JSP+Servlet+JavaBean

Model1中,jsp頁(yè)面實(shí)現(xiàn)頁(yè)面顯示、業(yè)務(wù)邏輯和流程控制,數(shù)據(jù)處理由JavaBean完成。

優(yōu)點(diǎn):進(jìn)行快速和小規(guī)模的應(yīng)用開(kāi)發(fā)時(shí)優(yōu)勢(shì)非常明顯。缺點(diǎn):不利于web應(yīng)用的擴(kuò)展和更新;調(diào)試和排錯(cuò)困難。

Model2中,MVC模式--->模型-視圖-控制器.即把web應(yīng)用的輸入輸出和處理流程按照Model.View和Controller分成三層。Model1和Model2的區(qū)別:

Model1和Model2實(shí)際上就是對(duì)采用JSP技術(shù)開(kāi)發(fā)的web應(yīng)用的不同模型的描述。Model1采用JSP+JavaBean技術(shù)開(kāi)發(fā)web應(yīng)用,它比較適合小規(guī)模應(yīng)用的開(kāi)發(fā),效率較高,易于實(shí)現(xiàn),但由于在JSP頁(yè)面中內(nèi)嵌了大量的Java代碼,以至于當(dāng)業(yè)務(wù)邏輯復(fù)雜時(shí),代碼可維護(hù)性、可擴(kuò)展性和可重用性就會(huì)下降;Model2采用JSP+Servlet+JavaBean技術(shù)開(kāi)發(fā)web應(yīng)用,該模型基于MVC模式,完全實(shí)現(xiàn)了頁(yè)面顯示和邏輯的分離,它充分利用了JSP和Servlet兩種技術(shù)的優(yōu)點(diǎn),JSP更適合前臺(tái)頁(yè)面的開(kāi)發(fā),而Servlet更擅長(zhǎng)服務(wù)器端程序的編寫(xiě),Model2分工明確,更適合大型項(xiàng)目的開(kāi)發(fā)和管理。視圖(view)用于與用戶交互,可以用HTML.JSP實(shí)現(xiàn)。

15.模型(model)用于表示業(yè)務(wù)數(shù)據(jù)和實(shí)現(xiàn)業(yè)務(wù)邏輯,可以用JavaBean實(shí)現(xiàn)控制器(controller)完成流程控制,它接收來(lái)自視圖層用戶輸入的數(shù)據(jù),并調(diào)用相應(yīng)的模型進(jìn)行處理,最后選擇合適的視圖去響應(yīng)用戶。控制層可以用Servlet實(shí)現(xiàn)。

優(yōu)點(diǎn):MVC模式完全實(shí)現(xiàn)了頁(yè)面表示和業(yè)務(wù)邏輯的分離;MVC優(yōu)勢(shì)之一在于三層各司其職,互不干涉。缺點(diǎn):沒(méi)有明確的定義。

模型層為JavaBean,實(shí)現(xiàn)了數(shù)據(jù)的表示和業(yè)務(wù)邏輯,視圖層為JSP頁(yè)面,只負(fù)責(zé)顯示功能。

控制器為Servlet,負(fù)責(zé)接收用戶的請(qǐng)求,設(shè)置JavaBean屬性,調(diào)用JavaBean完成業(yè)務(wù)處理,最后將處理結(jié)果交給JSP頁(yè)面顯示。16.自定義標(biāo)簽

對(duì)隱式對(duì)象的操作、處理表單、訪問(wèn)數(shù)據(jù)庫(kù)及其他企業(yè)級(jí)服務(wù)。

自定義標(biāo)簽種類:

1.不帶有屬性和標(biāo)簽體:

2.帶有屬性沒(méi)有標(biāo)簽體的標(biāo)簽:3.帶有屬性帶有標(biāo)簽體:myBody

17.EL表達(dá)式基本語(yǔ)法${expr}

功能:對(duì)屬性對(duì)象的簡(jiǎn)明訪問(wèn):${user}

對(duì)屬性對(duì)象的屬性訪問(wèn):${customer.firstname}

對(duì)屬性集合元素的訪問(wèn):對(duì)數(shù)組和list:${variable[index]}對(duì)map:${variable[key]}

對(duì)請(qǐng)求參數(shù)cookie等的簡(jiǎn)單訪問(wèn).請(qǐng)求參數(shù)${param.custID}

Cookie對(duì)象:${cookie.userCookie}

18."."操作符和"[]"操作符${user.address}=${user[address]}訪問(wèn)數(shù)組和集合元素,需使用[]${class[0].name}=${class[0][name]}

${param.username}={%=request.getparameter("userName")%}

19."."與"[]"使用存在差異

1.當(dāng)訪問(wèn)的數(shù)據(jù)中包含一個(gè)特殊字符(如:"."或"_"時(shí)),就必須用"[]"操作符2.當(dāng)動(dòng)態(tài)取值時(shí)必須使用"[]"操作符,"."操作符只能取到靜態(tài)的值

注:當(dāng)"[]"操作符中的屬性名為常量時(shí)必須用""""引起,否則將會(huì)當(dāng)做變量來(lái)處理.20.SQL標(biāo)簽

1.標(biāo)簽2.執(zhí)行數(shù)據(jù)庫(kù)查詢3.執(zhí)行數(shù)據(jù)庫(kù)更新

4.和指明參數(shù)值5.用于事務(wù)處理

21.Tomcat的目錄結(jié)構(gòu)及描述:

\\bin放置啟動(dòng)和關(guān)閉Tomcat的可執(zhí)行文件和批處理文件

\\common放置在此目錄中的jar、class文件,可以被此服務(wù)器下所有的web應(yīng)用使用

\\conf放置Tomcat的主要配置文件\\logs放置Tomcat的日志文件

\\server放置Tomcat管理接口的應(yīng)用\\src放置Tomcat相關(guān)的源代碼\\temp放置Tomcat臨時(shí)文件\\webapps放置Tomcat應(yīng)用的目錄

\\work放置JSP頁(yè)面翻譯成對(duì)應(yīng)的Servlet類的目錄

擴(kuò)展閱讀:Java Web總結(jié)

JavaWeb總結(jié)

1.Web工作原理..........................................................................................................................2

1.1.HTTP處理步驟............................................................................................................21.2.HTTP請(qǐng)求的組成........................................................................................................21.3.HTTP響應(yīng)的組成........................................................................................................31.4.理解HTTP無(wú)狀態(tài)協(xié)議...............................................................................................31.5.CGI與Servlet..............................................................................................................31.6.Servlet的主要任務(wù)......................................................................................................41.7.Web容器......................................................................................................................41.8.JavaWeb應(yīng)用程序的組成...........................................................................................42.Servlet基礎(chǔ).............................................................................................................................4

2.1.Servlet框架的組成......................................................................................................42.2.Servlet編碼和部署......................................................................................................52.3.ServletURL映射路徑.................................................................................................52.4.Servlet生命周期.........................................................................................................62.5.ServletConfig與ServletContext................................................................................63.HTTP請(qǐng)求................................................................................................................................8

3.1.Servlet與Web容器配合處理請(qǐng)求和響應(yīng).................................................................83.2.GET與POST提交方式的區(qū)別..................................................................................83.3.獲取HTTP協(xié)議請(qǐng)求行...............................................................................................83.4.獲取HTTP協(xié)議請(qǐng)求頭...............................................................................................93.5.獲取表單數(shù)據(jù)...............................................................................................................93.6.請(qǐng)求轉(zhuǎn)發(fā).......................................................................................................................93.7.請(qǐng)求范圍對(duì)象綁定.......................................................................................................94.HTTP響應(yīng)................................................................................................................................9

4.1.HTTP狀態(tài)行................................................................................................................94.2.設(shè)置響應(yīng)頭.................................................................................................................104.3.設(shè)置響應(yīng)消息體.........................................................................................................104.4.傳輸數(shù)據(jù).....................................................................................................................10

4.4.1.傳輸文本數(shù)據(jù).................................................................................................104.4.2.傳輸二進(jìn)數(shù)據(jù).................................................................................................104.4.3.請(qǐng)求重定向.....................................................................................................10

5.Web應(yīng)用程序狀態(tài)管理........................................................................................................11

5.1.Cookie.........................................................................................................................115.2.Session........................................................................................................................115.3.URL重寫(xiě)....................................................................................................................126.對(duì)象作用域與Servlet事件監(jiān)聽(tīng)器.......................................................................................13

6.1.對(duì)象作用域.................................................................................................................136.2.監(jiān)聽(tīng)器.........................................................................................................................137.過(guò)濾器.....................................................................................................................................158.JSP...........................................................................................................................................JSP運(yùn)行機(jī)制:..........................................................................................................16JSP語(yǔ)法和語(yǔ)義..........................................................................................................168.2.1.JSP腳本元素..................................................................................................168.2.2.JSP注釋..........................................................................................................178.2.3.JSP指令..........................................................................................................178.2.4.JSP標(biāo)準(zhǔn)動(dòng)作..................................................................................................178.2.5.JSP隱式對(duì)象..................................................................................................17

9.JavaWeb開(kāi)發(fā)模式................................................................................................................18

9.1.MVC模型...................................................................................................................18

9.1.1.視圖.................................................................................................................189.1.2.模型.................................................................................................................189.1.3.控制器.............................................................................................................189.2.MVC實(shí)現(xiàn)步驟...........................................................................................................1910.JSTL與EL表達(dá)式......................................................................................................19

10.1.EL表達(dá)式解釋.......................................................................................................1910.2.在EL表達(dá)式中的隱式變量..................................................................................19

8.1.8.2.

1.Web工作原理

1.1.HTTP處理步驟

創(chuàng)建與服務(wù)器的連接發(fā)送HTTP請(qǐng)求

接收客戶端HTTP請(qǐng)求,生成HTTP響應(yīng)回發(fā)關(guān)閉與服務(wù)器的連接

1.2.HTTP請(qǐng)求的組成

請(qǐng)求行請(qǐng)求頭空行消息體

1.3.HTTP響應(yīng)的組成

狀態(tài)行響應(yīng)頭空行消息體

1.4.理解HTTP無(wú)狀態(tài)協(xié)議

主要是說(shuō),客戶機(jī)的狀態(tài),服務(wù)器是不知道的。比如說(shuō),用戶關(guān)掉瀏覽器,服務(wù)器無(wú)法得知。只能向客戶端提供靜態(tài)網(wǎng)頁(yè)內(nèi)容

1.5.CGI與Servlet

CGI:即通用網(wǎng)關(guān)接口(CommonGatewayInterface),它可以用Shell、Perl、C、PHP、Python等編寫(xiě)。每次請(qǐng)求就打開(kāi)一個(gè)CGI進(jìn)程,嚴(yán)重消耗服務(wù)器資源。極大地限制了一個(gè)服務(wù)器可以支持的并發(fā)CGI用戶數(shù)量,但是安全性高。

Servlet:Servlet與Web容器被設(shè)計(jì)用來(lái)解決CGI的問(wèn)題,JavaServlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無(wú)需創(chuàng)建單獨(dú)的進(jìn)程,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開(kāi)銷將明顯降低。Servlet運(yùn)行在一個(gè)主進(jìn)程或者一個(gè)父程序中,這就是為什么Servlet更高效的關(guān)鍵原因。

1.6.Servlet的主要任務(wù)

讀取客戶端發(fā)送的顯式和隱式數(shù)據(jù)生成結(jié)果

向客戶端發(fā)送顯式數(shù)據(jù)(即文檔)和隱式數(shù)據(jù)(HTTP響應(yīng)數(shù)據(jù))

1.7.Web容器

Web容器負(fù)責(zé)管理和運(yùn)行Servlet,容器對(duì)Servlet的支持包括:通信支持生命周期管理多線程支持JSP支持處理安全性

1.7.1.1.1.7.1.2.1.7.1.3.1.7.1.4.1.7.1.5.

1.8.JavaWeb應(yīng)用程序的組成

配置文件、靜態(tài)HTML文件和JSP、類文件和包。

2.Servlet基礎(chǔ)

2.1.Servlet框架的組成

Servlet框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必須實(shí)現(xiàn)這一接口。Servlet框架是由2個(gè)Java包組成:javax.servlet和javax.servlet.httpjavax.servlet包中定義了所有Servlet類都必須實(shí)現(xiàn)的接口和類。javax.servlet包的接口為:

ServletConfig接口----在初始化過(guò)程中由Servlet容器使用ServletContext接口----定義Servlet用于獲取容器信息的方法ServletRequest接口----向服務(wù)器請(qǐng)求信息ServletResponse接口----響應(yīng)客戶端請(qǐng)求

Servlet接口----定義所有Servlet必須實(shí)現(xiàn)的方法javax.servlet包中的類為:

ServletInputStream類----用于從客戶端讀取二進(jìn)制數(shù)據(jù)ServletOutputStream類----用于將二進(jìn)制數(shù)據(jù)發(fā)送到客戶端

GenericServlet類----抽象類,定義一個(gè)通用的,獨(dú)立于底層協(xié)議的Servlet。javax.servlet.http包中定義了采用HTTP通信的HttpServlet類。

javax.servlet.http包的接口為:

HttpServletRequest接口----提供http請(qǐng)求HttpServletResponse接口----提供http響應(yīng)

HttpSession接口----用于標(biāo)識(shí)客戶端并存儲(chǔ)有關(guān)客戶信息

HttpSessionAttributeListener接口----實(shí)現(xiàn)這個(gè)偵聽(tīng)接口用戶獲取會(huì)話的屬性列表的改變的通知

javax.servlet.http包中的類:

HttpServlet類----擴(kuò)展了GenericServlet的抽象類,用于擴(kuò)展創(chuàng)建HttpServlet處理Http請(qǐng)求

Cookie類----創(chuàng)建一個(gè)Cookie,用于存儲(chǔ)Servlet發(fā)送給客戶端的信息

注意javax.servlet包和javax.servlet.http包的區(qū)別,javax.servlet.http這個(gè)包里的類都去實(shí)現(xiàn)了javax.servlet包里的接口,用于專門用于HTTP協(xié)議。

2.2.Servlet編碼和部署

Servlet體系結(jié)構(gòu):Servlet-->GenericServlet-->HttpServlet-->用戶自定義的Servlet

2.2.1.1.用戶自定義的Servlet繼承HttpServlet,重寫(xiě)一下方法中的一個(gè):doGet()和doPost()2.2.1.2.在容器中注冊(cè)Servlet,配置web.xml,在web.xml文件中加入

Hello

com.lovo.servlet.Hello

2.2.1.3.映射虛擬路徑,同樣是通過(guò)配置web.xml,在web.xml文件中加入

Hello/Hello

2.3.ServletURL映射路徑

2.3.1.1.精確模式匹配。這種類型的模式用于將請(qǐng)求一對(duì)一映射到指定的Servlet。

2.3.1.2.擴(kuò)展名匹配“*.擴(kuò)展名”。在這種情況下,所有以指定擴(kuò)展名結(jié)尾的URL都轉(zhuǎn)向指

定的Servlet。2.3.1.3.路徑映射。路徑映射必須以"/"開(kāi)始,以"/*"結(jié)尾,在這之間可以出現(xiàn)任意字符。路徑

匹配通常用于將對(duì)某個(gè)目錄的所有請(qǐng)求轉(zhuǎn)向一個(gè)指定的Servlet。

2.3.1.4.默認(rèn)的Servlet,"/"。默認(rèn)的Servlet映射用于定義一個(gè)在沒(méi)有給出路徑信息時(shí)請(qǐng)求

轉(zhuǎn)向的Servlet。

2.4.Servlet生命周期

Servlet的生命周期由Servlet容器控制,該容器創(chuàng)建Servlet的實(shí)例。

Servlet生命周期就是指創(chuàng)建Servlet實(shí)例后響應(yīng)客戶請(qǐng)求直至銷毀的全過(guò)程。Serlvet生命周期的三個(gè)方法:init()-->service()-->destroy()Servlet生命周期:

實(shí)例化:Servlet容器創(chuàng)建Servlet類的實(shí)例對(duì)象,有兩種方式,一種是容器檢測(cè)到需要這個(gè)Servlet來(lái)響應(yīng)第一個(gè)請(qǐng)求時(shí),創(chuàng)建Servlet實(shí)例。另一種是容器啟動(dòng)時(shí)創(chuàng)建Servlet實(shí)例,1,數(shù)字越小啟動(dòng)順序越靠前。

初始化:Servlet容器調(diào)用Servlet的init()方法

服務(wù):容器調(diào)用service()方法,根據(jù)請(qǐng)求的方式,調(diào)用doGet或者doPost方法銷毀:銷毀實(shí)例之前調(diào)用destroy()方法

2.5.

ServletConfig與ServletContext

2.5.1.ServletConfig與ServletContext的關(guān)系

一個(gè)Servlet對(duì)應(yīng)一個(gè)ServletConfig,也就是說(shuō)容器加載了多少個(gè)Servlet就有多少個(gè)ServletConfig。而ServletContext是在容器啟動(dòng)時(shí)創(chuàng)建,一個(gè)Web應(yīng)用一個(gè)ServletContext,可以把ServletContext看成是一個(gè)全局變量,所有的Servlet共享。

2.5.2.ServletContext應(yīng)用上下文

屬于整個(gè)Web應(yīng)用程序,可以訪問(wèn)到Web應(yīng)用程序資源的本地輸入流,把資源的虛擬路徑轉(zhuǎn)換為物理路徑,綁定一個(gè)對(duì)象在整個(gè)Web應(yīng)用程序中共享。常用的方法有:

getRealPath():返回一個(gè)web資源的真實(shí)路徑

getResourcePaths(path):返回一個(gè)指定路徑下的所有資源列表getResourceAsStream(path):返回一個(gè)資源的InputStreamgetResource(path):返回一個(gè)web資源的URL地址setAttribute(name,value):保存一個(gè)共享數(shù)據(jù)getAttribute(name):提取共享數(shù)據(jù)

2.5.3.ServletConfig

通過(guò)重寫(xiě)有參數(shù)的init(ServletConfigconfig)方法獲取到ServletConfig對(duì)象,通過(guò)config.getInitParameter("driver")方法獲取到web.xml里相對(duì)應(yīng)的配置信息。

publicvoidinit(ServletConfigconfig)throwsServletException{

}

Hello

com.lovo.servlet.Hello

driver

//TODOAuto-generatedmethodstubconfig.getInitParameter("driver");super.init(config);Hello:com.mysql.driver.Driver

3.HTTP請(qǐng)求

3.1.Servlet與Web容器配合處理請(qǐng)求和響應(yīng)

3.1.1.客戶端向Web服務(wù)器發(fā)起一個(gè)HTTP請(qǐng)求。3.1.2.HTTP請(qǐng)求被Web服務(wù)器接受,如果請(qǐng)求的是靜態(tài)頁(yè)面,則由Web服務(wù)器負(fù)責(zé)處理。

如果請(qǐng)求的是JavaWeb組件(Servlet或者JSP),則移交給Web容器。Web容器可以在主機(jī)的同一個(gè)進(jìn)程、不同的進(jìn)程或其他的Web服務(wù)主機(jī)的進(jìn)程中啟動(dòng)。

3.1.3.Web容器根據(jù)Servlet的配置文件確定調(diào)用的具體Servlet類,并把HttpServletRequest

對(duì)象、HttpServletResponse對(duì)象傳給它。

3.1.4.Servlet通過(guò)HttpServletRequest對(duì)象知道客戶端的使用者是誰(shuí),客戶的請(qǐng)求信息是什

么和其他的一些信息。Servlet處理完請(qǐng)求后把要返回的信息放入HttpServletResponse對(duì)象返回到客戶端。

3.1.5.一旦Servlet完成了請(qǐng)求的處理,Web容器就會(huì)刷新HttpServletResponse,把控制權(quán)

返回給web服務(wù)器。

由此可見(jiàn),每一次請(qǐng)求容器都會(huì)創(chuàng)建去創(chuàng)建HttpServletRequest對(duì)象與HttpServletResponse

3.2.GET與POST提交方式的區(qū)別

GET方式只能提交文本數(shù)據(jù),POST即可以提交文本數(shù)據(jù)也可以提交二進(jìn)制數(shù)據(jù)。GET方式一次只能提交1024個(gè)字節(jié),而POST沒(méi)有限制。

安全性問(wèn)題。使用GET的時(shí)候,參數(shù)會(huì)顯示在地址欄上,而POST不會(huì)。所以,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用GET,如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù),那么還是使用POST為好。

3.3.獲取HTTP協(xié)議請(qǐng)求行

3.3.1.getMethod():獲取HTTP的請(qǐng)求方法,例如GET、POST等3.3.2.getRequestURI():獲取請(qǐng)求的URI資源

3.3.3.getRequestURL():獲取請(qǐng)求的URL,包含協(xié)議名、服務(wù)器名或IP、端口號(hào)和請(qǐng)求資

源但不包括查詢字符串參數(shù)

3.3.4.getQueryString():獲取請(qǐng)求URL后面的查詢字符串3.3.5.getProtocol():獲取HTTP的協(xié)議名和版本號(hào)

3.3.6.getContextPath():獲取請(qǐng)求URI資源的上下文路徑3.3.7.getServletPath():獲取Servlet的映射路徑3.4.獲取HTTP協(xié)議請(qǐng)求頭

1.2.3.4.5.

getHeader(name):返回指定的請(qǐng)求頭的值

getHeaders(name):返回一個(gè)Enumeration(枚舉)包含請(qǐng)求頭中的所有值getHeaderNames():特定請(qǐng)求中接受到的所有請(qǐng)求頭的名稱

getIntHeader(name):獲取特定請(qǐng)求頭的值,并將其轉(zhuǎn)化為int類型

getDateHeader(name):獲取特定請(qǐng)求頭的值,并將其轉(zhuǎn)化為Date類型

3.5.獲取表單數(shù)據(jù)

1.getParameter(parameterName):獲取表單參數(shù)的值,參數(shù)名區(qū)分大小寫(xiě),與

HTML表單中出現(xiàn)的參數(shù)名一致,GET請(qǐng)求還是POST請(qǐng)求都可以采用相同的方式

2.getParameterValues(parameterName):獲取同一個(gè)參數(shù)名的多個(gè)參數(shù)值,返回字

符串?dāng)?shù)組對(duì)象

3.getParameterNames():以Enumeration(枚舉)的方式返回請(qǐng)求中所有的表單

參數(shù)名列表

3.6.請(qǐng)求轉(zhuǎn)發(fā)

請(qǐng)求轉(zhuǎn)發(fā)是客戶端向服務(wù)器發(fā)送請(qǐng)求后,服務(wù)器將這一次請(qǐng)求又交給了另一個(gè)Servlet。由另一個(gè)servlet來(lái)作出響應(yīng)。請(qǐng)求轉(zhuǎn)發(fā)只有一次請(qǐng)求。

1.getRequestDispatcher(path):方法返回給定路徑的RequestDispatcher對(duì)象2.getNamedDispatcher(name):返回某個(gè)名稱的Servlet的RequestDispatcher對(duì)

3.forward(ServletRequest,ServletResponse):派發(fā)請(qǐng)求和響應(yīng)對(duì)象到

RequestDispatcher對(duì)象所確定的新資源(Servlet、JSP或者HTML等)4.include(ServletRequest,ServletResponse)該方法關(guān)鍵是能包含服務(wù)器端的資源

3.7.請(qǐng)求范圍對(duì)象綁定

變量可以可以通過(guò)request.setAttribute("value",param)將對(duì)象保存在請(qǐng)求范圍中,可以通過(guò)request.getAttribute("value")獲取在請(qǐng)求范圍內(nèi)所綁定的相應(yīng)的對(duì)象但是在請(qǐng)求范圍之外就不能進(jìn)行訪問(wèn)了。結(jié)合請(qǐng)求轉(zhuǎn)發(fā)理解。

4.HTTP響應(yīng)

4.1.HTTP狀態(tài)行

狀態(tài)行分為HTTP協(xié)議、狀態(tài)碼和狀態(tài)描述三個(gè)部分100-199:表示信息性代碼,標(biāo)示客戶端應(yīng)該采取的其他動(dòng)作,請(qǐng)求正在進(jìn)行。200-299:表示客戶請(qǐng)求成功。

300-399:表示用于已經(jīng)移走的資源文件,指示新的地址。400-499:表示由客戶端引發(fā)的錯(cuò)誤。500-599:表示由服務(wù)器端引發(fā)的錯(cuò)誤。

瀏覽器會(huì)根據(jù)以上的狀態(tài)碼作出相應(yīng)的處理。

通過(guò)response.setStatus(HttpServletResponse.SC_NOT_FOUND),設(shè)置響應(yīng)的響應(yīng)碼,注意使用HttpServletResponse的常量進(jìn)行設(shè)置。

4.2.設(shè)置響應(yīng)頭

1.2.3.4.5.6.7.

setHeader()addHeader()setIntHeader()setDateHeader()containsHeader()setContentType()addCookie()

4.3.設(shè)置響應(yīng)消息體

response.setContentType("image/gif");方法可以處理亂碼和顯示其他形式的內(nèi)容例如把內(nèi)容以其它的形式顯示出來(lái)(如:圖片、Excel等)

4.4.傳輸數(shù)據(jù)4.4.1.傳輸文本數(shù)據(jù)

利用PrintWriterout=response.getWriter()獲取一個(gè)字符輸出流傳輸文本out.println("HelloWorld");

4.4.2.傳輸二進(jìn)數(shù)據(jù)

利用OutputStringout=getOutputStream()獲取一個(gè)字節(jié)輸出流傳輸二進(jìn)制數(shù)據(jù)our.write(byte[]b);

4.4.3.請(qǐng)求重定向

response.sendRedirect(":3030/bbs/main.html");與請(qǐng)求傳發(fā)不同,重定向是先對(duì)客戶端作出響應(yīng),響應(yīng)碼為302或者307,瀏覽器再根據(jù)重定向的路徑再發(fā)起一次新的請(qǐng)求。(結(jié)合請(qǐng)求轉(zhuǎn)發(fā)理解)5.Web應(yīng)用程序狀態(tài)管理

對(duì)容器而言,每一個(gè)請(qǐng)求都來(lái)自于一個(gè)新的客戶,我們可以利用Cookie、Session、以及URL重寫(xiě)讓服務(wù)器知道,這一系列的請(qǐng)求都是同一個(gè)用戶的行為。

5.1.Cookie

服務(wù)器在響應(yīng)請(qǐng)求時(shí)將一些數(shù)據(jù)以“鍵-值”對(duì)的形式通過(guò)響應(yīng)信息保存在客戶端。Cookiecookie=newCookie("cookie","tiger!");response.addCookie(cookie);

Servlet中提供了如下一系列操作Cookie的API:

1.Cookie(name,value):構(gòu)造方法用于創(chuàng)建一個(gè)或多個(gè)Cookie

2.setMaxAge(intlifetime):設(shè)置Cookie的過(guò)期時(shí)間(以秒為單位)。默認(rèn)值為負(fù)

值(Cookie將在瀏覽器關(guān)閉時(shí)過(guò)期)3.getMaxAge():獲取Cookie的過(guò)期時(shí)間。

4.setName(StringcookieName):設(shè)置Cookie的名字5.getName():獲取Cookie的名字

6.setValue(Stringvalue):指定Cookie的值。7.getValue():獲取Cookie的值

5.2.Session

服務(wù)器可以為客戶端創(chuàng)建并維護(hù)一個(gè)Session對(duì)象,用于存放數(shù)據(jù)。在創(chuàng)建Session對(duì)象的同時(shí),服務(wù)器將會(huì)為該Session對(duì)象產(chǎn)生一個(gè)唯一編號(hào),這個(gè)編號(hào)稱之為SessionID,服務(wù)器以Cookie的方式將SessionID存放在客戶端。當(dāng)瀏覽器再次訪問(wèn)該服務(wù)器時(shí),會(huì)將SessionID作為Cookie信息帶到服務(wù)器,服務(wù)器可以通過(guò)該SessionID檢索到以前的Session對(duì)象,并對(duì)其進(jìn)行訪問(wèn)。

HttpSessionsession=request.getSession(),容器在第一次調(diào)用getSession()方法的時(shí)候創(chuàng)建Session對(duì)象將Session對(duì)象存放于容器內(nèi),直到Session過(guò)期。另外還可以通過(guò)isNew()方法來(lái)判斷是不是第一次創(chuàng)建Session

HttpSession接口常用的一些方法:

1.setAttribute(java.lang.String,java.lang.Object):在Session對(duì)象中用一個(gè)名字綁

定一個(gè)對(duì)象。

2.getAttribute(java.lang.String):通過(guò)名字獲取Session對(duì)象中保存的對(duì)象。3.removeAttribute(java.lang.String):在Session中刪除與一個(gè)名字對(duì)應(yīng)的對(duì)象。4.getCreationTime():返回第一次創(chuàng)建會(huì)話的時(shí)間。

5.getLastAccessedTime():返回容器最后一次得到該會(huì)話ID的請(qǐng)求時(shí)間。

6.setMaxInactiveInterval(intinterval):對(duì)于會(huì)話指定客戶請(qǐng)求的最大間隔時(shí)間,

以秒為單位。-1表示永不過(guò)期

7.getMaxInactiveInterval(intinterval):返回客戶請(qǐng)求的最大間隔時(shí)間。

8.invalidate():會(huì)話結(jié)束,當(dāng)前存在在會(huì)話中的所有會(huì)話屬性也會(huì)解除綁定。9.getId():此方法返回每個(gè)session唯一的標(biāo)識(shí)

Session的過(guò)期時(shí)間設(shè)置,通過(guò)在web.xml里進(jìn)行配置,單位是分鐘,如果不進(jìn)行配置默認(rèn)的過(guò)期時(shí)間由容器決定,比如Tomcat默認(rèn)的過(guò)期時(shí)間為30分鐘。

15

5.3.URL重寫(xiě)

Session對(duì)象的正常使用要依賴于Cookie,如果用戶禁用Cookie,則瀏覽器無(wú)法再將SessionID發(fā)送至服務(wù)器,這時(shí)候服務(wù)器就無(wú)法通過(guò)SessionID檢索到以前的Session對(duì)象,并對(duì)其進(jìn)行訪問(wèn)了。為了解決這個(gè)問(wèn)題可以利用URL地址重寫(xiě)能夠取得置于Cookie中的會(huì)話,并把會(huì)話ID附加到訪問(wèn)應(yīng)用的各個(gè)URL最后。response.encodeURL(“/bbs/index.html”)用于鏈接

response.encodeRedirectURL(“/bbs/index.html”)用于重定向

6.對(duì)象作用域與Servlet事件監(jiān)聽(tīng)器

6.1.對(duì)象作用域

在Servlet里可以用一個(gè)名字綁定一個(gè)對(duì)象通過(guò)setAttribute(String,Object)綁定,通過(guò)getAttribute(Sting)獲取一個(gè)所綁定的對(duì)象。ServletContext對(duì)象、HttpSession對(duì)象、ServletRequest對(duì)象都有這兩個(gè)方法。

ServletContext(上下文)整個(gè)Web應(yīng)用程序HttpSession(會(huì)話)一個(gè)會(huì)話交互過(guò)程ServletRequest(請(qǐng)求)一次請(qǐng)求過(guò)程范圍越大所消耗的系統(tǒng)資源就越多。并且他們都不是線程安全的,存在一定的安全隱患。

6.2.監(jiān)聽(tīng)器

監(jiān)聽(tīng)session,request,application這三個(gè)對(duì)象里存取數(shù)據(jù)的變化,監(jiān)聽(tīng)器對(duì)象可以在事情發(fā)生前、發(fā)生后可以做一些必要的處理,Servlet監(jiān)聽(tīng)器主要目的是給Web應(yīng)用增加事件處理機(jī)制,以便更好地監(jiān)視和控制Web應(yīng)用的狀態(tài)變化事件類型生命周期ServletContext事件屬性改變生命周期會(huì)話遷移HttpSession事件屬性改變對(duì)象綁定生命周期ServletRequest事件屬性改變描述Listener接口Servlet上下文剛被創(chuàng)建并可以開(kāi)始為第一次請(qǐng)求服務(wù),或者Servlet上下文將要ServletContextListener被關(guān)閉發(fā)生的事件Servlet上下文內(nèi)的屬性被增加、刪除或者替換時(shí)發(fā)生的事件HttpSession被創(chuàng)建、無(wú)效或超時(shí)時(shí)發(fā)生HttpSession被激活或鈍化時(shí)發(fā)生在HttpSession中的屬性被增加、刪除、替換時(shí)發(fā)生對(duì)象被綁定到或者移出HttpSession時(shí)發(fā)生。在Servletr請(qǐng)求開(kāi)始被Web組件處理時(shí)發(fā)生在ServletRequest對(duì)象中的屬性被增加、刪除、替換時(shí)發(fā)生ServletRequestListenerServletRequestAttributeListenerHttpSessionAttributeListenerHttpSessionBindingListenerServletContextAttributeListenerHttpSessionListenerHttpSessionActivationListener7.過(guò)濾器

一個(gè)中間組件,用于攔截源數(shù)據(jù)和目的數(shù)據(jù)之間的消息,過(guò)濾二者之間傳遞的數(shù)據(jù),過(guò)濾從客戶端傳遞到服務(wù)器端的請(qǐng)求和響應(yīng)。

過(guò)濾器可以組成一個(gè)過(guò)濾器鏈。鏈中的每個(gè)過(guò)濾器負(fù)責(zé)特定的操作和任務(wù),客戶端的請(qǐng)求和響應(yīng)在這些過(guò)濾器之間傳遞。

8.JSP

Servlet的缺陷:編碼、部署和調(diào)試任務(wù)繁瑣,生成動(dòng)態(tài)網(wǎng)頁(yè)繁瑣,不利于項(xiàng)目分工,采用JSP技術(shù)編寫(xiě)動(dòng)態(tài)頁(yè)面就能,由HTML語(yǔ)句和嵌套在其中的Java代碼組成的一個(gè)普通文本文件。JSP頁(yè)面的擴(kuò)展名必須為.jsp,部署在Web工程的根目錄下,Web容器第一次接收到對(duì)某個(gè)JSP頁(yè)面的請(qǐng)求后,首先自動(dòng)將該JSP頁(yè)面翻譯為Servlet代碼,Tomcat將翻譯后的代碼放在Tomcat安裝目錄的/work子目錄下,也可以說(shuō)所有JSP頁(yè)面本質(zhì)上就是Serlvet程序,但是不需要配置web.xml,所見(jiàn)即所得,很好的彌補(bǔ)了上述中Servlet的缺陷。

8.1.JSP運(yùn)行機(jī)制:

1.頁(yè)面翻譯2.頁(yè)面編譯3.類裝載4.實(shí)例化

5.初始化方法是jspInit()6.服務(wù)方法是_jspService()7.銷毀方法是jspDestroy()

JSP生命周期完全遵循Servlet生命周期從15步只會(huì)在JSP頁(yè)面第一次訪問(wèn)的時(shí)候才執(zhí)行被實(shí)例化后就像Servlet一樣一直存在于容器中了。

8.2.JSP語(yǔ)法和語(yǔ)義

JSP網(wǎng)頁(yè)主要由元素(Element)和模板數(shù)據(jù)(TemplateData)兩個(gè)部分組成,模板數(shù)據(jù)是JSP的靜態(tài)部分WEB容器不處理,元素則是必須經(jīng)由WEB容器解釋,元素都是以XML做為語(yǔ)法基礎(chǔ),并且大小寫(xiě)要一致

8.2.1.JSP腳本元素

聲明定義變量或者方法。在聲明部分出現(xiàn)的語(yǔ)句,JSP在被編譯成java文件后聲明部分為成為這個(gè)java當(dāng)中的成員變量或者方法

Scriplet在Scriplet部分出現(xiàn)的語(yǔ)句,JSP在被編譯成java文件后Scriplet部分的代碼會(huì)被置放于_jspService()方法內(nèi)部

腳本表達(dá)式等同于out.println();8.2.2.JSP注釋

1.JSP注釋,其語(yǔ)法結(jié)構(gòu)為:2.HTML注釋:3.Java代碼注釋

8.2.3.JSP指令

提供整個(gè)JSP頁(yè)面的相關(guān)信息,用于JSP頁(yè)面與容器之間的通信,在JSP中,有三種類型的指令:

1.page指令為當(dāng)前頁(yè)面提供處理指令

2.include指令用于把另一個(gè)文件包含在JSP中3.taglib指令指定如何包含和訪問(wèn)自定義標(biāo)簽庫(kù)

8.2.4.JSP標(biāo)準(zhǔn)動(dòng)作

1.動(dòng)作是一種動(dòng)態(tài)的包含

2.動(dòng)作將客戶端所發(fā)出來(lái)的請(qǐng)求,從一個(gè)JSP網(wǎng)頁(yè)轉(zhuǎn)發(fā)到另一個(gè)

JSP頁(yè)面

3.得到或者創(chuàng)建一個(gè)JavaBean對(duì)象

8.2.5.JSP隱式對(duì)象

對(duì)象名requestresponse描述代表與請(qǐng)求相關(guān)的HttpServletRequest對(duì)象代表與響應(yīng)相關(guān)的HttpServletResponse對(duì)象作用域requestpagepagesessionapplicationpagepagepagepagepageContext代表封裝請(qǐng)求某個(gè)JSP頁(yè)面時(shí)請(qǐng)求環(huán)境的pageContext對(duì)象session代表特定用戶請(qǐng)求會(huì)話的HttpSession對(duì)象。該對(duì)象只有在JSP頁(yè)面參與一個(gè)HTTP會(huì)話時(shí)才有意義application代表Web應(yīng)用程序的ServletContext對(duì)象outconfigpage代表與響應(yīng)輸出流相關(guān)的JspWriter對(duì)象代表JSP頁(yè)面的Servlet相關(guān)的ServletConfig對(duì)象等于Java編程語(yǔ)言中的this變量exception代表JSP頁(yè)面拋出的Trowable對(duì)象。這個(gè)對(duì)象只能在JSP錯(cuò)誤頁(yè)面中使用9.JavaWeb開(kāi)發(fā)模式

9.1.MVC模型

9.1.1.視圖

視圖是用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來(lái)說(shuō),視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括MacromediaFlash和象XHTML,XML/XSL,WML等一些標(biāo)識(shí)語(yǔ)言和Webservices.

如何處理應(yīng)用程序的界面變得越來(lái)越有挑戰(zhàn)性。MVC一個(gè)大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實(shí)沒(méi)有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是一個(gè)雇員列表,作為視圖來(lái)講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。

9.1.2.模型

模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusionComponents這樣的構(gòu)件對(duì)象來(lái)處理數(shù)據(jù)庫(kù)。被模型返回的數(shù)據(jù)是中立的,就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫(xiě)一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。

9.1.3.控制器

控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁(yè)面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求,然后用確定用哪個(gè)視圖來(lái)顯示模型處理返回的數(shù)據(jù)。

現(xiàn)在我們總結(jié)MVC的處理過(guò)程,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶。

三層架構(gòu)即“表現(xiàn)層”,“業(yè)務(wù)層”,“持久化層”。表現(xiàn)層實(shí)現(xiàn)的代表作品是Struts框架,業(yè)務(wù)層實(shí)現(xiàn)的代表作品是Spring,持久層實(shí)現(xiàn)的代表作品是Hibernate。

9.2.MVC實(shí)現(xiàn)步驟

1.2.3.4.5.6.

定義一系列Bean來(lái)表示數(shù)據(jù)使用一個(gè)Servlet來(lái)處理請(qǐng)求在Servlet中填充Bean

在Servlet中,將Bean存儲(chǔ)到請(qǐng)求、會(huì)話或者Servlet上下文中將請(qǐng)求轉(zhuǎn)發(fā)到JSP頁(yè)面

在JSP頁(yè)面中,從Bean中提取數(shù)據(jù)

10.JSTL與EL表達(dá)式

10.1.EL表達(dá)式解釋

${person.dog.name}這是一段EL表達(dá)式的語(yǔ)法,這樣的一句EL表達(dá)式如果翻譯成JAVA語(yǔ)句的話:

getAttribute(“person”).getDog().getName();

對(duì)應(yīng)上面的EL表達(dá)式來(lái)看person就是從某個(gè)作用域中取出一個(gè)鍵的值是”person”的綁定的對(duì)象再調(diào)用綁定的對(duì)象的getDog()方法獲取到Dog對(duì)象,再調(diào)用獲取到的對(duì)象的getName方法獲取到name屬性的值

10.2.在EL表達(dá)式中的隱式變量

類別JSP作用域隱式變量名pageContextpageScoperequestScopesessionScopeapplicationScope描述用來(lái)訪問(wèn)JSP的隱式對(duì)象與page作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的Map類與request作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的Map類與session作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的Map類與application作用域?qū)傩缘拿Q和值相關(guān)聯(lián)的Map類請(qǐng)求參數(shù)paramparamValues包含請(qǐng)求參數(shù)字符串的Map類包含請(qǐng)求參數(shù)字符串?dāng)?shù)組(String[])的Map類包含請(qǐng)求頭字符串的Map類包含請(qǐng)求頭字符串?dāng)?shù)組(String[])的Map類按名稱存儲(chǔ)請(qǐng)求附帶的cookie的Map類請(qǐng)求頭headerheaderValuesCookie

cookie

友情提示:本文中關(guān)于《java web總結(jié)》給出的范例僅供您參考拓展思維使用,java web總結(jié):該篇文章建議您自主創(chuàng)作。

來(lái)源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問(wèn)題,請(qǐng)聯(lián)系我們及時(shí)刪除。


java web總結(jié)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.weilaioem.com/gongwen/522634.html