HttpServletRequest 是个什么东西

您所在的位置:网站首页 长知识了是啥意思 HttpServletRequest 是个什么东西

HttpServletRequest 是个什么东西

2023-12-28 01:51| 来源: 网络整理| 查看: 265

HttpServletRequest

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

通过request获得请求行 获得客户端的请求方式:String getMethod() 获得请求的资源: String getRequestURI() StringBuffer getRequestURL() String getContextPath() //web应用的名称 String getQueryString() //get提交url地址后的参数字符串 username=zhangsan&password=123

这里区分一下 URI 和 URL,URI 指的是 所有资源地址(磁盘地址,网络地址,相对地址等所有地址),URL指的是 网络地址。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1、获得请求方式 String method = request.getMethod(); System.out.println("method:"+method); //2、获得请求的资源相关的内容 String requestURI = request.getRequestURI(); StringBuffer requestURL = request.getRequestURL(); System.out.println("uri:"+requestURI); System.out.println("url:"+requestURL); //获得web应用的名称 String contextPath = request.getContextPath(); System.out.println("web应用:"+contextPath); //地址后的参数的字符串 String queryString = request.getQueryString(); System.out.println(queryString); //3、获得客户机的信息---获得访问者IP地址 String remoteAddr = request.getRemoteAddr(); System.out.println("IP:"+remoteAddr); } 通过request获得请求头 String getHeader(String name) //这个最常用 Enumeration getHeaderNames() //获得所有头名称 以枚举返回 Enumeration getHeaders(String name) int getIntHeader(String name) long getDateHeader(String name) 通过request获得请求体 String getParameter(String name) //获得单个表单的值 String[] getParameterValues(String name) //获得多个表单的值 Enumeration getParameterNames() //获得所有参数的的枚举 Map getParameterMap() //获得所有参数,封装到一个map中

解决post提交方式的乱码: **request.setCharacterEncoding(“UTF-8”); **

解决get提交的方式的乱码: **parameter = new String(parameter.getbytes(“iso8859-1”),“utf-8”); **

request的其他功能 request是一个域对象 setAttribute(String name, Object o) getAttribute(String name) removeAttribute(String name)

注意:request域的作用范围:一次请求中。

request完成请求转发 //获得请求转发器----path是转发的地址 RequestDispatcher getRequestDispatcher(String path) //通过转发器对象转发 requestDispathcer.forward(ServletRequest request, ServletResponse response)

转发与重定向的区别?

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

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

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

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

request 的生命周期:

创建:访问时创建request。

销毁:响应结束reques销毁。

域的作用范围:一次请求中。

因此在转发过程中 request 可以作为域对象使用,因为转发是一次请求!!!!

客户端地址与服务器端地址的写法?

客户端地址:是客户端去访问服务器的地址,服务器外部的地址,特点:写上web应用名称。——重定向。

服务器端地址:服务器内部资源的跳转的地址,特点:不需要写web应用的名称。——转发。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3