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" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
<div style="text-align: center">
    <form action="${pageContext.request.contextPath}/login" method="post">
        用户名:<input type="text" name="username"> <br>
        密码:<input type="password" name="password"> <br>

        爱好:
        <input type="checkbox" name="hobbys" value="A"> A
        <input type="checkbox" name="hobbys" value="B"> B
        <input type="checkbox" name="hobbys" value="C"> C
        <br>
        <input type="submit">
    </form>
</div>

</body>
</html>
请求转发和重定向的区别
  • 相同点:
    • 页面都会实现跳转
  • 不同点
    • 请求转发的时候,url不会发生变化:307
      tml>



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

- 相同点:
  - 页面都会实现跳转
- 不同点
  - 请求转发的时候,url不会发生变化:307
  - 重定向时,url地址栏会发生变化:302
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值