锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩成人av网站,亚洲一区自拍偷拍,亚洲午夜avhttp://www.aygfsteel.com/yaoleiyu/category/9975.htmlzh-cnFri, 02 Mar 2007 06:48:08 GMTFri, 02 Mar 2007 06:48:08 GMT60Servlets/JSP寮鍙戞妧鏈棶絳擺杞琞http://www.aygfsteel.com/yaoleiyu/archive/2006/04/15/41270.htmlwinderwinderSat, 15 Apr 2006 14:00:00 GMThttp://www.aygfsteel.com/yaoleiyu/archive/2006/04/15/41270.htmlhttp://www.aygfsteel.com/yaoleiyu/comments/41270.htmlhttp://www.aygfsteel.com/yaoleiyu/archive/2006/04/15/41270.html#Feedback0http://www.aygfsteel.com/yaoleiyu/comments/commentRss/41270.htmlhttp://www.aygfsteel.com/yaoleiyu/services/trackbacks/41270.html 涓轟粈涔圙enericServlet鍦╥nit(ServletConfig config)鍩虹涓婂鍔犱簡涓涓猧nit()鏂規硶錛?/strong>銆

銆銆init()鏂規硶琚獹enericServlet.init(ServletConfig config)鏂規硶璋冪敤銆?br />銆銆
銆銆init()鏂規硶鏂逛究浜嗗紑鍙戜漢鍛樺畾鍒禨ervlet鐨勫垵濮嬪寲錛岃屾棤欏誨幓緇存姢ServletConfig瀵硅薄鐨勫瓨鍌ㄥ伐浣溿?br />銆銆
銆銆閲嶅啓GenericServlet.init(ServletConfig config)蹇呴』瑕佹樉紺虹殑璋冪敤super.init(config)鏂規硶銆?br />銆銆
銆銆ServletContext.getContect(java.lang.String uripath)鐨勪綔鐢ㄦ槸浠涔堬紵
銆銆
銆銆榪斿洖鍚屼竴Server涓寚瀹氱殑path瀵瑰簲鐨凷ervletContext瀵硅薄,閫氳繃璇ュ璞″彲浠ュ疄鐜頒笌Server涓殑鍏朵粬Context鎵撲氦閬撱?br />銆銆
銆銆uripath蹇呴』鏄互"/"寮濮嬶紙璇ヨ礬寰勭殑鍚箟鏄浉瀵逛簬鏁翠釜Servlet鏂囨。鐨勬牴璺緞錛岃屼笉鏄綋鍓峉ervletContext鐨勬牴璺緞錛夈?br />銆銆
銆銆Servlet鐢熷懡鍛ㄦ湡鏄粈涔堬紵
銆銆
銆銆涓鑸殑Servlet(GenericServlet,鍗充笌鍗忚鏃犲叧鐨凷ervlet)鐨勭敓鍛藉懆鏈燂細init() --> GenericServlet.service(ServletRequest req, ServletResponse res) --> destroy.
銆銆
銆銆HttpServlet鐨勭敓鍛藉懆鏈? init() --> GenericServlet.service(ServletRequest req, ServletResponse res)---> service(HttpServletRequest req, HttpServletResponse resp) --> doXXXX()-->destroy.
銆銆
銆銆鏈夋病鏈夊繀瑕侀噸鍐橤enericServlet.service()鏂規硶錛?/b>
銆銆
銆銆瀵逛簬HttpServlet鏉ヨ娌℃湁蹇呰銆傚彧闇瑕侀噸鍐欏畠鐨刣oXXXX()鏂規硶灝卞彲浠ヤ簡銆侶ttpServlet涓璼ervice()鏂規硶浼氳嚜鍔ㄧ殑鏍規嵁鐢ㄦ埛璇鋒眰綾誨瀷鎶婅姹傝漿鍙戠粰鐩稿簲鐨刣oXXXX()鏂規硶錛堜緥濡俤oGet()鏂規硶錛夈?br />銆銆
銆銆ServletRequest.getReader()鍜孲ervletRequest.getInputStream()濡備綍浣跨敤錛?/b>
銆銆
銆銆娉ㄦ剰涓や釜鏂規硶涓嶈兘鍚屾椂浣跨敤銆?br />銆銆
銆銆ServletRequest.getRealPath(String path)鏂規硶宸茬粡涓嶆帹鑽愪嬌鐢ㄣ?br />銆銆
銆銆璇蜂嬌鐢⊿ervletContext.getRealPath(String path)鏂規硶銆?br />銆銆
銆銆ServletResponse緙虹渷鐨勫瓧絎﹂泦(charset)鏄粈涔?

銆銆ServletResponse緙虹渷鐨勫瓧絎﹂泦(charset)鏄疘SO-8859-1,鍙互閫氳繃setContentType(java.lang.String)鏂規硶鏀瑰彉鏂扮殑瀛楃闆嗐?br />銆銆
銆銆渚嬪錛歴etContentType("text/html; charset=Shift_JIS").
銆銆
銆銆鍏充簬瀛楃闆嗕俊鎭紝鍙互嫻忚RFC 2045
銆銆
銆銆HttpServletRequest.getRequestURI()鍜孒ttpServletRequest.getRequestURL()鍖哄埆鏄粈涔?

銆銆request.getRequestURI() 榪斿洖鍊肩被浼鹼細/xuejava/requestdemo.jsp
銆銆
銆銆request.getRequestURL() 榪斿洖鍊肩被浼鹼細http://localhost:8080/xuejava/requestdemo.jsp
銆銆
銆銆HttpServletRequest.encodeURL()鍜孒ttpServletRequest.encodeRedirectURL(()鍖哄埆鏄粈涔?涓轟粈涔堣鏈変袱涓笉鍚岀殑鏂規硶鍛紵
銆銆
銆銆褰撶敤URL-rewriting鏂瑰紡鏉ョ鐞哠ession鐨勬椂鍊欙紝闇瑕佺敤鍒頒互涓婄殑涓や釜鏂規硶銆?br />銆銆
銆銆涓や釜鏂規硶鐨勪笉鍚岀偣鏄細涓や釜鏂規硶紜畾鏄惁闇瑕佸寘鍚玸ession ID鐨勯昏緫涓嶅悓銆?br />銆銆
銆銆鍦ㄨ皟鐢℉ttpServletResponse.sendRedirect鍓嶏紝搴旇鍏堣皟鐢╡ncodeRedirectURL()鏂規硶錛屽惁鍒欏彲鑳戒細涓㈠けSesssion淇℃伅銆?...
銆銆
銆銆濡備綍浣夸綘鐨凷ervlet鎴栬匤SP瀹炵幇Single Thread Model?銆銆

銆銆瀵逛簬Servlet瀹炵幇javax.single.SingleThreadModel鎺ュ彛銆?br />銆銆
銆銆瀵逛簬JSP,鍦≒age Directive涓啓濡備笅鐨勮鍙?lt;%@ page isThreadSafe="false" %>
銆銆
銆銆JSP Tag 鍜?JSP XML-based Tag
銆銆
銆銆...
銆銆
銆銆濡備綍鎶婃煇涓涓狫SP Page瀹氫箟鎴愪負Error Page?涓轟粈涔堣榪欐牱鍋氾紵
銆銆
銆銆瀹炵幇鏂規硶錛?<%@ page isErrorPage="true" %>
銆銆
銆銆涓轟粈涔堬紵 鍥犱負闇瑕佽幏鍙朎xception 瀵硅薄錛堢己鐪佹儏鍐典笅錛屽湪JSP Page涓槸涓嶈兘鐩存帴浣跨敤鈥滈殣鍚璞♀?exception鐨勶級銆?br />銆銆
銆銆JSP Page鐨勬墽琛岄『搴忔槸濡備綍鐨勶紵
銆銆
銆銆JSP Page鐨勬墽琛岄『搴忓涓嬶細
銆銆
銆銆JSP Page Translation. JSP Page --> Servlet source code.
銆銆JSP Page Compilation. Servlet source code --> Servlet class.
銆銆Load Class(First time or the server restarted)
銆銆
銆銆Create instance(鍙兘浼氬緢澶氭錛屽鏋淛SP Page涓0鏄庝簡<%@ page isThreadSafe="false" %>)
銆銆
銆銆Call jspInit method錛堜竴鑸殑JSP Page閮芥病鏈夐噸鍐欒繖涓柟娉曪紝閲嶅啓闇瑕佸湪澹版槑璇彞孌典腑錛夈?br />銆銆
銆銆Call _jspService method錛堢被浼間笌涓鑸琀ttpServlet鐨刣oGet鍜宒oPost鏂規硶錛屼絾鏄彲浠ュ悓鏃剁敤鏉ュ鐞哖ost鍜孏etq璇鋒眰錛夈?br />銆銆
銆銆Call jspDestroy method錛圫erver鍦ㄥ嵏杞絊ervet鐨勬椂鍊欙紝渚嬪褰揝ervlet寰堜箙娌℃湁浣跨敤鐨勬儏鍐碉級銆?br />銆銆
銆銆JSP Page涓湁鍝簺闅愬惈瀵硅薄(Implicity Object)?鍚勮嚜鐨勭被鍨嬪拰浣滅敤鏄粈涔堬紵
銆銆
銆銆request --
銆銆reponse --
銆銆session --
銆銆application --
銆銆out --
銆銆page --
銆銆pagecontext --
銆銆exception -- 鍙湁鍦ㄥ綋鍓岼SP Page涓篍rror Page鐨勬椂鍊欐墠鏈夋晥銆?br />銆銆config --
銆銆
銆銆<jsp:include page="/foo/foo.jsp" %> 鍜?<@ include file="/foo/foo.jsp" %>鐨勫尯鍒槸浠涔堬紵
銆銆
銆銆<jsp:include ... -- request time.
銆銆<@ include ... -- Page translation time.
銆銆
銆銆Servlets/JSP Container(Engine)鏈夊嚑縐嶈繍琛屾柟寮忥紵
銆銆
銆銆Standalone
銆銆Tomcat standalone mode
銆銆In-process
銆銆Tomcat running inside Apache Web Server.
銆銆Out-of-process
銆銆Apache + mod_jk + Tomcat
銆銆
銆銆Servlet,Servlet寮鍙戜漢鍛橈紝Servlet API, Servlet Container鐨勫叧緋繪槸浠涔堬紵
銆銆
銆銆Servlet,Servlet寮鍙戜漢鍛?--->Servlet API --> Servlet Container
銆銆The parts of an HTTP message
銆銆
銆銆Message part Description
銆銆The initial line錛?Specifies the purpose of the request or response message
銆銆渚嬪瓙錛欸ET /reports/sales/index.html HTTP/1.0
銆銆The header section:Specifies the meta-information, such as size, type, and encoding,
銆銆about the content of the message
銆銆A blank line:
銆銆An optional message body: The main content of the request or response message
銆銆
銆銆涓嬮潰鏄竴涓猂esponse鐨勪緥瀛愶細
銆銆
銆銆HTTP/1.0 200 OK
銆銆Date: Tue, 01 Dec 2001 23:59:59 GMT
銆銆Content-Type: text/html
銆銆Content-Length: 52
銆銆
銆銆<html>
銆銆<body>
銆銆<h1>Hello, John!</h1>
銆銆</body>
銆銆</html>
銆銆
銆銆HTTP瑙勮寖涓畾涔変簡鍝簺鏂規硶錛熷悇鑷湁浠涔堢敤閫旓紵
銆銆
銆銆GET
銆銆HEAD
銆銆POST
銆銆浠?Http 1.1瑙勮寖寮濮嬶紝澧炲姞浜嗕互涓嬬殑鏂規硶:
銆銆
銆銆PUT
銆銆OPTIONS
銆銆TRACE
銆銆DELETE
銆銆CONNECT
銆銆
銆銆ServetRequest涓負浠涔堣瀹氫箟:getContentType(),getContentLength()鏂規硶銆?br />銆銆
銆銆鏍規嵁HTTP鍗忚瑙勮寖錛孯equest 鍜?Response涓鏍蜂篃鏈夎繖浜涘繀涓嶅彲灝戠殑鍐呭錛?br />銆銆
銆銆鎵浠ラ渶瑕侀鍏堜簡瑙?HTTP Message鐨勬蹇靛拰鍏跺唴瀹圭殑鏍煎紡錛岃繖浜涗笢瑗垮浜嶳equest鍜孯eponse鏄竴鏍風殑銆?br />銆銆
銆銆瀵逛簬GET鏂瑰紡鍙戦佺殑璇鋒眰錛屽叾鍐呭綾誨瀷涓猴細null
銆銆
銆銆瀵逛簬POST鏂瑰紡鍙戦佺殑璇鋒眰錛屽叾鍐呭綾誨瀷涓猴細application/x-www-form-urlencoded
銆銆
銆銆POST鏂瑰紡鍙戦佽姹傜殑鍐呭綾諱技浜庯細username=xuejava.
銆銆
銆銆RequestDispatcher.forward()鍜孒ttpServletResponse.sendRedirect()鐨勫尯鍒槸浠涔堬紵
銆銆
銆銆RequestDispatcher.forward()鏄湪鏈嶅姟鍣ㄧ榪愯錛汬ttpServletResponse.sendRedirect()鏄氳繃鍚戝鎴鋒祻瑙堝櫒鍙戦佸懡浠ゆ潵瀹屾垚銆?br />銆銆
銆銆鎵浠equestDispatcher.forward()瀵逛簬嫻忚鍣ㄦ潵璇存槸鈥滈忔槑鐨勨濓紱鑰孒ttpServletResponse.sendRedirect()鍒欎笉鏄?br />銆銆
銆銆鍙﹀錛岃繕瑕佹敞鎰廟equestDispatcher.forward()鍦ㄨ皟鐢ㄧ殑鏃跺橰esponse涓嶈兘宸茬粡Commit浜嗭紙Response.isCommitted()錛夈?br />銆銆
銆銆ServletContext.getRequestDispatcher(String url)鍜孲ervletRequest.getRequestDispatcher(String url)鐨勫尯鍒槸浠涔堬紵涓轟粈涔堬紵
銆銆
銆銆ServletContext.getRequestDispatcher(String url)涓殑url鍙兘浣跨敤緇濆璺緞錛涜孲ervletRequest.getRequestDispatcher(String url)涓殑url鍙互浣跨敤鐩稿璺緞銆?br />銆銆
銆銆鍥犱負ServletRequest鍏鋒湁鐩稿璺緞鐨勬蹇碉紱鑰孲ervletContext瀵硅薄鏃犳姒傚康銆?br />銆銆
銆銆濡備綍鎶婅姹傝漿縐誨埌鍙﹀涓涓猈eb App涓殑鏌愪釜鍦板潃錛?/b>
銆銆
銆銆ServletContext.getRequestDispatcher(String url)鍜孲ervletRequest.getRequestDispatcher(String url)鍙兘鎶婅姹傝漿縐誨埌鍚屼竴涓猈eb App涓殑鍦板潃銆?br />銆銆
銆銆濡傛灉闇瑕佹妸璇鋒眰杞Щ鍒板彟澶栦竴涓猈eb App涓殑鏌愪釜鍦板潃錛屽彲浠ユ寜涓嬮潰鐨勫仛娉曪細
銆銆
銆銆1. 鑾峰緱鍙﹀涓涓猈eb App鐨凷ervletConext瀵硅薄(currentServletContext.getContext(uripath)).
銆銆
銆銆2. 璋冪敤ServletContext.getRequestDispatcher(String url)鏂規硶銆?br />



winder 2006-04-15 22:00 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 柯坪县| 石河子市| 铜川市| 贵阳市| 信宜市| 寿阳县| 峡江县| 正阳县| 谷城县| 钟山县| 汕头市| 江门市| 长乐市| 庐江县| 青川县| 莱西市| 会宁县| 绥江县| 永仁县| 瓦房店市| 琼中| 额敏县| 巨鹿县| 闵行区| 长乐市| 汨罗市| 蓝田县| 庄河市| 方城县| 独山县| 元朗区| 三河市| 淮南市| 五指山市| 博白县| 海兴县| 青铜峡市| 多伦县| 高雄市| 中方县| 建宁县|