HttpServletRequest 类

1.HttpServletRequest 类的常用方法:
i. getRequestURI() 获取请求的资源路径
ii. getRequestURL() 获取请求的统一资源定位符(绝对路径)
iii. getRemoteHost() 获取客户端的 ip 地址
iv. getHeader() 获取请求头
v. getParameter() 获取请求的参数
vi. getParameterValues() 获取请求的参数(多个值的时候使用),返回数组
vii. getMethod() 获取请求的方式 GET 或 POST
viii. setAttribute(key, value); 设置域数据
ix. getAttribute(key); 获取域数据
x. getRequestDispatcher() 获取请求转发对象

代码:

 1 import javax.servlet.ServletException;
 2 import javax.servlet.annotation.WebServlet;
 3 import javax.servlet.http.HttpServlet;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 import java.io.IOException;
 7 
 8 @WebServlet("/requestServlet1")
 9 public class RequestServlet1 extends HttpServlet {
10     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
11         //结果:/Day_06/requestServlet1
12         System.out.println("获取请求的资源路径: "+request.getRequestURI());
13         //结果: http://localhost:8080/Day_06/requestServlet1
14         System.out.println("获取请求的统一资源定位符(绝对路径): "+request.getRequestURL());
15         //结果:GET
16         System.out.println("获取请求的方式 GET 或 POST: "+request.getMethod());
17         //结果:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
18         System.out.println("获取请求头: "+request.getHeader("User-Agent"));
19         //结果:127.0.0.1
20         System.out.println("获取客户端的 ip 地址: "+request.getRemoteHost());
21     }
22 }

2.doGet 请求的中文乱码:

代码:

1 // 获取请求参数
2 String username = req.getParameter("username");
3 //1 先以 iso8859-1 进行编码
4 //2 再以 utf-8 进行解码
5 username = new String(username.getBytes("iso-8859-1"), "UTF-8");

3.POST 请求的中文乱码:

代码:

1 req.setCharacterEncoding("UTF-8");

 4.请求转发:

  1). 转发地址栏路径不变
  2). 转发只能访问当前服务器下的资源
  3). 转发是一次请求,可以使用request对象来共享数据

 1 import javax.servlet.RequestDispatcher;
 2 import javax.servlet.ServletException;
 3 import javax.servlet.annotation.WebServlet;
 4 import javax.servlet.http.HttpServlet;
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.http.HttpServletResponse;
 7 import java.io.IOException;
 8 
 9 @WebServlet("/requestServlet2")
10 public class RequestServlet2 extends HttpServlet {
11     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
12         request.setAttribute("key", "人才");
13         RequestDispatcher requestDispatcher = request.getRequestDispatcher("/requestServlet3");
14         requestDispatcher.forward(request, response);
15     }
16 }
 1 import javax.servlet.ServletException;
 2 import javax.servlet.annotation.WebServlet;
 3 import javax.servlet.http.HttpServlet;
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpServletResponse;
 6 import java.io.IOException;
 7 import java.util.jar.JarOutputStream;
 8 
 9 @WebServlet("/requestServlet3")
10 public class RequestServlet3 extends HttpServlet {
11     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
12         System.out.println("value: "+request.getAttribute("key"));
13     }
14 }

 

posted @ 2020-03-19 10:16  王余阳  阅读(316)  评论(0)    收藏  举报