




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Servlet背景知識(shí)常用的Web服務(wù)器IIS應(yīng)用程序服務(wù)器Apache處理靜態(tài)頁(yè)面Tomcat通常的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)CGI(CommonGateWayInterface)API常用的有(NSAPI,ISAPI)ASP(ActiveServerPage)PHP(PersonalHomePage)JSP/Servlet(JavaServerPage)
LAMPtomcat啟動(dòng)與停止startupshutdowncatalinastartcatalinastopcatalinadebug調(diào)試錯(cuò)誤的時(shí)候runexithelp設(shè)置環(huán)境變量JAVA_HOMEshutdown.bat小心使用tomcat目錄結(jié)構(gòu)bin:存放各種平臺(tái)下啟動(dòng)和關(guān)閉Tomcat的腳本文件。startup.bat是windows下啟動(dòng)tomcat的文件,shutdown.bat是關(guān)閉tomcat的文件。common:在common目錄下的lib目錄,存放Tomcat服務(wù)器和所有web應(yīng)用都能訪問(wèn)的JAR。shared:在shared目錄下的lib目錄,存放所有web應(yīng)用能訪問(wèn)的,但Tomcat不能訪問(wèn)的JAR。server:在server/webapps目錄中,存放Tomcat自帶的兩個(gè)APP-admin和manager應(yīng)用,來(lái)管理Tomcat-web服務(wù)用的。work:Tomcat把各種由jsp生成的servlet文件放在這個(gè)目錄下。temp:臨時(shí)活頁(yè)夾,Tomcat運(yùn)行時(shí)候存放臨時(shí)文件用的。logs:存放Tomcat的日志文件webapps:web應(yīng)用的發(fā)布目錄,把java開發(fā)的web站點(diǎn)或war文件放入這個(gè)目錄下就可以通過(guò)tomcat服務(wù)器訪問(wèn)了。conf:Tomcat的各種配置文件,最重要的是server.xml.Tomcat配置文件conf/server.xml
服務(wù)器的主配置文件conf/web.xml
定義所有Web應(yīng)用的配置 (缺省的Servlet定義和MIME類型定義)conf/tomcat-user.xml
定義了tomcat用戶的信息(用于權(quán)限與安全)conf/server.xml頂層類元素:位于整個(gè)配置文件的頂層,<Server>;連接器類元素[Connectors]:客戶和服務(wù)(容器類元素)間的通訊接口。接受客戶請(qǐng)求,返回響應(yīng)結(jié)果;<Connector>容器類元素[Containers]:處理客戶請(qǐng)求并且生成響應(yīng)結(jié)果,包含3個(gè):<Engine><Host><Context>嵌套類元素[NestedComponents]:可以加入到容器中的元素,包括:<logger><Valve><Realm>等一個(gè)<Server>包含一個(gè)或多個(gè)<Service>,一個(gè)<Service>包含唯一一個(gè)<Engine>和一個(gè)或多個(gè)<Connector>,多個(gè)<Connector>共享一個(gè)<Engine>;一個(gè)<Engine>包含多個(gè)<Host>,每個(gè)<Host>定義一個(gè)虛擬主機(jī),包含一個(gè)或多個(gè)web應(yīng)用<Context>;<Context>元素是代表一個(gè)在虛擬主機(jī)上運(yùn)行的Web應(yīng)用。Pleasenotethatfortomcat5.x,unliketomcat4.x,itisNOTmendedtoplace<Context>elementsdirectlyintheserver.xmlfile.Instead,putthemintheMETA-INF/context.xmldirectoryofyourWARfileortheconfdirectoryasdescribedabove.什么是MIMEMultipurposInternetMailExtension指明白傳送內(nèi)容的格式最早用于郵件附件server.xml的層次結(jié)構(gòu)<Serverport="8005"shutdown="SHUTDOWN"debug="0">
<Servicename="Tomcat-Standalone">
<ConnectorclassName="HttpConnector"port="80"/><Enginename="Standalone"defaultHost="localhost"debug="0">
<LoggerclassName="FileLogger"prefix="catalina_log."/>
<RealmclassName="MemoryRealm"/>
<Hostname="localhost"debug="0"appBase="webapps"unpackWARs="true">
<ValveclassName="AccessLogValve"directory="logs"/>
<LoggerclassName="FileLogger"refix="localhost_log."/>
<Contextpath=""docBase="ROOT"/>
<Contextpath="/manager"docBase="manager"privileged="true"/>
<Contextpath="/myapp"docBase="t"debug="0"reloadable="true"/>
</Host> </Engine></Service></Server>HTTP協(xié)議基礎(chǔ)HTTP(HypertextTransfer
Protocol,超文本傳輸協(xié)議)HTTP是以明文方式發(fā)送數(shù)據(jù)的用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議。HTTP協(xié)議是以TCP/IP為基礎(chǔ)的高層協(xié)議?,F(xiàn)在廣泛使用的版本HTTP/1.1HTTP協(xié)議基礎(chǔ)GET/latest.htmlHTTP/1.1
Host:
Content-Type:text/html
…
{空行}
POST/servlet/servHTTP/1.1
Host:
Content-Type:application/x-www-form-urlencoded
Content-Length:32
username=billgates&password=hehe
HTTP/1.1200OK
Date:Fri,31Dec200310:23:34GMT
Content-Type:text/html
Content-length:280
<html>
……
</html>WebApplication的概念WebApplicationNameWEB-INFweb.xml該webapp的配置文件lib該webapp用到的庫(kù)文件classes存放編譯好的servletMETA-INF存放該webapp的上下文信息,符合J2EE標(biāo)準(zhǔn)WebApplication可以直接放在webapp下面也可以通過(guò)配置文件指定到其他目錄<host>里面<Contextpath=“/虛擬路徑名“docBase=”目錄位置"debug="0"reloadable="true"/>Tomcat的目錄結(jié)構(gòu)bin/二進(jìn)制可執(zhí)行文件和腳本
catalinastartstop catalinadebugrunexitcommon/Catalina本身和web應(yīng)用可加載的類目錄conf/配置文件目錄logs/日志目錄server/服務(wù)器所需的類庫(kù)目錄shared/ WebApp共享的類庫(kù)webapps/Web應(yīng)用所存放的目錄applicationswork/Tomcat的工作目錄(存放jsp產(chǎn)生的class文件)temp/ 存放臨時(shí)產(chǎn)生的文件Servlet簡(jiǎn)介Servlet是服務(wù)器小應(yīng)用程序用來(lái)完成B/S架構(gòu)下,客戶端請(qǐng)求的響應(yīng)處理平臺(tái)獨(dú)立,性能優(yōu)良,能以線程方式運(yùn)行ServletAPI為Servlet提供了統(tǒng)一的編程接口Servlet一般在容器中運(yùn)行常見(jiàn)的Servlet容器Tomcat(其下載、安裝和運(yùn)行請(qǐng)參考視頻文件)Jetty/ResinServlet示例HelloWorldServlet.java需求:
編寫一個(gè)生成純文本的簡(jiǎn)單的Servlet類。目的:
了解Servlet的基本概念在web.xml的配置
<servlet><servlet-name>HelloWorldServlet</servlet-name><servlet-class>HelloWorldServlet</servlet-class></servlet>
<servlet-mapping><servlet-name>HelloWorldServlet</servlet-name><url-pattern>/HelloWorldServlet</url-pattern></servlet-mapping>webapp根路徑(url)必須/開頭
web.xml/aaa->hello->servletclass->web-inf/classes->doGetl創(chuàng)建ServletXXXextendsHttpServletOverridedoGetdoPostcopytoWEB-INF/classesweb.xml<servlet><servlet-name><servlet-class></servlet><servlet-mapping><url-pattern>/restartserverServlet的生命周期生命全過(guò)程:
加載ClassLoader
實(shí)例化new
初始化init(ServletConfig)
處理請(qǐng)求servicedoGetdoPost
退出服務(wù)destroy()只有一個(gè)對(duì)象API中的過(guò)程:
init()//只執(zhí)行一次,第一次初始化的時(shí)候
publicvoidinit(ServletConfig
config)throwsServletException
service()
publicvoidservice(ServletRequest
req,ServletResponse
res)throwsServletException,java.io.IOException
destroy()//webapp退出的時(shí)候
publicvoiddestroy()TestLifeCycleServlet.javainitinit(servletconfigconfig)this.config=configinit();重寫必須得super.init(config)不然不能使用this.getServletConfig當(dāng)然也就不能用getInitParameter();我們只需要重寫init();Servlet編程接口GenericServlet是所有Servlet的鼻祖用于HTTP的Servlet編程都通過(guò)繼承javax.servlet.http.HttpServlet實(shí)現(xiàn)請(qǐng)求處理方法:(分別對(duì)應(yīng)http協(xié)議的7種請(qǐng)求)
1、doGet 響應(yīng)Get請(qǐng)求,常用
2、doPost 響應(yīng)Post請(qǐng)求,常用
3、doPut 用于http1.1協(xié)議
4、doDelete 用于http1.1協(xié)議
5、doHead 僅響應(yīng)Get請(qǐng)求的頭部。
6、doOptions 用于http1.1協(xié)議
7、doTrace 用于http1.1協(xié)議實(shí)例的個(gè)數(shù):
在非分布的情況下,通常一個(gè)Servlet在服務(wù)器中有一個(gè)實(shí)例
示例:使用doGet和doPost方法處理請(qǐng)求要求:
編寫一個(gè)帶有doGet和doPost方法的Servlet目的:
掌握基本的Servlet請(qǐng)求處理技術(shù)要點(diǎn):
publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres)
throwsServletException,IOException讀取指定的參數(shù):ThreeParams.html/ThreeParams.java讀取所有的參數(shù):ShowParameters.java/ShowParametersForm.html獲取表單信息通過(guò)HttpServletRequest的getParameter()方法來(lái)獲得客戶端傳遞過(guò)來(lái)的數(shù)據(jù)getParameter()方法返回一個(gè)字符串類型的值getParameterNames()返回Enumeration類型的值,getParameterValues()返回一個(gè)字符串?dāng)?shù)組不要通過(guò)本地文件訪問(wèn)ThreeParams.javaShowParameters.javaHTTP的狀態(tài)處理HTTP是無(wú)狀態(tài)有狀態(tài):Server知道Client以前在我這兒做過(guò)什么事兒處理CookieHttp協(xié)議的無(wú)連接性要求出現(xiàn)一種保存C/S間狀態(tài)的機(jī)制Cookie:保存到客戶端的一個(gè)文本文件,與特定客戶相關(guān)Cookie以“名-值”對(duì)的形式保存數(shù)據(jù)創(chuàng)建Cookie:newCookie(name,value)可以使用Cookie的setXXX方法來(lái)設(shè)定一些相應(yīng)的值setName(Stringname)/getName()setValue(Stringvalue)/getValue()setMaxAge(intage)/getMaxAge()利用HttpServletResponse的addCookie(Cookie)方法將它設(shè)置到客戶端利用HttpServletRequest的getCookies()方法來(lái)讀取客戶端的所有Cookie,返回一個(gè)Cookie數(shù)組設(shè)置CookieSetCookies.java讀取CookieShowCookies.javaWeb上保持狀態(tài)的手段:
cookiesessionapplicationpersistence1:服務(wù)器可以向客戶端寫內(nèi)容2:只能是文本內(nèi)容3:客戶端可以阻止服務(wù)器寫入4:只能拿自己webapp寫入的東西5:Cookie分為兩種 屬于窗口/子窗口(放在內(nèi)存中的) 屬于文本(有生命周期的)6:一個(gè)servlet/jsp設(shè)置的cookies能夠被
同一個(gè)路徑下面或者子路徑下面的
servlet/jsp讀到(路徑=URL)
(路徑!=真實(shí)文件路徑)會(huì)話跟蹤Session在某段時(shí)間一連串客戶端與服務(wù)器端的“交易”在Jsp/Servlet中,如果瀏覽器不支持Cookie,可以通過(guò)URL重寫來(lái)實(shí)現(xiàn),就是將一些額外數(shù)據(jù)追加到表示會(huì)話的每個(gè)URL末尾,服務(wù)器在該標(biāo)示符與其存儲(chǔ)的有關(guān)的該會(huì)話的數(shù)據(jù)之間建立關(guān)聯(lián)。如hello.jsp?jsessionid=1234可以通過(guò)程序來(lái)終止一個(gè)會(huì)話。如果客戶端在一定時(shí)間內(nèi)沒(méi)有操作,服務(wù)器會(huì)自動(dòng)終止會(huì)話。通過(guò)HttpSession來(lái)讀寫Session規(guī)則如果瀏覽器支持Cookie,創(chuàng)建Session的時(shí)候會(huì)把SessionID保存在Cookie里如果不支持Cookie,必須自己編程使用URL重寫的方式實(shí)現(xiàn)Sessionresponse.encodeURL()轉(zhuǎn)碼URL后面加入SessionIdSession不象Cookie擁有路徑訪問(wèn)的問(wèn)題同一個(gè)application下的servlet/jsp可以共享同一個(gè)session,前提示同一個(gè)客戶端窗口.7272HttpServletRequest中的Session管理方法getRequestedSessionId():返回隨客戶端請(qǐng)求到來(lái)的會(huì)話ID。可能與當(dāng)前的會(huì)話ID相同,也可能不同。getSession(booleanisNew):如果會(huì)話已經(jīng)存在,則返回一個(gè)HttpSession,如果不存在并且isNew為true,則會(huì)新建一個(gè)HttpSessionisRequestedSessionIdFromCookie():當(dāng)前的SessionID如果是從Cookie獲得,為trueisRequestedSessionIdFromURL():當(dāng)前SessionID如果是由URL獲得,為trueisRequestedSessionIdValid():如果客戶端的會(huì)話ID代表的是有效會(huì)話,則返回true。否則(比如,會(huì)話過(guò)期或根本不存在),返回falseHttpSession的常用方法getAttributeNames()/getAttribute()getCreateTime()getId()getMaxInactiveInterval()invalidate()isNew()setAttribute()setMaxInactivateInterval()SessionInfoServlet.javaShowSession.java
URLSession.javaSession總結(jié)服務(wù)器的一塊內(nèi)存(存key-value)和客戶端窗口對(duì)應(yīng)(子窗口)(獨(dú)一無(wú)二)客戶端和服務(wù)器有對(duì)應(yīng)的SessionID客戶端向服務(wù)器端發(fā)送SessionID的時(shí)候兩種方式:cookie(內(nèi)存cookie)rewritenURL瀏覽器禁掉cookie,就不能使用session(使用cookie實(shí)現(xiàn)的session)如果想安全的使用session(不論客戶端是否禁止cookie),只能使用URL重寫(大大增加編程負(fù)擔(dān)),所以很多網(wǎng)站要求客戶端打開cookieApplication用于保存整個(gè)WebApplication的生命周期內(nèi)都可以訪問(wèn)的數(shù)據(jù)在API中表現(xiàn)為ServletContext通過(guò)HttpServlet的getServletContext方法可以拿到通過(guò)ServletContext的get/setAttribute方法取得/設(shè)置相關(guān)屬性TestServletContext.javaServlet中的請(qǐng)求轉(zhuǎn)發(fā)RequestDispatcher接口對(duì)象允許將請(qǐng)求轉(zhuǎn)發(fā)到其他服務(wù)器資源通過(guò)RequestDispatcher的forward(HttpServletRequest,HttpServletResponse)方法可以將請(qǐng)求轉(zhuǎn)發(fā)通過(guò)ServletContext的getRequestDispatcher(Stringurl)方法來(lái)獲得RequestDispatcher對(duì)象,并且指定轉(zhuǎn)發(fā)的目標(biāo)url資源可以通過(guò)HttpServletRequest的setAttribute(Stringname,Stringvalue)來(lái)設(shè)置需要傳遞的參數(shù),然后在代理servlet中就可以使用HttpServerRequest的getAttribute(Stringname)來(lái)獲得對(duì)應(yīng)的值數(shù)據(jù)庫(kù)處理以及在Servlet中使用Bean廣義javabean=普通java類狹義javabean=符合SunJavaBean標(biāo)準(zhǔn)的類在Servlet中使用Bean和在通常程序中使用Bean類似屬性名稱第一個(gè)字母必須小寫,一般private,
比如:privateproductId一般具有g(shù)ettersandsetters要具有一個(gè)參數(shù)為空的構(gòu)造方法但Bean不應(yīng)具有GUI表現(xiàn)一般是用來(lái)實(shí)現(xiàn)某一業(yè)務(wù)邏輯或取得特定結(jié)果示例:連接數(shù)據(jù)庫(kù)ShowRs.javaShowRsUseBean.java如何掌握Servlet創(chuàng)建Servlet從HttpServlet繼承重寫doGet/doPost方法在web.xml中配置servlet生命周期Cookie/Session/Application的概念請(qǐng)求轉(zhuǎn)發(fā)使用javabeanFilterandListenerServlet的多線程機(jī)制
Servlet體系結(jié)構(gòu)是建立在Java多線程機(jī)制之上的,它的生命周期是由Web容器負(fù)責(zé)的。當(dāng)客戶端第一次請(qǐng)求某個(gè)Servlet時(shí),Servlet容器將會(huì)根據(jù)web.xml配置文件實(shí)例化這個(gè)Servlet類。當(dāng)有新的客戶端請(qǐng)求該Servlet時(shí),一般不會(huì)再實(shí)例化該Servlet類,也就是有多個(gè)線程在使用這個(gè)實(shí)例。Servlet容器會(huì)自動(dòng)使用線程池等技術(shù)來(lái)支持系統(tǒng)的運(yùn)行JSPJSP簡(jiǎn)介JSPJavaServerPages擁有servlet的特性與優(yōu)點(diǎn)(本身就是一個(gè)servlet)直接在HTML中內(nèi)嵌JSP代碼JSP程序由JSPEngine先將它轉(zhuǎn)換成Servlet代碼,接著將它編譯成類文件載入執(zhí)行只有當(dāng)客戶端第一次請(qǐng)求JSP時(shí),才需要將其轉(zhuǎn)換、編譯優(yōu)點(diǎn):優(yōu)良的性能
優(yōu)于CGI,PHP,ASP平臺(tái)無(wú)關(guān)性
操作系統(tǒng)無(wú)關(guān),Web服務(wù)器無(wú)關(guān)可擴(kuò)展性
tag的擴(kuò)展機(jī)制,簡(jiǎn)化頁(yè)面開發(fā)HelloWorld.jsp
HW.jspjavaclassJSP編程—基本語(yǔ)法JSP傳統(tǒng)語(yǔ)法DeclarationScriptletExpressionCommentDirectivesAction動(dòng)作指令內(nèi)置對(duì)象JSTLJSFJSP編程Declaration基本語(yǔ)法:<%!%>說(shuō)明:在此聲明的變量、方法都會(huì)被保留成唯一的一份,直到JSP程序停止執(zhí)行例:<%!inti;publicvoidsetName(){……}%>AccessCounts.jspScriptlet基本語(yǔ)法:<%程序代碼區(qū)%>可以放入任何的Java程序代碼例:<%for(inti=0;i<10,i++){ ……}%>注釋格式:<%--……--%><%//……%><%/*……*/%>BGColor.jsp表達(dá)式基本語(yǔ)法:<%=……%>=后面必須是字符串變量或者可以被轉(zhuǎn)換成字符串的表達(dá)式不需要以;結(jié)束只有一行例:<%=“helloworld”%><%=i+1%><%=request.getParameter(“name”)%>Expressions.jspDirectiveDirective(編譯指令)相當(dāng)于在編譯期間的命令格式:<%@Directive屬性=“屬性值”%>常見(jiàn)的Directive:pageincludetaglibDirective指明與JSPContainer的溝通方式基本格式:<%@pagelanguage=“scriptlanguage”| extends=“className”| import=“importList”| buffer=“none|kbsize”|--none:不緩沖,默認(rèn)8k session=“true|false”|--是否可以使用session,默認(rèn)true autoFlush=“true|false”--緩沖器是否自動(dòng)清除,默認(rèn)true isThreadSafe=“true|false”|--默認(rèn)false(永遠(yuǎn)不要設(shè)成true) info=“infoText”|--任何字符
errorPage=“errorPageUrl”| isErrorPage=“true|false”| contentType=“contentTyepInfo”|
pageEncoding=“gb2312”%>TestDirective.jspTestErr.jsp/ErrPage.jsp–讀視頻Directive--include將指定的JSP程序或者HTML文件包含進(jìn)來(lái)格式:<%@includefile=“fileURL%>JSPEngine會(huì)在JSP程序的轉(zhuǎn)換時(shí)期先把file屬性設(shè)定的文件包含進(jìn)來(lái),然后開始執(zhí)行轉(zhuǎn)換及編譯的工作。(原封不動(dòng)的把文件的代碼copy到該位置,然后進(jìn)行轉(zhuǎn)換和編譯,只生成一個(gè)java和class)限制:不能向fileURL中傳遞參數(shù)不能abc.jsp?user=aaaTestBar.jsp/TitleBar.jspActionAction(動(dòng)作指令)在運(yùn)行期間的命令常見(jiàn)的:jsp:useBeanjsp:setPropertyjsp:getPropertyjsp:includejsp:forwardjsp:paramjsp:plugin嵌入appletjsp:include/jsp:param用于動(dòng)態(tài)包含JSP程序或HTML文件等除非這個(gè)指令會(huì)被執(zhí)行到,否則它是不會(huì)被Tomcat等JSPEngine編譯。格式:<jsp:includepage=“URLSpec”flush=“true”/><jsp:includepage=“URLSpec”flush=“true”> <jsp:paramname=“ParamName”value=“paramValue”/> </jsp:include>jsp:param用來(lái)設(shè)定include文件時(shí)的參數(shù)和對(duì)應(yīng)的值例如:date.jsp/include.jsppute.jsp/divide.jsp/multiply.jsp和編譯指令include的區(qū)別include編譯指令是在JSP程序的轉(zhuǎn)換時(shí)期就將file屬性所指定的程序內(nèi)容嵌入,然后再編譯執(zhí)行;而include指令在轉(zhuǎn)換時(shí)期是不會(huì)被編譯的,只有在客戶端請(qǐng)求時(shí)期如果被執(zhí)行到才會(huì)被動(dòng)態(tài)的編譯載入Include不能帶參數(shù),而<jsp:include>可以動(dòng)態(tài)包含的文件和被包含文件用的是同一個(gè)request對(duì)象jsp:forward/jsp:param用于將一個(gè)jsp的內(nèi)容傳送到page所指定的JSP程序或者Servlet中處理(URL)格式:<jsp:forwardpage=“urlSpec”flush=“true”/><jsp:forwardpage=“urlSpec”> <jsp:paramname=“paramName”value=“paramValue”/> </jsp:forward><jsp:param>用于指定參數(shù)和其對(duì)應(yīng)的值例如:test.jspforward.jsp/forforward.jspforward1.jsp/forforward1.jsp(withparameters)Forward的頁(yè)面和forward到的頁(yè)面用的是同一個(gè)request與此相對(duì)應(yīng)的是response.sendRedirect<jsp:forward>與response.sendRedirect的區(qū)別<jsp:forward>使用同一個(gè)requestforward后的語(yǔ)句不會(huì)繼續(xù)發(fā)送給客戶端速度快服務(wù)器內(nèi)部轉(zhuǎn)換,可以傳參數(shù)response.sendRedirect是不同的requestsend后的語(yǔ)句會(huì)繼續(xù)執(zhí)行,除非return速度慢需要到客戶端的往返,可以轉(zhuǎn)到任何頁(yè)面可以傳參數(shù),直接寫在url后面jsp:useBean通過(guò)jsp:useBean,可以在JSP中使用定義好的BeanBean的基本要素:必須要有一個(gè)不帶參數(shù)的構(gòu)造器。在JSP元素創(chuàng)建Bean時(shí)會(huì)調(diào)用空構(gòu)造器Bean類應(yīng)該沒(méi)有任何公共實(shí)例變量,也就是說(shuō),不允許直接訪問(wèn)實(shí)例變量,變量名稱首字母必需小寫通過(guò)getter/setter方法來(lái)讀/寫變量的值,并且將對(duì)應(yīng)的變量首字母改成大寫基本用法:test.jsp/CounterBean.java不要使用裸體類(規(guī)范要求)jsp:useBean(con.)jsp:useBean各項(xiàng)參數(shù)含義:id:對(duì)象實(shí)例名稱scope:Bean作用的范圍,默認(rèn)為page,對(duì)整個(gè)jsp頁(yè)面有效class:Bean類名稱(全名)type:Bean實(shí)例類型,可以是本類,或其父類,或?qū)崿F(xiàn)的接口,默認(rèn)為本類Scope各項(xiàng)參數(shù)的意義:page:僅涵蓋使用JavaBean的頁(yè)面(PageBean.jsp/CounterBean.java)request:有效范圍僅限于使用JavaBean的請(qǐng)求(RequestBean.jsp/RequestBean2.jsp/CounterBean.java)session:有效范圍在用戶整個(gè)連接過(guò)程中(整個(gè)會(huì)話階段均有效)(SessionBean.jsp/Session2.jsp/CounterBean.java)application:有效范圍涵蓋整個(gè)應(yīng)用程序。也就是對(duì)整個(gè)網(wǎng)站均有效(Application.jsp/Application2.jsp/CounterBean.java)jsp:useBean(con.)jsp:setProperty的格式:<jsp:setPropertyname=“beanName” property=“propertyName”|property=“*” value=“propertyvalue”|param=“paramName”/>相當(dāng)于beanName.setPropertyName(value)方法調(diào)用(setXxx()方法)jsp:getProperty的格式:<jsp:getPropertyname=“beanName”property=“propertyName”/>相當(dāng)于beanName.getPropertyName()方法調(diào)用(getXxx()方法)jsp:useBean(con.)建立表單參數(shù)和Bean屬性之間的關(guān)聯(lián)通過(guò)param指定表單元素的名稱,通過(guò)perperty指定對(duì)應(yīng)的Bean屬性名稱,由此建立這兩個(gè)變量的關(guān)聯(lián)(SaleEntry.jsp/SaleEntry.java,用url傳遞參數(shù))通過(guò)*來(lái)設(shè)置所有屬性和輸入?yún)?shù)之間的關(guān)聯(lián)
(SayHelloBean.html/SayHelloBean.jsp/HelloBean.java)在建立Bean屬性和表單參數(shù)之間的對(duì)應(yīng)關(guān)系時(shí),服務(wù)器會(huì)將對(duì)應(yīng)的參數(shù)自動(dòng)轉(zhuǎn)換成和屬性類型匹配的數(shù)據(jù)初步解釋編碼問(wèn)題JSP內(nèi)置對(duì)象JSP的內(nèi)置對(duì)象outrequestresponsepageContext用的很少sessionapplicationconfig用的很少exceptionPage用的很少JSP編程outOut內(nèi)置對(duì)象是一個(gè)緩沖的輸出流,用來(lái)給客戶端返回信息。它是javax.servlet.jsp.JspWriter的一個(gè)實(shí)例典型應(yīng)用:向客戶端輸出內(nèi)容例:向客戶端輸出一個(gè)字符串“HelloWorld”(HelloWorld.jsp)JSP--out常用方法:println():向客戶端輸出各種類型數(shù)據(jù)newLine():輸出一個(gè)換行符close():關(guān)閉輸出流flush():輸出緩沖區(qū)里的數(shù)據(jù)clearBuffer():清除緩沖區(qū)里的數(shù)據(jù),同時(shí)把數(shù)據(jù)輸出到客戶端clear():清除緩沖區(qū)里的數(shù)據(jù),但不把數(shù)據(jù)輸出到客戶端getBufferSize():返回緩沖區(qū)的大小JSP編程--requestrequest內(nèi)置對(duì)象表示的是調(diào)用JSP頁(yè)面的請(qǐng)求。通常,request對(duì)象是javax.servlet.http.HttpServletRequest接口的一個(gè)實(shí)例典型應(yīng)用:通過(guò)request.getParameter(“paramName”)可以獲得Form提交過(guò)來(lái)的參數(shù)值JSP--request可以用此對(duì)象取得請(qǐng)求的Header、信息(如瀏覽器版本、語(yǔ)言和編碼等)、請(qǐng)求的方式(get/post)、請(qǐng)求的參數(shù)名稱、參數(shù)值、客戶端的主機(jī)名稱等常用方法:getMethod():返回客戶端向服務(wù)器端傳送數(shù)據(jù)的方法getParameter(StringparamName):返回客戶端向服務(wù)器端傳送的參數(shù)值,該參數(shù)由paramName指定getParameterNames():獲得客戶端傳送給服務(wù)器端的所有參數(shù)的名字,結(jié)果是一個(gè)枚舉類型數(shù)據(jù)(Enumeration)getParameterValues(Stringname):獲得指定參數(shù)的所有值,由name指定getRequestUR
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 富氧燃燒施工方案
- 室內(nèi)藝術(shù)漆施工方案
- 2025年地理試題及答案
- 6年級(jí)下冊(cè)語(yǔ)文園地5日積月累朗讀
- 5年級(jí)下冊(cè)書人教版英語(yǔ)書
- centos中多線程壓縮命令
- 的田字格書寫格式
- arcgis開始編輯的代碼
- 廣東減震支架施工方案
- 登山臺(tái)階開挖施工方案
- 《認(rèn)知理論》課件
- 2024年度寧夏回族自治區(qū)國(guó)家電網(wǎng)招聘之環(huán)化材料類題庫(kù)檢測(cè)試卷B卷附答案
- 2024年云南省中考物理真題含解析
- 《冠心病護(hù)理》課件
- 江蘇省蘇州市2023-2024學(xué)年八年級(jí)上學(xué)期期末語(yǔ)文試題及答案
- ECharts數(shù)據(jù)可視化課件 第3章 柱狀圖和散點(diǎn)圖
- 老年人護(hù)理安全風(fēng)險(xiǎn)管理
- 建筑施工企業(yè)成本控制管理制度
- 音樂(lè)課《詠鵝》教案7篇
- 中學(xué)校園廣播聽力系統(tǒng)管理制度
- 《馬說(shuō)》說(shuō)課課件-2023-2024學(xué)年統(tǒng)編版語(yǔ)文八年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論