## Servlet
* [1.Servletççå½å¨æï¼](#1servletççå½å¨æ)
* [2.ServletåJSPçåºå«ï¼](#2servletåjspçåºå«)
* [3.Servletçåºæ¬æ¶æ](#3servletçåºæ¬æ¶æ)
* [4.ä»ä¹æ
åµä¸è°ç¨doGet()ådoPost()ï¼](#4ä»ä¹æ
åµä¸è°ç¨dogetådopost)
* [5.页é¢é´å¯¹è±¡ä¼ éçæ¹æ³](#5页é¢é´å¯¹è±¡ä¼ éçæ¹æ³)
* [6.åç§ä¼è¯è·è¸ªææ¯](#6åç§ä¼è¯è·è¸ªææ¯)
* [7.Request对象çä¸»è¦æ¹æ³](#7request对象çä¸»è¦æ¹æ³)
* [8.å¦ä½é
ç½®Servletçåå§ååæ°ï¼](#8å¦ä½é
ç½®servletçåå§ååæ°)
* [9.å¦ä½è¯»åServletçåå§ååæ°ï¼](#9å¦ä½è¯»åservletçåå§ååæ°)
* [10.init(ServletConfig)æ¹æ³æ§è¡æ¬¡æ°](#10initservletconfigæ¹æ³æ§è¡æ¬¡æ°)
* [11.init(ServletConfig)æ¹æ³ä¸å¼å¸¸](#11initservletconfigæ¹æ³ä¸å¼å¸¸)
* [åè龿¥](#åè龿¥)
#### 1.Servletççå½å¨æï¼
---æ ¹æ®Servletçé
ç½®åæ°1æ¥å³å®å®ä¾åæ¶æºï¼æ²¡æé
ç½®è¯¥åæ°é¡¹æè
ä¸ºè´æ°ï¼åç¬¬ä¸æ¬¡è®¿é®çæ¶åæä¼è¢«å®ä¾åå¹¶è°ç¨init () 彿°ï¼å¦æä¸º0æè
æ£æ´æ°ï¼åæå¡å¨å¯å¨çæ¶åå°±ä¼è¢«å è½½ï¼å 载顺åºç±å°å°è¾¾ãServlet éè¿è°ç¨ init () æ¹æ³è¿è¡åå§åã
---客æ·ç«¯è¯·æ±å°è¾¾åï¼Servlet è°ç¨ service() æ¹æ³æ¥å¤ç客æ·ç«¯ç请æ±ã
---æå¡å¨å
³éï¼æè
Servleté¿æ¶é´æ²¡æä½¿ç¨ï¼Servlet éè¿è°ç¨ destroy() æ¹æ³ç»æ¢ï¼ç»æï¼ã
---æåï¼Servlet æ¯ç± JVM çåå¾åæ¶å¨è¿è¡åå¾åæ¶çã
#### 2.ServletåJSPçåºå«ï¼
Servletæ¯æå¡å¨ç«¯çç¨åºï¼å¨æçæhtml页é¢åéå°å®¢æ·ç«¯ï¼ä½æ¯è¿æ ·ç¨åºé伿å¾å¤out.println(),javaä¸htmlè¯è¨æ··å¨ä¸èµ·å¾ä¹±ï¼é æç¼åé»è¾æ§å¶çåå°å·¥ç¨å¸å设计å端ç½é¡µçå端工ç¨å¸å½¼æ¤å¾é¾ç¬ç«å¼å±å·¥ä½ï¼æä»¥åæ¥sunå
¬å¸æ¨åºäºJSPï¼å
¶å®JSPå°±æ¯Servletï¼æ¯æ¬¡è¿è¡çæ¶åJSPé½é¦å
被ç¼è¯æservletæä»¶ï¼ç¶åå被ç¼è¯æ.classæä»¶è¿è¡ãæäºjspï¼å¨MVC项ç®ä¸servletä¸åè´è´£å¨æçæé¡µé¢ï¼è½¬èå»è´è´£æ§å¶ç¨åºé»è¾çä½ç¨ï¼æ§å¶jspä¸javabeanä¹é´çæµè½¬ãå
¶å®å¯¹jsp乿å°è£
çæ¨¡æ¿å·¥å
·velocityåfreemarkerã
#### 3.Servletçåºæ¬æ¶æ
```
public class ServletName extends HttpServlet {
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException  {
      }
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws
      ServletException, IOException  {
      }
}
```
#### 4.ä»ä¹æ
åµä¸è°ç¨doGet()ådoPost()ï¼
JSP页é¢ä¸çformæ ç¾éçmethod屿§ä¸ºgetæ¶è°ç¨doGet()ï¼ä¸ºpostæ¶è°ç¨doPost()ï¼è¶
龿¥è·³è½¬é¡µé¢æ¶è°ç¨doGet()
#### 5.页é¢é´å¯¹è±¡ä¼ éçæ¹æ³
requestï¼sessionï¼applicationï¼cookieç
#### 6.åç§ä¼è¯è·è¸ªææ¯
ä¼è¯ä½ç¨åServletsJSP é¡µé¢æè¿°
1ï¼page妿¯ä»£è¡¨ä¸ä¸ä¸ªé¡µé¢ç¸å
³ç对象å屿§ãä¸ä¸ªé¡µé¢ç±ä¸ä¸ªç¼è¯å¥½ç Java servlet ç±»ï¼å¯ä»¥å¸¦æä»»ä½ç include æä»¤ï¼ä½æ¯æ²¡æ include å¨ä½ï¼è¡¨ç¤ºãè¿æ¢å
æ¬ servlet åå
æ¬è¢«ç¼è¯æ servlet ç JSP 页é¢
2ï¼requestæ¯æ¯ä»£è¡¨ä¸ Web å®¢æ·æºååºçä¸ä¸ªè¯·æ±ç¸å
³ç对象å屿§ãä¸ä¸ªè¯·æ±å¯è½è·¨è¶å¤ä¸ªé¡µé¢ï¼æ¶åå¤ä¸ª Web ç»ä»¶ï¼ç±äº forward æä»¤å include å¨ä½çå
³ç³»ï¼
3ï¼sessionæ¯æ¯ä»£è¡¨ä¸ç¨äºæä¸ª Web å®¢æ·æºçä¸ä¸ªç¨æ·ä½éªç¸å
³ç对象å屿§ãä¸ä¸ª Web ä¼è¯å¯ä»¥ä¹ç»å¸¸ä¼è·¨è¶å¤ä¸ªå®¢æ·æºè¯·æ±
4ï¼applicationæ¯æ¯ä»£è¡¨ä¸æ´ä¸ª Web åºç¨ç¨åºç¸å
³ç对象å屿§ãè¿å®è´¨ä¸æ¯è·¨è¶æ´ä¸ª Web åºç¨ç¨åºï¼å
æ¬å¤ä¸ªé¡µé¢ã请æ±åä¼è¯çä¸ä¸ªå
¨å±ä½ç¨å
#### 7.Request对象çä¸»è¦æ¹æ³
setAttribute(String name,Object)ï¼è®¾ç½®åå为nameçrequestçåæ°å¼
getAttribute(String name)ï¼è¿åç±nameæå®ç屿§å¼
getAttributeNames()ï¼è¿årequest对象ææå±æ§çååéåï¼ç»ææ¯ä¸ä¸ªæä¸¾çå®ä¾
getCookies()ï¼è¿å客æ·ç«¯çææCookie对象ï¼ç»ææ¯ä¸ä¸ªCookieæ°ç»
getCharacterEncoding()ï¼è¿å请æ±ä¸çå符ç¼ç æ¹å¼
getContentLength()ï¼è¿å请æ±çBodyçé¿åº¦
getHeader(String name)ï¼è·å¾HTTPåè®®å®ä¹çæä»¶å¤´ä¿¡æ¯
getHeaders(String name)ï¼è¿åæå®ååçrequest Headerçææå¼ï¼ç»ææ¯ä¸ä¸ªæä¸¾çå®ä¾
getHeaderNames()ï¼è¿åæä»¥request Headerçååï¼ç»ææ¯ä¸ä¸ªæä¸¾çå®ä¾
getInputStream()ï¼è¿å请æ±çè¾å
¥æµï¼ç¨äºè·å¾è¯·æ±ä¸çæ°æ®
getMethod()ï¼è·å¾å®¢æ·ç«¯åæå¡å¨ç«¯ä¼ éæ°æ®çæ¹æ³
getParameter(String name)ï¼è·å¾å®¢æ·ç«¯ä¼ éç»æå¡å¨ç«¯çænameæå®çåæ°å¼
getParameterNames()ï¼è·å¾å®¢æ·ç«¯ä¼ éç»æå¡å¨ç«¯çææåæ°çååï¼ç»ææ¯ä¸ä¸ªæä¸¾çå®ä¾
getParameterValues(String name)ï¼è·å¾ænameæå®çåæ°çææå¼
getProtocol()ï¼è·å客æ·ç«¯åæå¡å¨ç«¯ä¼ éæ°æ®æä¾æ®çåè®®åç§°
getQueryString()ï¼è·å¾æ¥è¯¢å符串
getRequestURI()ï¼è·åååºè¯·æ±å符串ç客æ·ç«¯å°å
getRemoteAddr()ï¼è·å客æ·ç«¯çIPå°å
getRemoteHost()ï¼è·å客æ·ç«¯çåå
getSession([Boolean create])ï¼è¿åå请æ±ç¸å
³Session
getServerName()ï¼è·åæå¡å¨çåå
getServletPath()ï¼è·å客æ·ç«¯æè¯·æ±çèæ¬æä»¶çè·¯å¾
getServerPort()ï¼è·åæå¡å¨ç端å£å·
removeAttribute(String name)ï¼å é¤è¯·æ±ä¸çä¸ä¸ªå±æ§
#### 8.å¦ä½é
ç½®Servletçåå§ååæ°ï¼
å¨web.xmlä¸è¯¥Servletçå®ä¹æ è®°ä¸ï¼æ¯å¦ï¼
``` xaml
TimeServlet
com.allanlxf.servlet.basic.TimeServlet
**
user
username
blog
http://ããã
```
é
ç½®äºä¸¤ä¸ªåå§ååæ°useråblogå®ä»¬çå¼åå«ä¸º**username**å[http://](http://allanlxf.blog.sohu.com/)ãããï¼ è¿æ ·ä»¥åè¦ä¿®æ¹ç¨æ·ååå客çå°åä¸éè¦ä¿®æ¹Servlet代ç ï¼åªéä¿®æ¹é
ç½®æä»¶å³å¯ã
#### 9.å¦ä½è¯»åServletçåå§ååæ°ï¼
ServletConfigä¸å®ä¹äºå¦ä¸çæ¹æ³ç¨æ¥è¯»ååå§ååæ°çä¿¡æ¯ï¼
â public String getInitParameter(String name)
â åæ°ï¼åå§ååæ°çåç§°ã
â è¿åï¼åå§ååæ°çå¼ï¼å¦ææ²¡æé
ç½®ï¼è¿ånullã
#### 10.init(ServletConfig)æ¹æ³æ§è¡æ¬¡æ°
è¯¥æ¹æ³æ§è¡å¨å线ç¨çç¯å¢ä¸ï¼å æ¤å¼åè
ä¸ç¨èè线ç¨å®å
¨çé®é¢ã
#### 11.init(ServletConfig)æ¹æ³ä¸å¼å¸¸
è¯¥æ¹æ³å¨æ§è¡è¿ç¨ä¸å¯ä»¥æåºServletExceptionæ¥éç¥Webæå¡å¨Servletå®ä¾åå§å失败ã䏿¦ServletExceptionæåºï¼Webæå¡å¨ä¸ä¼å°å®¢æ·ç«¯è¯·æ±äº¤ç»è¯¥Servletå®ä¾æ¥å¤çï¼èæ¯æ¥ååå§å失败å¼å¸¸ä¿¡æ¯ç»å®¢æ·ç«¯ï¼è¯¥Servletå®ä¾å°è¢«ä»å
åä¸éæ¯ã妿卿¥æ°ç请æ±ï¼Webæå¡å¨ä¼å建æ°çServletå®ä¾ï¼å¹¶æ§è¡æ°å®ä¾çåå§åæä½
#### åè龿¥
https://blog.csdn.net/hipilee/article/details/78743087
https://blog.csdn.net/Jeff_Seid/article/details/80761076