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 }

浙公网安备 33010602011771号