day102-HttpServletRequest

发布时间 2023-03-22 21:08:47作者: 北海之上

HttpServletRequest

获取前端传递的参数,请求转发

 req.getParameter()
 req.getParameterValues()

 

获取参数

 public class LoginServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         req.setCharacterEncoding("utf-8");
         String username = req.getParameter("username");
         String password = req.getParameter("password");
         String[] hobbies = req.getParameterValues("hobby");
         System.out.println("======================");
         System.out.println(username);
         System.out.println(password);
         System.out.println(Arrays.toString(hobbies));
         System.out.println("======================");
 ​
         //通过请求转发
         req.getRequestDispatcher("success.jsp").forward(req,resp);
 ​
 ​
     }
 ​
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         doGet(req, resp);
     }
 }

 

设计页面,粗糙

 <body><h1 style="text-align: center">登录</h1>
 <div style="text-align: center">
 <%--    以post方式提交表单,提交到login--%>
     <form action="${pageContext.request.contextPath}/login" method="post">
         用户名:<input type="text" name="username"><br>
         密码:<input type="password" name="password"><br>
         爱好:
         <input type="checkbox" name="hobby" value="吃饭">吃饭
         <input type="checkbox" name="hobby" value="睡觉">睡觉
         <input type="checkbox" name="hobby" value="游戏">游戏
         <input type="checkbox" name="hobby" value="学习">学习
         <br>
         <input type="submit">
     </form>
 </div>
 </body>

 

跳转成果页面

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <html>
 <head>
     <title>Title</title>
 </head>
 <body><h1>
 欢迎进入
 </h1></body>
 </html>

 

请求转发与重定向的区别

相同点:页面都会实现跳转

不同点:

  1. 请求转发的时候url不会产生变化 307

  2. 重定向的时候,url地址栏会发生变化 302