1. 程式人生 > 實用技巧 >Servlet-HttpServletRequest類

Servlet-HttpServletRequest類

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):獲取請求轉發物件
 * 
@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("/")); } }
View Code

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/>&emsp;碼<input type="text" value="" name="password"/><br/>&emsp;好<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