javaWeb之request详解

request

       代表http请求的对象,使用HttpServletRequest接口进行。

继承结构

       HttpServletRequest继承了ServletRequest,这个接口增加了更多和http协议相关的方法。

 

常见的调用的一些方法

获取客户端的信息

       req.getRequestURL()获取客户端的请求地址

       req.getRequestURI()获取客户端的想要请求的资源

       req.getQueryString()获取请求行中的请求参数

       req.getRemoteAddr()获取客户端的ip地址

       req.getMethod()获取客户端的请求方式,一共有7种,常用的get/post.

       req.getContextPath()获取当前web应用的虚拟目录名称(注意在写路径是应在需要写web应用的地方通过getContextPaht()方法动态获取,而不是写出固定的路径)

获取请求参数

       req.getParameter(String name)

       req.getParameterValues(String name) 返回string[] 通过name获取多个CheckBox的值

       req.getParameterMap()返回Map<String,String[]> -----key:name,value:多个值

       req.getParameterNames()获得所有name

 

request请求的forward和relocation的区别

       forward请求转发:实现资源在一次请求链上的跳转,浏览器的地址栏并不会发生改变;

       relocation请求重定向:302+重定向地址:已经不是一次请求了,可能两次甚至更多在不同的虚拟主机之间或者web应用之间的跳转,明显地地址栏的地址会发生改变。

        注意,转发前,如果在响应response的缓冲区里写入了数据但是还没有打给浏览器,那转发时这些数据会被清空;如果打给了浏览器,那就相当于此时完成了一次请求响应的过程,再转发将会报错。

 

request作为域对象的用处

域对象:具有可见性的对象,可以利用自身的map来实现资源共享,就比如request就可以转发,刚好可以当做一个域对象。

request域对象生命周期:一次请求和响应的整个过程中

作用范围:整个请求链上

主要功能:资源共享

 

来看一下request作为域对象实现资源共享的api

      req.setAttribute(String name,Object valueObj)

      req.getAttribute(String name)

 

      req.removeAttribute(String name)

      req.getAttributeNames()

猜你喜欢

转载自blog.csdn.net/qq_40531768/article/details/89392926
今日推荐