# JSP å Servlet
## Servletæ¥å£ä¸æåªäºæ¹æ³ï¼
Servletæ¥å£å®ä¹äº5ä¸ªæ¹æ³ï¼å
¶ä¸åä¸ä¸ªæ¹æ³ä¸Servletçå½å¨æç¸å
³ï¼
- void init(ServletConfig config) throws ServletException
- void service(ServletRequest req, ServletResponse resp) throws ServletException, java.io.IOException
- void destory()
- java.lang.String getServletInfo()
- ServletConfig getServletConfig()
Web容å¨å è½½Servletå¹¶å°å
¶å®ä¾ååï¼Servletçå½å¨æå¼å§ï¼å®¹å¨è¿è¡å
¶init()æ¹æ³è¿è¡Servletçåå§åï¼è¯·æ±å°è¾¾æ¶è°ç¨Servletçservice()æ¹æ³ï¼service()æ¹æ³ä¼æ ¹æ®éè¦è°ç¨ä¸è¯·æ±å¯¹åºçdoGetædoPostçæ¹æ³ï¼å½æå¡å¨å
³éæé¡¹ç®è¢«å¸è½½æ¶æå¡å¨ä¼å°Servletå®ä¾éæ¯ï¼æ¤æ¶ä¼è°ç¨Servletçdestroy()æ¹æ³ã
## 转åï¼forwardï¼åéå®åï¼redirectï¼çåºå«ï¼
forwardæ¯å®¹å¨ä¸æ§å¶æç转åï¼æ¯æå¡å¨è¯·æ±èµæºï¼æå¡å¨ç´æ¥è®¿é®ç®æ å°åçURLï¼æé£ä¸ªURL çååºå
容读åè¿æ¥ï¼ç¶åæè¿äºå
容ååç»æµè§å¨ï¼æµè§å¨æ ¹æ¬ä¸ç¥éæå¡å¨åéçå
容æ¯ä»åªå¿æ¥çï¼æä»¥å®çå°åæ ä¸è¿æ¯åæ¥çå°åã
redirectå°±æ¯æå¡å¨ç«¯æ ¹æ®é»è¾ï¼åéä¸ä¸ªç¶æç ï¼åè¯æµè§å¨éæ°å»è¯·æ±é£ä¸ªå°åï¼å æ¤ä»æµè§å¨çå°åæ ä¸å¯ä»¥çå°è·³è½¬åç龿¥å°åï¼å¾ææ¾redirectæ æ³è®¿é®å°æå¡å¨ä¿æ¤èµ·æ¥èµæºï¼ä½æ¯å¯ä»¥ä»ä¸ä¸ªç½ç«redirectå°å
¶ä»ç½ç«ã
forwardæ´å é«æï¼æä»¥å¨æ»¡è¶³éè¦æ¶å°½é使ç¨forwardï¼éè¿è°ç¨RequestDispatcher对象çforward()æ¹æ³ï¼è¯¥å¯¹è±¡å¯ä»¥éè¿ServletRequest对象çgetRequestDispatcher()æ¹æ³è·å¾ï¼ï¼å¹¶ä¸è¿æ ·ä¹æå©äºéèå®é
ç龿¥ï¼å¨æäºæ
åµä¸ï¼æ¯å¦éè¦è®¿é®ä¸ä¸ªå
¶å®æå¡å¨ä¸çèµæºï¼åå¿
须使ç¨éå®åï¼éè¿HttpServletResponse对象è°ç¨å
¶sendRedirect()æ¹æ³å®ç°ï¼ã
## JSPæåªäºå
置对象ï¼ä½ç¨å嫿¯ä»ä¹ï¼
JSPæ9个å
置对象ï¼
- requestï¼å°è£
客æ·ç«¯ç请æ±ï¼å
¶ä¸å
嫿¥èªGETæPOST请æ±çåæ°ï¼
- responseï¼å°è£
æå¡å¨å¯¹å®¢æ·ç«¯çååºï¼
- pageContextï¼éè¿è¯¥å¯¹è±¡å¯ä»¥è·åå
¶ä»å¯¹è±¡ï¼
- sessionï¼å°è£
ç¨æ·ä¼è¯ç对象ï¼
- applicationï¼å°è£
æå¡å¨è¿è¡ç¯å¢ç对象ï¼
- outï¼è¾åºæå¡å¨ååºçè¾åºæµå¯¹è±¡ï¼
- configï¼Webåºç¨çé
置对象ï¼
- pageï¼JSP页颿¬èº«ï¼ç¸å½äºJavaç¨åºä¸çthisï¼ï¼
- exceptionï¼å°è£
页颿åºå¼å¸¸ç对象ã
## JSPåServletæ¯ä»ä¹å
³ç³»ï¼
ervletæ¯ä¸ä¸ªç¹æ®çJavaç¨åºï¼å®è¿è¡äºæå¡å¨çJVMä¸ï¼è½å¤ä¾é æå¡å¨çæ¯æåæµè§å¨æä¾æ¾ç¤ºå
容ãJSPæ¬è´¨ä¸æ¯Servletçä¸ç§ç®æå½¢å¼ï¼JSPä¼è¢«æå¡å¨å¤çæä¸ä¸ªç±»ä¼¼äºServletçJavaç¨åºï¼å¯ä»¥ç®å页é¢å
容ççæãServletåJSPæä¸»è¦çä¸åç¹å¨äºï¼Servletçåºç¨é»è¾æ¯å¨Javaæä»¶ä¸ï¼å¹¶ä¸å®å
¨ä»è¡¨ç¤ºå±ä¸çHTMLåç¦»å¼æ¥ãèJSPçæ
嵿¯JavaåHTMLå¯ä»¥ç»åæä¸ä¸ªæ©å±å为.jspçæä»¶ãæäººè¯´ï¼Servletå°±æ¯å¨Javaä¸åHTMLï¼èJSPå°±æ¯å¨HTMLä¸åJava代ç ï¼å½ç¶è¿ä¸ªè¯´æ³æ¯å¾çé¢ä¸ä¸å¤åç¡®çãJSPä¾§éäºè§å¾ï¼Servletæ´ä¾§éäºæ§å¶é»è¾ï¼å¨MVCæ¶ææ¨¡å¼ä¸ï¼JSPéåå
å½è§å¾ï¼viewï¼èServletéåå
彿§å¶å¨ï¼controllerï¼ã
## 讲解JSPä¸çåç§ä½ç¨åã
çï¼JSPä¸çåç§ä½ç¨åå
æ¬pageãrequestãsessionåapplicationï¼å
·ä½æ¥è¯´ï¼
- page代表ä¸ä¸ä¸ªé¡µé¢ç¸å
³ç对象å屿§ã
- request代表ä¸Webå®¢æ·æºååºçä¸ä¸ªè¯·æ±ç¸å
³ç对象å屿§ãä¸ä¸ªè¯·æ±å¯è½è·¨è¶å¤ä¸ªé¡µé¢ï¼æ¶åå¤ä¸ªWebç»ä»¶ï¼éè¦å¨é¡µé¢æ¾ç¤ºçä¸´æ¶æ°æ®å¯ä»¥ç½®äºæ¤ä½ç¨åã
- sessionä»£è¡¨ä¸æä¸ªç¨æ·ä¸æå¡å¨å»ºç«ç䏿¬¡ä¼è¯ç¸å
³ç对象å屿§ãè·æä¸ªç¨æ·ç¸å
³çæ°æ®åºè¯¥æ¾å¨ç¨æ·èªå·±çsessionä¸ã
- applicationä»£è¡¨ä¸æ´ä¸ªWebåºç¨ç¨åºç¸å
³ç对象å屿§ï¼å®å®è´¨ä¸æ¯è·¨è¶æ´ä¸ªWebåºç¨ç¨åºï¼å
æ¬å¤ä¸ªé¡µé¢ã请æ±åä¼è¯çä¸ä¸ªå
¨å±ä½ç¨åã
## å®ç°ä¼è¯è·è¸ªçææ¯æåªäºï¼
ç±äºHTTPåè®®æ¬èº«æ¯æ ç¶æçï¼æå¡å¨ä¸ºäºåºåä¸åçç¨æ·ï¼å°±éè¦å¯¹ç¨æ·ä¼è¯è¿è¡è·è¸ªï¼ç®åç说就æ¯ä¸ºç¨æ·è¿è¡ç»è®°ï¼ä¸ºç¨æ·åé
å¯ä¸çIDï¼ä¸ä¸æ¬¡ç¨æ·å¨è¯·æ±ä¸å
嫿¤IDï¼æå¡å¨æ®æ¤å¤æå°åºæ¯åªä¸ä¸ªç¨æ·ã
1ï¼URL éåï¼å¨URL䏿·»å ç¨æ·ä¼è¯çä¿¡æ¯ä½ä¸ºè¯·æ±çåæ°ï¼æè
å°å¯ä¸çä¼è¯IDæ·»å å°URLç»å°¾ä»¥æ è¯ä¸ä¸ªä¼è¯ã
2ï¼ è®¾ç½®è¡¨åéèåï¼å°åä¼è¯è·è¸ªç¸å
³çåæ®µæ·»å å°éå¼è¡¨ååä¸ï¼è¿äºä¿¡æ¯ä¸ä¼å¨æµè§å¨ä¸æ¾ç¤ºä½æ¯æäº¤è¡¨åæ¶ä¼æäº¤ç»æå¡å¨ã
è¿ä¸¤ç§æ¹å¼å¾é¾å¤çè·¨è¶å¤ä¸ªé¡µé¢çä¿¡æ¯ä¼ éï¼å ä¸ºå¦ææ¯æ¬¡é½è¦ä¿®æ¹URLæå¨é¡µé¢ä¸æ·»å éå¼è¡¨å忥åå¨ç¨æ·ä¼è¯ç¸å
³ä¿¡æ¯ï¼äºæ
å°åå¾é常麻ç¦ã
3ï¼cookieï¼cookieæä¸¤ç§ï¼ä¸ç§æ¯åºäºçªå£çï¼æµè§å¨çªå£å
³éåï¼cookie就没æäºï¼å¦ä¸ç§æ¯å°ä¿¡æ¯åå¨å¨ä¸ä¸ªä¸´æ¶æä»¶ä¸ï¼å¹¶è®¾ç½®åå¨çæ¶é´ãå½ç¨æ·éè¿æµè§å¨åæå¡å¨å»ºç«ä¸æ¬¡ä¼è¯åï¼ä¼è¯IDå°±ä¼éååºä¿¡æ¯è¿ååå¨å¨åºäºçªå£çcookieä¸ï¼é£å°±æå³çåªè¦æµè§å¨æ²¡æå
³éï¼ä¼è¯æ²¡æè¶
æ¶ï¼ä¸ä¸æ¬¡è¯·æ±æ¶è¿ä¸ªä¼è¯IDåä¼æäº¤ç»æå¡å¨è®©æå¡å¨è¯å«ç¨æ·èº«ä»½ãä¼è¯ä¸å¯ä»¥ä¸ºç¨æ·ä¿åä¿¡æ¯ãä¼è¯å¯¹è±¡æ¯å¨æå¡å¨å
åä¸çï¼èåºäºçªå£çcookieæ¯å¨å®¢æ·ç«¯å
åä¸çã妿æµè§å¨ç¦ç¨äºcookieï¼é£ä¹å°±éè¦éè¿ä¸é¢ä¸¤ç§æ¹å¼è¿è¡ä¼è¯è·è¸ªãå½ç¶ï¼å¨ä½¿ç¨cookieæ¶è¦æ³¨æå ç¹ï¼é¦å
ä¸è¦å¨cookieä¸åæ¾ææä¿¡æ¯ï¼å
¶æ¬¡cookieåå¨çæ°æ®éæéï¼4kï¼ï¼ä¸è½å°è¿å¤çå
容åå¨cookieä¸ï¼åè
æµè§å¨é常åªå
许ä¸ä¸ªç«ç¹æå¤åæ¾20个cookieãå½ç¶ï¼åç¨æ·ä¼è¯ç¸å
³çå
¶ä»ä¿¡æ¯ï¼é¤äºä¼è¯IDï¼ä¹å¯ä»¥åå¨cookieæ¹ä¾¿è¿è¡ä¼è¯è·è¸ªã
4ï¼HttpSessionï¼å¨ææä¼è¯è·è¸ªææ¯ä¸ï¼HttpSessionå¯¹è±¡æ¯æå¼ºå¤§ä¹æ¯åè½æå¤çãå½ä¸ä¸ªç¨æ·ç¬¬ä¸æ¬¡è®¿é®æä¸ªç½ç«æ¶ä¼èªå¨å建HttpSessionï¼æ¯ä¸ªç¨æ·å¯ä»¥è®¿é®ä»èªå·±çHttpSessionãå¯ä»¥éè¿HttpServletRequest对象çgetSessionæ¹æ³è·å¾HttpSessionï¼éè¿HttpSessionçsetAttributeæ¹æ³å¯ä»¥å°ä¸ä¸ªå¼æ¾å¨HttpSessionä¸ï¼éè¿è°ç¨HttpSession对象çgetAttributeæ¹æ³ï¼åæ¶ä¼ å
¥å±æ§åå°±å¯ä»¥è·åä¿åå¨HttpSessionä¸ç对象ãä¸ä¸é¢ä¸ç§æ¹å¼ä¸åçæ¯ï¼HttpSessionæ¾å¨æå¡å¨çå
åä¸ï¼å æ¤ä¸è¦å°è¿å¤§ç对象æ¾å¨éé¢ï¼å³ä½¿ç®åçServlet容å¨å¯ä»¥å¨å
åå°æ»¡æ¶å°HttpSessionä¸ç对象移å°å
¶ä»åå¨è®¾å¤ä¸ï¼ä½æ¯è¿æ ·å¿å¿
影忧è½ãæ·»å å°HttpSessionä¸çå¼å¯ä»¥æ¯ä»»æJava对象ï¼è¿ä¸ªå¯¹è±¡æå¥½å®ç°äºSerializableæ¥å£ï¼è¿æ ·Servlet容å¨å¨å¿
è¦çæ¶åå¯ä»¥å°å
¶åºååå°æä»¶ä¸ï¼å¦åå¨åºååæ¶å°±ä¼åºç°å¼å¸¸ã
## è¿æ»¤å¨æåªäºä½ç¨åç¨æ³ï¼
Java Webå¼åä¸çè¿æ»¤å¨ï¼filterï¼æ¯ä»Servlet 2.3è§èå¼å§å¢å çåè½ï¼å¹¶å¨Servlet 2.4è§èä¸å¾å°å¢å¼ºã对Webåºç¨æ¥è¯´ï¼è¿æ»¤å¨æ¯ä¸ä¸ªé©»ç卿å¡å¨ç«¯çWebç»ä»¶ï¼å®å¯ä»¥æªå客æ·ç«¯åæå¡å¨ä¹é´ç请æ±ä¸ååºä¿¡æ¯ï¼å¹¶å¯¹è¿äºä¿¡æ¯è¿è¡è¿æ»¤ãå½Web容卿¥åå°ä¸ä¸ªå¯¹èµæºçè¯·æ±æ¶ï¼å®å°å¤ææ¯å¦æè¿æ»¤å¨ä¸è¿ä¸ªèµæºç¸å
³èã妿æï¼é£ä¹å®¹å¨å°æè¯·æ±äº¤ç»è¿æ»¤å¨è¿è¡å¤çãå¨è¿æ»¤å¨ä¸ï¼ä½ å¯ä»¥æ¹å请æ±çå
å®¹ï¼æè
éæ°è®¾ç½®è¯·æ±çæ¥å¤´ä¿¡æ¯ï¼ç¶ååå°è¯·æ±åéç»ç®æ èµæºãå½ç®æ èµæºå¯¹è¯·æ±ä½åºååºæ¶åï¼å®¹å¨åæ ·ä¼å°ååºå
转åç»è¿æ»¤å¨ï¼å¨è¿æ»¤å¨ä¸ä½ å¯ä»¥å¯¹ååºçå
容è¿è¡è½¬æ¢ï¼ç¶ååå°ååºåéå°å®¢æ·ç«¯ã
常è§çè¿æ»¤å¨ç¨é主è¦å
æ¬ï¼å¯¹ç¨æ·è¯·æ±è¿è¡ç»ä¸è®¤è¯ãå¯¹ç¨æ·ç访é®è¯·æ±è¿è¡è®°å½åå®¡æ ¸ãå¯¹ç¨æ·åéçæ°æ®è¿è¡è¿æ»¤ææ¿æ¢ã转æ¢å¾è±¡æ ¼å¼ã对ååºå
容è¿è¡å缩以åå°ä¼ è¾éãå¯¹è¯·æ±æååºè¿è¡å è§£å¯å¤çã触åèµæºè®¿é®äºä»¶ã对XMLçè¾åºåºç¨XSLTçã
è¿æ»¤å¨ç¸å
³çæ¥å£ä¸»è¦æï¼FilterãFilterConfigåFilterChainã
## çå¬å¨æåªäºä½ç¨åç¨æ³ï¼
Java Webå¼åä¸ççå¬å¨ï¼listenerï¼å°±æ¯applicationãsessionãrequestä¸ä¸ªå¯¹è±¡å建ã鿝æè
å¾å
¶ä¸æ·»å ä¿®æ¹å é¤å±æ§æ¶èªå¨æ§è¡ä»£ç çåè½ç»ä»¶ï¼å¦ä¸æç¤ºï¼
- ServletContextListenerï¼å¯¹Servletä¸ä¸æçå建å鿝è¿è¡çå¬ã
- ervletContextAttributeListenerï¼çå¬Servletä¸ä¸æå±æ§çæ·»å ãå é¤åæ¿æ¢ã
- HttpSessionAttributeListenerï¼å¯¹Session对象ä¸å±æ§çæ·»å ãå é¤åæ¿æ¢è¿è¡çå¬ã
- ServletRequestListenerï¼å¯¹è¯·æ±å¯¹è±¡çåå§åå鿝è¿è¡çå¬ã
- ServletRequestAttributeListenerï¼å¯¹è¯·æ±å¯¹è±¡å±æ§çæ·»å ãå é¤åæ¿æ¢è¿è¡çå¬ã
- HttpSessionListenerï¼å¯¹Sessionçå建å鿝è¿è¡çå¬ã
è¡¥å
ï¼ sessionç鿝æä¸¤ç§æ
åµï¼
- sessionè¶
æ¶ï¼å¯ä»¥å¨web.xmlä¸éè¿`