HttpServletRequest的获取前端传递的参数并且请求转发
写在前面:
web服务器接收到客户端的http请求,针对这个请求,分别建立了一个代表请求的HttpServletResponse对象;和一个代表响应的HttpServletRequest对象。
如果要获取客户端请求过来的参数:HttpServletRequest对象。
如果要给客户端响应一些信息:找HttpServletResponse对象。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.wang.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 import java.io.FileInputStream; 8 import java.io.IOException; 9 import java.net.URLEncoder; 10 import java.util.Arrays; 11 12 public class LoginServlet extends HttpServlet { 13 @Override 14 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 15 //解决后台接收中文乱码问题 16 req.setCharacterEncoding("utf-8"); 17 resp.setCharacterEncoding("utf-8"); 18 19 String username = req.getParameter("username"); 20 String password = req.getParameter("password"); 21 String[] hobbys = req.getParameterValues("hobbys"); 22 System.out.println("==================================="); 23 System.out.println(username); 24 System.out.println(password); 25 System.out.println(Arrays.toString(hobbys)); 26 System.out.println("==================================="); 27 System.out.println(req.getContextPath()); 28 //通过请求转发 29 req.getRequestDispatcher("/success.jsp").forward(req,resp); 30 } 31 32 @Override 33 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 34 doGet(req, resp); 35 } 36 }
写index.jsp
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>登录</title> 5 </head> 6 <body> 7 <h1>登录</h1> 8 <div> 9 <form action="${pageContext.request.contextPath}/login" method="post"> 10 用户名:<input type="text" name="username"> <br> 11 密码:<input type="password" name="password"> <br> 12 爱好: 13 <input type="checkbox" name="hobbys" value="女孩">女孩 14 <input type="checkbox" name="hobbys" value="代码">代码 15 <input type="checkbox" name="hobbys" value="唱歌">唱歌 16 <input type="checkbox" name="hobbys" value="电影">电影 17 <br> 18 <input type="submit"> 19 </form> 20 </div> 21 </body> 22 </html>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 5 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 6 version="4.0" 7 metadata-complete="true"> 8 <!--注册和映射--> 9 <servlet> 10 <servlet-name>LoginServlet</servlet-name> 11 <servlet-class>com.wang.servlet.LoginServlet</servlet-class> 12 </servlet> 13 <servlet-mapping> 14 <servlet-name>LoginServlet</servlet-name> 15 <url-pattern>/login</url-pattern> 16 </servlet-mapping> 17 </web-app>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 req.setCharacterEncoding("utf-8"); 2 resp.setCharacterEncoding("utf-8");
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步