美文网首页Java程序员之言
JavaWeb之Request——转发功能的实现

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

作者: java面试笔试 | 来源:发表于2018-09-13 09:17 被阅读4次

    我们上次说了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 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)转发的性能要优于重定向

    那么今天就到这里了

    小伙伴们再见了

    公众号:javafirst

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/grgigftx.html