getMethod():HTTP 方法getRequestURI():資源路徑(不含查詢串)getRequestURL():完整 URLgetContextPath():應用上下文路徑getServletPath():Servlet 映射路徑getProtocol():協議版本getHeader(name):獲取指定頭getHeaderNames():所有頭名稱枚舉getIntHeader()/getDateHeader():類型轉換getParameter(name):單值getParameterValues(name):多值(複選框等)getParameterNames():所有參數名getParameterMap():Map 結構,適合批量處理// 轉發:服務端內部跳轉,共享 request/response
request.getRequestDispatcher("/target.jsp").forward(request, response);
// 包含:將目標資源輸出合併到當前響應
request.getRequestDispatcher("/header.jsp").include(request, response);
關鍵差異:forward 後代碼不再執行,include 繼續執行;include 目標資源不能設置狀態碼與響應頭。
僅在一次請求鏈路中有效(forward 鏈):
// 設置
request.setAttribute("user", userObj);
// 獲取
User u = (User) request.getAttribute("user");
| 需求 | 方法 | 示例輸出 |
|---|---|---|
| 客戶端 IP | getRemoteAddr() | 192.168.1.100 |
| 服務器信息 | getServletContext().getServerInfo() | Apache Tomcat/9.0.65 |
| 編碼格式 | getCharacterEncoding() | UTF-8 |
| 查詢字符串 | getQueryString() | id=1&name=test |
| Session ID | getRequestedSessionId() | JSESSIONID=ABC123 |
| 協議方案 | getScheme() | http/https |
| 服務器名 | getServerName() | localhost |
| 服務器端口 | getServerPort() | 8080 |
// 方式1:ParameterMap(推薦) MapparamMap = request.getParameterMap(); paramMap.forEach((key, values) -> { System.out.println(key + "=" + String.join(",", values)); }); // 方式2:ParameterNames(傳統) Enumeration names = request.getParameterNames(); while (names.hasMoreElements()) { String name = names.nextElement(); System.out.println(name + "=" + request.getParameter(name)); }
request.setCharacterEncoding("UTF-8")