首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Servlet 核心細節全覽:請求/響應/過濾器/Session/Cookie 實戰速查

     編輯:Java 綜合教學

Servlet 核心細節全覽:請求/響應/過濾器/Session/Cookie 實戰速查

一、HTTP 方法差異

特性GETPOST
參數傳遞Query String(URL 可見),長度限制 ~1024 字符Request Body(Form Data),無長度限制
獲取方式request.getQueryString()request.getParameter*()

二、請求對象關鍵信息獲取

String host = req.getHeader("Host");           // localhost:8080
String referer = req.getHeader("Referer");     // 來源頁面 URL
String contextPath = req.getContextPath();     // /myservlet
String requestURI = req.getRequestURI();       // /myservlet/DisplayHeader
StringBuffer requestURL = req.getRequestURL(); // 完整 URL
String sessionId = req.getRequestedSessionId(); // JSESSIONID
int serverPort = req.getServerPort();          // 8080

URL 解剖:https://localhost:8080/myservlet/DisplayHeader?method=show

  • http: 協議
  • localhost: 主機
  • 8080: 端口
  • /myservlet: contextPath
  • /DisplayHeader: servletPath
  • method=show: 參數

三、響應對象基本用法

resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.print("hello world!");

四、定時刷新頁面小技巧

resp.setIntHeader("Refresh", 5); // 每 5 秒刷新
Calendar cal = Calendar.getInstance();
String time = cal.get(Calendar.HOUR) + ":" 
            + cal.get(Calendar.MINUTE) + ":" 
            + cal.get(Calendar.SECOND) + " " 
            + (cal.get(Calendar.AM_PM) == 0 ? "AM" : "PM");
out.print(time);

五、Filter 過濾器核心

兩大作用:

  1. 請求到達後端資源前攔截預處理
  2. 響應返回客戶端前後處理

規範建議類型:身份驗證、數據壓縮、加密、日志審計、圖像轉換、MIME 類型鏈、Tokenizing、XSLT 轉換等。

順序決定權:web.xml 中 filter-mapping 定義順序即執行順序。

六、Cookie 命名限制

Key/Value 不可包含:[ ] ( ) = , " / ? @ : ;

七、Session 管理

// 刪除整個會話
session.invalidate();

// 設置單會話超時(秒)
session.setMaxInactiveInterval(30 * 60);

// web.xml 全局配置(分鐘)
<session-config>
    <session-timeout>15</session-timeout>
</session-config>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved