HttpServletRequest类

HttpServletRequest 类有什么作用

每次只要有请求进入 Tomcat服务器, Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中. 然后传递到 service 方法 (doGet 和 doPost) 中给我们使用, 我们可以通过 HttpServletRequest 对象, 获取到所有请求的信息.

HttpServletRequest 类的常用方法

  • getRequestURI()                               获取请求的资源路径
  • getRequestURL()                              获取请求的同意资源定位符(绝对路径)
  • getRemoteHost()                               获取客户端 ip 地址
  • getHeader                                          获取请求头
  • getParameter()                                   获取请求的参数
  • getParameterValues()                        获取请求的参数(多个值的时候使用)
  • getMethod()                                        获取请求的方式 GET 或 POST
  • setAttribute(key, value);                      设置域数据
  • getAttribute(key);                                获取域数据
  • getRequestDispatcher();                     获取请求转发对象
public class ParameterServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet....");
        //获取请求的参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbies = req.getParameterValues("hobby");

        System.out.println("用户名:" + username + "\n密码:" + password + "\n兴趣爱好:" + Arrays.asList(hobbies));
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置请求体的字符集为 UTF-8 ,从而解决post请求的中文乱码问题
        req.setCharacterEncoding("UTF-8");
        System.out.println("doPost...");
        //获取请求的参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobbies = req.getParameterValues("hobby");

        System.out.println("用户名:" + username + "\n密码:" + password + "\n兴趣爱好:" + Arrays.asList(hobbies));

    }
}

请求的转发

什么是请求的转发?

  • 请求转发是指, 服务器收到请求后, 从第一次资源跳转到另一个资源的操作叫做请求转发.

 

public class Servlet1 extends HttpServlet {

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

        String username = req.getParameter("username");
        System.out.println("在servlet1中 查看参数 : " + username);

        //传递到servlet2 去查看
        req.setAttribute("key1","柜台1");

        // servlet2 怎么走
//        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/WEB-INF/form.html");
        //RequestDispatcher requestDispatcher = req.getRequestDispatcher("http://www.baidu.com");
        //走向servlet2
        requestDispatcher.forward(req,resp);

    }
}

 

public class Servlet2 extends HttpServlet {

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

        String username = req.getParameter("username");
        System.out.println("在servlet1中 查看参数 : " + username);

        //查看 servlet1 是否盖章
        Object key1 = req.getAttribute("key1");
        System.out.println("柜台1是否有章: " + key1);

        //处理自己的业务
        System.out.println("处理自己的业务...");

    }
}

base 标签的作用 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CuteTTU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值