HttpServletRequest 是个什么东西 |
您所在的位置:网站首页 › 长知识了是啥意思 › HttpServletRequest 是个什么东西 |
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 |