java 转发_JavaWeb之Request——转发功能的实现

原标题:JavaWeb之Request——转发功能的实现

来源:Java联盟

https://mp.weixin.qq.com/s/4PQA5OTvEYTaJF3Yacd10w

程序员共读整理发布,转载请联系作者获得授权

1)HttpServletRequest 概述

在创建 Servlet 时会覆盖 service() 方法,或 doGet()/doPost(), 这些方法都有两个参数,一个为代表请求的 request 和代表响应 response。

service 方法中的 request 的类型是 ServletRequest,而 doGet/doPost 方法的request 的类型是 HttpServletRequest,HttpServletRequest 是 ServletRequest 的子接口,功能和方法更加强大,今天我们学习 HttpServletRequest。

因为 request 代表请求,所以我们可以通过该对象分别获得 Http 请求的请求行,请求头和请求体。

2)通过 request 获得请求行

获得客户端的请求方式:

String getMethod()

获得请求的资源:

String getRequestURI()

StringBuffer getRequestURL()

String getContextPath()

String getQueryString()

request.getRemoteAddr()

9fa18d8278bab506fe36d0030136e099.png

d434bc71a3c5e23434af057ec91e5f8b.png

3)通过 request 获得请求头

long getDateHeader(String name)

String getHeader(String name)

Enumeration getHeaderNames()

Enumeration getHeaders(String name)

int getIntHeader(String name)

这里只展示最常用的两种方法~

ee507f0917214efb8e89388f7fc2318b.jpeg

4)通过 request 获得请求体

请求体中的内容是通过 post 提交的请求参数,通过一下方法获得请求参数:

String getParameter(String name)

String[] getParameterValues(String name)

Enumeration getParameterNames()

Map getParameterMap()

3361f78b5a1af87ca5b077cf9f5c4c16.png

注意:

get 请求方式的请求参数 上述的方法一样可以获得

5)request 的其他功能

request 是一个域对象

request 对象也是一个存储数据的区域对象,所以也具有如下方法:

setAttribute(String name, Object o)

getAttribute(String name)

removeAttribute(String name)

request 完成请求转发

获得请求转发器----path 是转发的地址

RequestDispatcher getRequestDispatcher(String path)

通过转发器对象转发

requestDispathcer.forward(ServletRequest request, ServletResponse response)

转发就好像我们去找张三借钱,张三没有但是张三去找了别人弄到了钱。来借给我们,我们只知道我们是从张三哪里借到了钱,其他的就不晓得了。

77db32b088de37780ab3c35b9d0e3d62.png

页面的请求路径还是在servlet1并没有改变~

转发与重定向的区别?

1)重定向两次请求,转发一次请求

2)重定向地址栏的地址变化,转发地址不变

3)重新定向可以访问外部网站,转发只能访问内部资源

4)转发的性能要优于重定向返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值