Servlet(三)HttpServletRequest对象

本文详细介绍了HttpServletRequest对象在HTTP协议中的作用,包括获取请求信息、解决乱码问题、请求转发机制以及其在数据传递中的角色。重点讲解了参数获取、编码设置和请求范围,是理解Web开发核心技术的关键部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HttpServletRequest对象

  • 负责接收客户端传送过来的数据,如请求头,发送头的信息等,该对象应用在HTTP协议上,由Tomcat封装好传递过来。service方法中接收的就是HttpServletRequset实例化的对象。
  • HttpServletRequset继承自ServletRequset接口,以后如果有新的协议,只需直接继承ServletRequset就行。

接收请求

  • 常用方法:
方法作用
getRequestURL()获取客户端发出请求时的完整URL
getRequestURI()获取部分资源名称(项目名称开始)
getQueryString()获取请求行中的参数部分
getMethod()获取客户端请求方式
getProtocol()获取http版本号
getContextPath()获取webapp名字
  • 获取请求参数
          /**
             * 获取请求参数
             * 1:通过参数名获取参数值,返回字符串
             *          req.getParameter("参数名")
             *          参数名:
             *          1:表单元素的name属性值
             *          2:ajax 的data 属性的值的键
             *          3:超链接参数的键
             * 2:通过参数名获取所有的参数值,返回数组
             */
            // 获取用户名
            String Uname = req.getParameter("uname");
            String upwd = req.getParameter("upwd");
            System.out.println(Uname+"  "+upwd );
    
  • 请求乱码问题
    • 在Tomcat8之前,Get,Post请求都会乱码,8以后,get不会乱码,post会乱码;(原因:request有默认编码格式,IOS-8859-1,这种编码格式不支持中文)
    • // 在参数获取前 设置utf-8
      req.setCharacterEncoding(“UTF-8”);

请求转发

  • 一种跳转方式,服务端的行为,格式
     //请求跳转到首页
           req.getRequestDispatcher("index.jsp").forward(req,resp);
    
    特点:1.请求转发页面跳转后,地址栏不会发生改变
    1. 服务端行为
    2. 请求转发只有一次请求
    3. request、response 数据对象可以共享(所以可以使用java脚本在jsp页面中写java代码,因为jsp是一个动态页面)

requset作用域

  • 通过该对象在一个请求中传递数据(通过将数据设置入request来进行传递,,在java代码里放入数据,来使前端页面可以访问到)作用范围,在一次请求中有效,即服务器跳转有效
  • 所以在一次转发请求的过程中,可以使用request作用域来传输/共享数据。

总结

  • request 获取客户端传递过来的数据
  • 可以设置数据放入作用域里 ,供前端访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值