1ï¼ä»ä¹æ¯Servlet ï¼
Servletæ¯ä½¿ç¨Java Servlet åºç¨ç¨åºè®¾è®¡æ¥å£ï¼APIï¼åç¸å
³ç±»åæ¹æ³ç Java ç¨åºãé¤äº Java Servlet APIï¼Servlet è¿å¯ä»¥ä½¿ç¨ç¨ä»¥æ©å±åæ·»å å° API ç Java 类软件å
ãServlet å¨å¯ç¨ Java ç Web æå¡å¨ä¸æåºç¨æå¡å¨ä¸è¿è¡å¹¶æ©å±äºè¯¥æå¡å¨çè½åãJava Servlet对äºWebæå¡å¨å°±å¥½è±¡Java applet对äºWebæµè§å¨ãServletè£
å
¥Webæå¡å¨å¹¶å¨Webæå¡å¨å
æ§è¡ï¼èappletè£
å
¥Webæµè§å¨å¹¶å¨Webæµè§å¨å
æ§è¡ãJava Servlet API å®ä¹äºä¸ä¸ªServlet åJava使è½çæå¡å¨ä¹é´çä¸ä¸ªæ åæ¥å£ï¼è¿ä½¿å¾Servletså
·æè·¨æå¡å¨å¹³å°çç¹æ§ã
Servlet éè¿å建ä¸ä¸ªæ¡æ¶æ¥æ©å±æå¡å¨çè½åï¼ä»¥æä¾å¨ Web ä¸è¿è¡è¯·æ±åååºæå¡ãå½å®¢æ·æºåé请æ±è³æå¡å¨æ¶ï¼æå¡å¨å¯ä»¥å°è¯·æ±ä¿¡æ¯åéç» Servletï¼å¹¶è®© Servlet 建ç«èµ·æå¡å¨è¿åç»å®¢æ·æºçååºã å½å¯å¨ Web æå¡å¨æ客æ·æºç¬¬ä¸æ¬¡è¯·æ±æå¡æ¶ï¼å¯ä»¥èªå¨è£
å
¥ Servletãè£
å
¥åï¼ Servlet 继ç»è¿è¡ç´å°å
¶å®å®¢æ·æºååºè¯·æ±ãServlet çåè½æ¶åèå´å¾å¹¿ãä¾å¦ï¼Servlet å¯å®æå¦ä¸åè½ï¼
(1) å建并è¿åä¸ä¸ªå
å«åºäºå®¢æ·è¯·æ±æ§è´¨çå¨æå
容çå®æ´ç HTML页é¢ã
(2) å建å¯åµå
¥å°ç°æ HTML 页é¢ä¸çä¸é¨å HTML 页é¢ï¼HTML ç段ï¼ã
(3) ä¸å
¶å®æå¡å¨èµæºï¼å
æ¬æ°æ®åºååºäº Java çåºç¨ç¨åºï¼è¿è¡éä¿¡ã
(4) ç¨å¤ä¸ªå®¢æ·æºå¤çè¿æ¥ï¼æ¥æ¶å¤ä¸ªå®¢æ·æºçè¾å
¥ï¼å¹¶å°ç»æ广æå°å¤ä¸ªå®¢æ·æºä¸ãä¾å¦ï¼Servlet å¯ä»¥æ¯å¤åä¸è
ç游ææå¡å¨ã
(5) å½å
许å¨åè¿æ¥æ¹å¼ä¸ä¼ éæ°æ®çæ
åµä¸ï¼å¨æµè§å¨ä¸æå¼æå¡å¨è³appletçæ°è¿æ¥ï¼å¹¶å°è¯¥è¿
æ¥ä¿æå¨æå¼ç¶æãå½å
许客æ·æºåæå¡å¨ç®åãé«æå°æ§è¡ä¼è¯çæ
åµä¸ï¼appletä¹å¯ä»¥å¯å¨å®¢æ·æµè§å¨åæå¡å¨ä¹é´çè¿æ¥ãå¯ä»¥éè¿å®å¶åè®®ææ åï¼å¦ IIOPï¼è¿è¡éä¿¡ã
(6) 对ç¹æ®çå¤çéç¨ MIME ç±»åè¿æ»¤æ°æ®ï¼ä¾å¦å¾å转æ¢åæå¡å¨ç«¯å
æ¬ï¼SSIï¼ã
(7) å°å®å¶çå¤çæä¾ç»æææå¡å¨çæ åä¾è¡ç¨åºãä¾å¦ï¼Servlet å¯ä»¥ä¿®æ¹å¦ä½è®¤è¯ç¨æ·ã
2ï¼ä»ä¹æ¯Servletççå½å¨æ
Servletççå½å¨æå§äºå°å®è£
å
¥ Web æå¡å¨çå
åæ¶ï¼å¹¶å¨ç»æ¢æéæ°è£
å
¥ Servlet æ¶ç»æã
(1) åå§å
å¨ä¸åæ¶å»è£
å
¥ Servletï¼
âå¦æå·²é
ç½®èªå¨è£
å
¥é项ï¼åå¨å¯å¨æå¡å¨æ¶èªå¨è£
å
¥
âå¨æå¡å¨å¯å¨åï¼å®¢æ·æºé¦æ¬¡å Servlet ååºè¯·æ±æ¶
âéæ°è£
å
¥ Servlet æ¶è£
å
¥ Servlet åï¼æå¡å¨å建ä¸ä¸ª Servlet å®ä¾å¹¶ä¸è°ç¨ Servlet ç init() æ¹æ³ãå¨åå§åé¶æ®µï¼Servlet åå§ååæ°è¢«ä¼ éç» Servlet é
置对象ã
(2) 请æ±å¤ç
对äºå°è¾¾æå¡å¨ç客æ·æºè¯·æ±ï¼æå¡å¨å建ç¹å®äºè¯·æ±çä¸ä¸ªâ请æ±â对象åä¸ä¸ªâååºâ对象ãæå¡å¨è°ç¨ Servlet ç service() æ¹æ³ï¼è¯¥æ¹æ³ç¨äºä¼ éâ请æ±âåâååºâ对象ãservice() æ¹æ³ä»â请æ±â对象è·å¾è¯·æ±ä¿¡æ¯ãå¤ç该请æ±å¹¶ç¨âååºâ对象çæ¹æ³ä»¥å°ååºä¼ å客æ·æºãservice() æ¹æ³å¯ä»¥è°ç¨å
¶å®æ¹æ³æ¥å¤ç请æ±ï¼ä¾å¦ doGet()ãdoPost() æå
¶å®çæ¹æ³ã
(3) ç»æ¢
å½æå¡å¨ä¸åéè¦ Servlet, æéæ°è£
å
¥ Servlet çæ°å®ä¾æ¶ï¼æå¡å¨ä¼è°ç¨ Servlet ç destroy() æ¹æ³ã
3. ä»ä¹æ¯Servlet API
Java Servlet å¼åå·¥å
·ï¼JSDKï¼æä¾äºå¤ä¸ªè½¯ä»¶å
ï¼å¨ç¼å Servlet æ¶éè¦ç¨å°è¿äºè½¯ä»¶å
ãå
¶ä¸å
æ¬ä¸¤ä¸ªç¨äºææ Servlet çåºæ¬è½¯ä»¶å
ï¼javax.Servlet å javax.Servlet.httpãå¯ä»sunå
¬å¸çWebç«ç¹ä¸è½½ Java Servlet å¼åå·¥å
·ã ä¸é¢ä¸»è¦ä»ç»javax.Servlet.httpæä¾çHTTP Servletåºç¨ç¼ç¨æ¥å£ã
HTTP Servlet 使ç¨ä¸ä¸ª HTML è¡¨æ ¼æ¥åéåæ¥æ¶æ°æ®ãè¦å建ä¸ä¸ª HTTP Servletï¼è¯·æ©å± HttpServlet ç±»ï¼è¯¥ç±»æ¯ç¨ä¸é¨çæ¹æ³æ¥å¤ç HTML è¡¨æ ¼ç GenericServlet çä¸ä¸ªåç±»ã HTML 表åæ¯ç±
å æ è®°å®ä¹çã表åä¸å
¸åå°å
å«è¾å
¥å段ï¼å¦ææ¬è¾å
¥å段ãå¤éæ¡ãåéæé®åéæ©å表ï¼åç¨äºæ交æ°æ®çæé®ãå½æ交信æ¯æ¶ï¼å®ä»¬è¿æå®æå¡å¨åºæ§è¡åªä¸ä¸ªServletï¼æå
¶å®çç¨åºï¼ã HttpServlet ç±»å
å« init()ãdestroy()ãservice() çæ¹æ³ãå
¶ä¸ init() å destroy() æ¹æ³æ¯ç»§æ¿çã
(1)Servlet APIä¹init() æ¹æ³
å¨ Servlet ççå½æä¸ï¼ä»
æ§è¡ä¸æ¬¡ init() æ¹æ³ãå®æ¯å¨æå¡å¨è£
å
¥ Servlet æ¶æ§è¡çã å¯ä»¥é
ç½®æå¡å¨ï¼ä»¥å¨å¯å¨æå¡å¨æ客æ·æºé¦æ¬¡è®¿é® Servlet æ¶è£
å
¥ Servletã æ 论æå¤å°å®¢æ·æºè®¿é® Servletï¼é½ä¸ä¼éå¤æ§è¡ init() ã
缺çç init() æ¹æ³é常æ¯ç¬¦åè¦æ±çï¼ä½ä¹å¯ä»¥ç¨å®å¶ init() æ¹æ³æ¥è¦çå®ï¼å
¸åçæ¯ç®¡çæå¡å¨ç«¯èµæºã ä¾å¦ï¼å¯è½ç¼åä¸ä¸ªå®å¶ init() æ¥åªç¨äºä¸æ¬¡è£
å
¥ GIF å¾åï¼æ¹è¿ Servlet è¿å GIF å¾ååå«æå¤ä¸ªå®¢æ·æºè¯·æ±çæ§è½ãå¦ä¸ä¸ªç¤ºä¾æ¯åå§åæ°æ®åºè¿æ¥ã缺çç init() æ¹æ³è®¾ç½®äº Servlet çåå§ååæ°ï¼å¹¶ç¨å®ç ServletConfig 对象åæ°æ¥å¯å¨é
ç½®ï¼ å æ¤ææè¦ç init() æ¹æ³ç Servlet åºè°ç¨ super.init() 以确ä¿ä»ç¶æ§è¡è¿äºä»»å¡ãå¨è°ç¨ service() æ¹æ³ä¹åï¼åºç¡®ä¿å·²å®æäº init() æ¹æ³ã
(2) Servlet APIä¹service() æ¹æ³
service() æ¹æ³æ¯ Servlet çæ ¸å¿ãæ¯å½ä¸ä¸ªå®¢æ·è¯·æ±ä¸ä¸ªHttpServlet 对象ï¼è¯¥å¯¹è±¡çservice() æ¹æ³å°±è¦è¢«è°ç¨ï¼èä¸ä¼ éç»è¿ä¸ªæ¹æ³ä¸ä¸ªâ请æ±âï¼ServletRequestï¼å¯¹è±¡åä¸ä¸ªâååºâï¼ServletResponseï¼å¯¹è±¡ä½ä¸ºåæ°ã å¨ HttpServlet ä¸å·²åå¨ service() æ¹æ³ã缺ççæå¡åè½æ¯è°ç¨ä¸ HTTP 请æ±çæ¹æ³ç¸åºç do åè½ãä¾å¦ï¼ å¦æ HTTP 请æ±æ¹æ³ä¸º GETï¼å缺çæ
åµä¸å°±è°ç¨ doGet() ãServlet åºè¯¥ä¸º Servlet æ¯æç HTTP æ¹æ³è¦ç do åè½ãå 为 HttpServlet.service() æ¹æ³ä¼æ£æ¥è¯·æ±æ¹æ³æ¯å¦è°ç¨äºéå½çå¤çæ¹æ³ï¼ä¸å¿
è¦è¦ç service() æ¹æ³ãåªéè¦çç¸åºç do æ¹æ³å°±å¯ä»¥äºã
âå½ä¸ä¸ªå®¢æ·éè¿HTML 表åååºä¸ä¸ªHTTP POST请æ±æ¶ï¼doPostï¼ï¼æ¹æ³è¢«è°ç¨ãä¸POST请æ±ç¸å
³çåæ°ä½ä¸ºä¸ä¸ªåç¬çHTTP 请æ±ä»æµè§å¨åéå°æå¡å¨ãå½éè¦ä¿®æ¹æå¡å¨ç«¯çæ°æ®æ¶ï¼åºè¯¥ä½¿ç¨doPost()æ¹æ³ã
âå½ä¸ä¸ªå®¢æ·éè¿HTML 表åååºä¸ä¸ªHTTP GET请æ±æç´æ¥è¯·æ±ä¸ä¸ªURLæ¶ï¼doGet()æ¹æ³è¢«è°ç¨ãä¸GET请æ±ç¸å
³çåæ°æ·»å å°URLçåé¢ï¼å¹¶ä¸è¿ä¸ªè¯·æ±ä¸èµ·åéãå½ä¸ä¼ä¿®æ¹æå¡å¨ç«¯çæ°æ®æ¶ï¼åºè¯¥ä½¿ç¨doGet()æ¹æ³ã
Servletçååºå¯ä»¥æ¯ä¸åå ç§ç±»åï¼
âä¸ä¸ªè¾åºæµï¼æµè§å¨æ ¹æ®å®çå
容类åï¼å¦text/HTMLï¼è¿è¡è§£éã
âä¸ä¸ªHTTPé误ååº, éå®åå°å¦ä¸ä¸ªURLãServletãJSPã
(3)Servlet APIä¹destroy() æ¹æ³
destroy() æ¹æ³ä»
æ§è¡ä¸æ¬¡ï¼å³å¨æå¡å¨åæ¢ä¸å¸è£
Servlet æ¶æ§è¡è¯¥æ¹æ³ãå
¸åçï¼å° Servlet ä½ä¸ºæå¡å¨è¿ç¨çä¸é¨åæ¥å
³éã缺çç destroy() æ¹æ³é常æ¯ç¬¦åè¦æ±çï¼ä½ä¹å¯ä»¥è¦çå®ï¼å
¸åçæ¯ç®¡çæå¡å¨ç«¯èµæºãä¾å¦ï¼å¦æ Servlet å¨è¿è¡æ¶ä¼ç´¯è®¡ç»è®¡æ°æ®ï¼åå¯ä»¥ç¼åä¸ä¸ª destroy() æ¹æ³ï¼è¯¥æ¹æ³ç¨äºå¨æªè£
å
¥ Servlet æ¶å°ç»è®¡æ°åä¿åå¨æ件ä¸ãå¦ä¸ä¸ªç¤ºä¾æ¯å
³éæ°æ®åºè¿æ¥ã
å½æå¡å¨å¸è£
Servlet æ¶ï¼å°å¨ææ service() æ¹æ³è°ç¨å®æåï¼æå¨æå®çæ¶é´é´éè¿åè°ç¨ destroy() æ¹æ³ãä¸ä¸ªServlet å¨è¿è¡service() æ¹æ³æ¶å¯è½ä¼äº§çå
¶å®ç线ç¨ï¼å æ¤è¯·ç¡®è®¤å¨è°ç¨ destroy() æ¹æ³æ¶ï¼è¿äºçº¿ç¨å·²ç»æ¢æå®æã
(4)Servlet APIä¹GetServletConfigï¼ï¼æ¹æ³
GetServletConfigï¼ï¼æ¹æ³è¿åä¸ä¸ª ServletConfig 对象ï¼è¯¥å¯¹è±¡ç¨æ¥è¿ååå§ååæ°åServletContextãServletContext æ¥å£æä¾æå
³Servlet çç¯å¢ä¿¡æ¯ã
(5)Servlet APIä¹GetServletInfoï¼ï¼æ¹æ³
GetServletInfoï¼ï¼æ¹æ³æ¯ä¸ä¸ªå¯éçæ¹æ³ï¼å®æä¾æå
³Servlet çä¿¡æ¯ï¼å¦ä½è
ãçæ¬ãçæã
å½æå¡å¨è°ç¨sevlet çServiceï¼ï¼ãdoGetï¼ï¼ådoPostï¼ï¼è¿ä¸ä¸ªæ¹æ³æ¶ï¼åéè¦ â请æ±âåâååºâ对象ä½ä¸ºåæ°ãâ请æ±â对象æä¾æå
³è¯·æ±çä¿¡æ¯ï¼èâååºâ对象æä¾äºä¸ä¸ªå°ååºä¿¡æ¯è¿åç»æµè§å¨çä¸ä¸ªéä¿¡éå¾ãjavax.Servlet 软件å
ä¸çç¸å
³ç±»ä¸ºServletResponseåServletRequestï¼èjavax.Servlet.http 软件å
ä¸çç¸å
³ç±»ä¸ºHttpServletRequest å HttpServletResponseãServlet éè¿è¿äºå¯¹è±¡ä¸æå¡å¨é信并æç»ä¸å®¢æ·æºéä¿¡ãServlet è½éè¿è°ç¨â请æ±â对象çæ¹æ³è·ç¥å®¢æ·æºç¯å¢ï¼æå¡å¨ç¯å¢çä¿¡æ¯åææç±å®¢æ·æºæä¾çä¿¡æ¯ãServlet å¯ä»¥è°ç¨âååºâ对象çæ¹æ³åéååºï¼è¯¥ååºæ¯åå¤åå客æ·æºçã
以ä¸å°±æ¯ä»ä¹æ¯Servletï¼ä»¥ååºæ¬å¸¸ç¨Servlet APIæ¹æ³æåªäºï¼å¸æéè¿ä»ç»å¯¹æ¤ä½ ææäºè§£ã
温馨提示:答案为网友推荐,仅供参考