javaWeb之request详解

本文深入解析了HTTP请求对象HttpServletRequest的使用,包括获取客户端信息、请求参数的方法,以及request对象作为域对象的功能和生命周期。同时,对比了请求转发forward与重定向relocation的区别。

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

request

       代表http请求的对象,使用HttpServletRequest接口进行。

继承结构

       HttpServletRequest继承了ServletRequest,这个接口增加了更多和http协议相关的方法。

 

常见的调用的一些方法

获取客户端的信息

       req.getRequestURL()获取客户端的请求地址

       req.getRequestURI()获取客户端的想要请求的资源

       req.getQueryString()获取请求行中的请求参数

       req.getRemoteAddr()获取客户端的ip地址

       req.getMethod()获取客户端的请求方式,一共有7种,常用的get/post.

       req.getContextPath()获取当前web应用的虚拟目录名称(注意在写路径是应在需要写web应用的地方通过getContextPaht()方法动态获取,而不是写出固定的路径)

获取请求参数

       req.getParameter(String name)

       req.getParameterValues(String name) 返回string[] 通过name获取多个CheckBox的值

       req.getParameterMap()返回Map<String,String[]> -----key:name,value:多个值

       req.getParameterNames()获得所有name

 

request请求的forward和relocation的区别

       forward请求转发:实现资源在一次请求链上的跳转,浏览器的地址栏并不会发生改变;

       relocation请求重定向:302+重定向地址:已经不是一次请求了,可能两次甚至更多在不同的虚拟主机之间或者web应用之间的跳转,明显地地址栏的地址会发生改变。

        注意,转发前,如果在响应response的缓冲区里写入了数据但是还没有打给浏览器,那转发时这些数据会被清空;如果打给了浏览器,那就相当于此时完成了一次请求响应的过程,再转发将会报错。

 

request作为域对象的用处

域对象:具有可见性的对象,可以利用自身的map来实现资源共享,就比如request就可以转发,刚好可以当做一个域对象。

request域对象生命周期:一次请求和响应的整个过程中

作用范围:整个请求链上

主要功能:资源共享

 

来看一下request作为域对象实现资源共享的api

      req.setAttribute(String name,Object valueObj)

      req.getAttribute(String name)

 

      req.removeAttribute(String name)

      req.getAttributeNames()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值