HttpServletRequest

HttpServletRequest

HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,Htto请求中的所有信息会被封装到HttpServletRequest,通过这个HttpServletRequest,可以获得客户端的所有信息

应用场景

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

        req.getParameter("username");//返回单个
        req.getParameterValues("pag");//返回一个String数组
public class LoginServlet extends HttpServlet {

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //解决乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");

        String username = req.getParameter("username");
        String password = req.getParameter("password");

        String[] hobbys = req.getParameterValues("hobbys");

        System.out.println(username);
        System.out.println(password);
        System.out.println(Arrays.toString(hobbys));

        //重定向
        //resp.sendRedirect();
        //转发
        //this.getServletContext();
        //通过请求转发
        //这里的“/"代表当前的web应用
        req.getRequestDispatcher("/r/success.jsp").forward(req,resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //虽然请求的是post但实际上还是走doGet方法
        doGet(req,resp);
    }
}

<%@ page contentType="text/html; UTF-8" language="java" %>


    登录


用户名:
密码:
爱好: A B C

请求转发和重定向的区别

  • 相同点:
    • 页面都会实现跳转
  • 不同点
    • 请求转发的时候,url不会发生变化:307
      tml>



#### 请求转发和重定向的区别

- 相同点:
  - 页面都会实现跳转
- 不同点
  - 请求转发的时候,url不会发生变化:307
  - 重定向时,url地址栏会发生变化:302

你可能感兴趣的:(Javaweb)