天天看點

servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識Servlet的學習路線Servlet的相關配置Servlet類型層次結構Servlet對象的常見方法剖析使用HttpServletRequest擷取請求資訊中文亂碼解決方案:Servlet生命周期:

Servlet的學習路線

1、 建立Servlet

2、 Servlet的相關配置

3、 Servlet的生命周期

4、 HttpServletRequest接口

5、 HttpServletResponse接口

6、 HttpSession接口

7、 Filter、Listener接口

Servlet的相關配置

1、 建立Servlet extends HttpServlet

2、 配置Serlvet

第1種配置方式: web.xml,web.xml不僅能配置Servlet資訊,還可以配置歡迎頁面,錯誤頁面,其他的配置。

servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識Servlet的學習路線Servlet的相關配置Servlet類型層次結構Servlet對象的常見方法剖析使用HttpServletRequest擷取請求資訊中文亂碼解決方案:Servlet生命周期:
servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識Servlet的學習路線Servlet的相關配置Servlet類型層次結構Servlet對象的常見方法剖析使用HttpServletRequest擷取請求資訊中文亂碼解決方案:Servlet生命周期:
servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識Servlet的學習路線Servlet的相關配置Servlet類型層次結構Servlet對象的常見方法剖析使用HttpServletRequest擷取請求資訊中文亂碼解決方案:Servlet生命周期:

第2種配置方式: 注解(Annotation)

@WebServlet( name = "", urlPatterns = {} )

urlPattern的配置規則:

1. 精确路徑比對

[例] /user/register.do

2. 模糊路徑比對

[例] /user/*

3. 擴充名比對

[例] *.do

4. 預設比對

[例] /

問: 如果一個Request URL能比對多個urlPattern, 執行哪個對應的Servlet?

以優先級為依據: 精确路徑 > 模糊路徑 > 擴充名路徑 > 預設路徑

Servlet類型層次結構

servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識Servlet的學習路線Servlet的相關配置Servlet類型層次結構Servlet對象的常見方法剖析使用HttpServletRequest擷取請求資訊中文亂碼解決方案:Servlet生命周期:
servlet中文亂碼_10分鐘快速掌握Servlet相關基礎知識Servlet的學習路線Servlet的相關配置Servlet類型層次結構Servlet對象的常見方法剖析使用HttpServletRequest擷取請求資訊中文亂碼解決方案:Servlet生命周期:

Servlet對象的常見方法剖析

String getServletName(); 擷取Servlet對象的名稱

ServletContext getServletContext(); //擷取Servlet對象的容器(作用于整個項目)Servlet容器,它的生命周期最長,随着tomcat的啟動而産生,關閉而銷毀、更新銷毀。

setAttribute(key,value); 向容器中存儲資料

getAttribute(key); 從容器擷取資料

String getInitParameter(String var1); //擷取(ServletContenxt容器,全局參數也可以擷取)的初始參數值

Enumeration getInitParameterNames(); //擷取初始參數的名稱

ServletConfig getServletConfig(); //擷取配置檔案的資訊還可以調用父容器

使用HttpServletRequest擷取請求資訊

getParameter( String parameterName ) : String

getParameterValues( String parameterName ) : String[]

注意: 參數parameterName往往是表單元素的name屬性.

中文亂碼解決方案:

1. 通過QueryString傳遞中文資料時

修改tomcat/conf/server.xml ->

或在程式中直接對String進行轉碼操作

userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8");

2. 通過請求體傳遞中文資料時

request.setCharacterEncoding("UTF-8");

Servlet生命周期:

自tomcat啟動以來, 首次請求某Servlet時:

1. 容器調用構造器執行個體化該Servlet

2. 調用init()初始化該Servlet

3. 調用該Servlet的service()處理請求

3.1 如果該請求的Method是GET: 調用doGet()

3.2 如果該請求的Method是POST: 調用doPost()

第N(N>=2)次請求該Servlet時,執行上面的第3步

tomcat stop或update時:

4. 調用該Servlet的destroy()銷毀執行個體

最後,Servlet 是由 JVM 的垃圾回收器進行垃圾回收。

繼續閱讀