request 是 JSP 開發中使用頻率最高的內置對象,封裝了客戶端發送的所有請求信息。本文系統梳理其核心方法、參數接收技巧及繼承體系。
javax.servlet.http.HttpServletRequest 實例ServletRequest (父接口) → HttpServletRequest (子接口,專用於 HTTP 協議)ServletRequest 以便未來擴展其他協議(如 WebSocket、自定義協議)。
String getParameter(String name):獲取單個參數值(表單字段、URL 參數)。String[] getParameterValues(String name):獲取多值參數(複選框、多選下拉框)。Enumeration<String> getParameterNames():獲取所有參數名迭代器。Map<String,String[]> getParameterMap():獲取完整參數映射(框架綁定常用)。String getHeader(String name):獲取指定頭(User-Agent、Referer、Cookie 等)。Enumeration<String> getHeaderNames():獲取所有頭名稱。String getMethod():GET/POST/PUT/DELETE 等。String getRequestURI():請求資源路徑(含項目名)。String getContextPath():項目上下文路徑。String getServletPath():匹配到的 Servlet 路徑。String getQueryString():查詢字符串(? 後部分)。String getRemoteAddr():客戶端 IP 地址。RequestDispatcher getRequestDispatcher(String path):獲取轉發器。GET/POST 參數編碼不一致是亂碼高發區,建議配置 CharacterEncodingFilter 統一設置 request.setCharacterEncoding("UTF-8"),而非在每個 JSP 重複設置。