JavaWeb之Request——转发功能的实现

我们上次说了Response

今天我们来聊聊它的小伙伴Request

Request

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()


3)通过 request 获得请求头

long getDateHeader(String name)

String getHeader(String name)

Enumeration getHeaderNames()

Enumeration getHeaders(String name)

int getIntHeader(String name)

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

4)通过 request 获得请求体

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

String getParameter(String name) 

String[] getParameterValues(String name)

Enumeration getParameterNames()

Map<String,String[]> getParameterMap()

注意:

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)

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

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

转发与重定向的区别?

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

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

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

4)转发的性能要优于重定向

那么今天就到这里了

小伙伴们再见了

扩展阅读

JavaWeb之Servlet——用户登录验证

JavaWeb之Response——重定向与解决中文乱码问题

JavaWeb之ServletContext——统计用户访问网站次数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容