Request容器详解

Request和Response这个两个容器对象是相对应的,每次用户请求服务器的时候web容器就会给创建这对容器对象,他们是共存亡的,当然Request除了有一个容器对象的角色,他还有一个角色就是Request域,我们之前在讲解Servlet的时候说到一个ServletContext域,这个域的范围是整个web应用,这里的Request域的范围就小了,他只是一次用户的请求内,即用户发送一个请求的时候,Request创建,当用户关闭这次请求的时候Request就会消亡的

 

下面就来看一下Request的相关方法:

1.getContextPath():这个方法返回的是web应用映射的虚拟目录    地址:如ServletDemo应用的虚拟目录是:/ServletDemo
2.getCookies():这个方法返回的是一个Cookies[],我们在 response容器那篇文章中看一个方法是向response容器中存入一个cookie的,这个方法是从Request容器中拿取多个cookies,因为用户在请求的时候会携带很多的cookie,关于Cookie的相关知识,我们会在后面的文章中进行详解

3.getHeader(String name)/getIntHeader(String name)/getDateHe ader(String name):这些方法是获取请求头信息的,只是针对不同的类型的,有字符串类型的,时间类型,数值类型的

4.getHeaderNames():这个方法是获取所有请求头的字段名称

5.getHeaders(String name):这个方法是获取一个请求头字段的所有值,因为有时候可能会有相同请求头字段信息,不会覆盖的

6.getMethod():这个方法是获取客户机的请求方法

7.getQueryString():这个方法是获取用户请求时的查询参数的,即url后面携带的参数如:http://localhost:8080/ServletDemo/ServletRequest?username=jiangwei&password=123456,那么getQueryString()方法返回来的值就是username=jiangwei&password=123456

8.getRequestSessionId():这个方法是获取客户机在请求的时候携带的sessionid值,有关session的相关知识,后面会详解

9.getRequestURL():这个方法是获取客户机请求的url  http://10.1.236.158:8087/aaaa/bbb

10.getRequestURI):这个方法是获取客户机请求的url下的方法路径 /aaa/bbb

11.getServletPath():这个方法返回的是请求的Servlet的映射路径,比如:ServletRequest映射的是是/ServletRequest

12.getServerName()/getServerPort():这两个方法是获取服务器的名称和端口号,比如localhost,8080

13.getSession()/getSession(boolean mode):这两个方法是获取一个session对象,相关之后在session篇会说到

14.getAttribute(String name):这个方法是从Request域中获取值

15.getAttributeNames():这个方法是获取Request域中获取所有的字段名称

16.getParameter(String name):这个方法是获取用户使用get/post方式携带的参数值

17.getParameterNames():这个方法是获取用户请求时携带的所有参数名称

18.getParameterMap():这个方法是获取用户请求时携带的参数名称和参数值,并将其组装成一个Map对象

19.getParameterValues():这个方法是获取用户请求携带的参数值,因为有时候一个参数名称可能对应多个值

20.setAttribute(String name,Object value):这个方法是设置Request域中的属性值

21.removeAttribute(String name):这个方法是删除Request域中的属性值

22.getInputStream()/getReader():这个方法是获取用户请求的时候上传的输入流,比如我们在处理用户上传文件的时候。需要用到这个输入流

23.setCharacterEncoding(String name):这个方法是设置Request容器的编码

24.getRemoteAddr()/getRemoteHost():获取客户机的IP地址和主机名

25.getProctocol():获取协议名称

26.getRequestDispatcher(String path):获取一个转发对象RequestDispatcher,进行转发操作

27.getSchema():可以返回当前页面使用的协议,http 或是 https;

 

项目应用:当前项目的额绝对路径:

 

String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

 

 

 

 

 

 

posted @ 2017-05-09 17:20  十月围城小童鞋  阅读(153)  评论(0编辑  收藏  举报