Servlet-HttpServletRequest類
阿新 • • 發佈:2020-09-10
HttpServletRequest類
一、HttpServletRequest類的作用
每次只要有請求進入Tomcat伺服器,Tomcat伺服器就會把請求過來的http協議內容解析好封裝到Request物件中。
然後傳遞到service方法(doGet、doPost)中給我們使用。我們可以通過HttpServletRequest物件獲取到所有請求的資訊。
(Tomcat伺服器建立,每次請求建立一個)
二、HttpServletRequest常用方法
(1)getRequestURI():獲取請求的資源路徑
(2)getRequestURL():獲取請求的統一資源定位符(絕對路徑)
(3)getRemoteHost():獲取客戶端的ip地址
(4)getHeader(String s):獲取請求頭
(5)getParameter(String s):獲取請求的引數
(6)getParameterValues(String s):獲取請求的引數(多個值時使用)
(7)getMethod():獲取請求的方式(GET/POST)
(8)setAttribute(String var1, Object var2):設定域資料
(9)getAttribute(String var1):獲取域資料
(10)getRequestDispatcher(String var1):獲取請求轉發物件
相關程式碼
package com.orzjiangxiaoyu.servlet; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Arrays; /** * HttpServletRequest類的作用 * * 每次只要有請求進入Tomcat伺服器,Tomcat伺服器就會把請求過來的http協議內容解析好封裝到Request物件中。 * 然後傳遞到service方法(doGet、doPost)中給我們使用。我們可以通過HttpServletRequest物件獲取到所有請求的資訊。 * (Tomcat伺服器建立,每次請求建立一個) * * * HttpServletRequest常用方法 * * getRequestURI():獲取請求的資源路徑 * getRequestURL():獲取請求的統一資源定位符(絕對路徑) * getRemoteHost():獲取客戶端的ip地址 * getHeader(String s):獲取請求頭 * getParameter(String s):獲取請求的引數 * getParameterValues(String s):獲取請求的引數(多個值時使用) * getMethod():獲取請求的方式(GET/POST) * setAttribute(String var1, Object var2):設定域資料 * getAttribute(String var1):獲取域資料 * getRequestDispatcher(String var1):獲取請求轉發物件 *View Code@author orz * @create 2020-09-10 22:02 */ public class RequestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("POST"); // getRequestURI():獲取請求的資源路徑 System.out.println("請求的資源路徑:"+req.getRequestURI()); // getRequestURL():獲取請求的統一資源定位符(絕對路徑) System.out.println("獲取請求的統一資源定位符(絕對路徑):"+req.getRequestURL()); // getRemoteHost():獲取客戶端的ip地址 System.out.println("客戶端的ip地址:"+req.getRemoteHost()); // getHeader(String s):獲取請求頭 System.out.println("獲取請求頭User-Agent:"+req.getHeader("User-Agent")); // getParameter(String s):獲取請求的引數 System.out.println("獲取請求的引數username:"+req.getParameter("username")); // getParameterValues(String s):獲取請求的引數(多個值時使用) System.out.println("獲取請求的引數(多個值)hobby:"+ Arrays.toString(req.getParameterValues("hobby"))); // getMethod():獲取請求的方式(GET/POST) System.out.println("請求的方式:"+req.getMethod()); // setAttribute(String var1, Object var2):設定域資料 req.setAttribute("key1","value1"); // getAttribute(String var1):獲取域資料 System.out.println("域資料 key=key1 value1="+req.getAttribute("key1")); // getRequestDispatcher(String var1):獲取請求轉發物件 System.out.println("請求轉發物件:"+req.getRequestDispatcher("/")); } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>Servlet1</servlet-name> <servlet-class>com.orzjiangxiaoyu.servlet.Servlet1</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/servlet1</url-pattern> </servlet-mapping> <servlet> <servlet-name>Servlet2</servlet-name> <servlet-class>com.orzjiangxiaoyu.servlet.Servlet2</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet2</servlet-name> <url-pattern>/servlet2</url-pattern> </servlet-mapping> <servlet> <servlet-name>RequestServlet</servlet-name> <servlet-class>com.orzjiangxiaoyu.servlet.RequestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RequestServlet</servlet-name> <url-pattern>/requestServlet</url-pattern> </servlet-mapping> </web-app>View Code
form1.html
<!DOCTYPE html> <html lang="zh_CN"> <head> <meta charset="UTF-8"> <title>requestServlet-Form</title> </head> <body> <form action="http://localhost:8090/Servlet_GetPost_war_exploded/requestServlet" method="post"> 使用者名稱<input type="text" value="" name="username"/><br/> 密 碼<input type="text" value="" name="password"/><br/> 愛 好<input type="checkbox" name="hobby" value="java"/>java <input type="checkbox" name="hobby" value="c++"/>c++ <input type="checkbox" name="hobby" value="php"/>php <br/> <input type="submit"/> </form> </body> </html>View Code