request对象与response对象
一.request对象
1.通过request对象可以获得客户端输入的信息。request对象包含了从客户端传来的请求信息。
请求的参数是一个请求的组成部分,它们被作为字符串从客户端传送到JSP/Servlet容器中,并被用于初始化request对象。
2.request对象是javax.Servlet.http.HttpServletRequest接口,它主要可用的方法如下:
1)getCookies()
该方法返回客户端的Cookie对象数组,这些Cookie对象是javax.servlet.http.Cookie的实例对象。
2)getHeader(String name)
该方法可以获取http协议所定义的特定的http头文件的信息。name可以使HTTP文件头的名字,例如User-Agent。
3)getAttribute(String name)
返回绑定在name属性上的值,如果没有,则返回null。
4)getAttributeNames()
返回和当前的request对象绑定在一起的所有的属性的名字。返回值是一个枚举对象。
5)getHeaderNames()
使用该方法返回一个枚举对象,包含当前request对象中包含着的每一个http的头文件的名字。
6)getMethod()
该方法可以返回当前客户端向服务器端传输协议的方式,可能的有POST,GET,PUT等等。
7)getParameter(String name)
可以获得客户端传输给服务器端得信息。
8)getParameterNames()
可以获取客户端传输给服务器端所有的参数名字。返回值是一个枚举类型。
9)getParameterValues(String name)
与getParameter(String name)的不同在于,使用getParameter(String name)只返回name当前的值,而之前的值都被忽略了,而getParameterValue(String name)则会返回所有的值。
10)getQueryString()
使用该方法可以获得请求字符串,该字符串由客户端以GET方式传向服务器端。
11)getRequestURL()
getRequestURL()方法可以获得和当前request对象相应的URL地址,有人就说客户端通过浏览器所请求的URL地址。
12)getServletPath()
该方法可以获得客户端所请求的servlet的地址。
13)setAttribute(String name,Java.lang.Object obj)
该方法可以将某个参数和目前的request对象绑定起来。
14)getServerName()
该方法返回服务器的名称。
15)getServerPort()
用于获取服务器提供的HTTP服务的端口。
16)getRemoteAddr()
该方法用于获得发送HTTP请求的客户端地址。利用这个方法,我们可以屏蔽来自某些IP地址的访问。
17)getRemoteHost()
该方法可以获取当前HTTP连接的客户端计算机名称,返回的是IP地址。
18)getProtocol()
可以获取客户端向服务器端发送信息所遵循的协议名称。
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body bgcolor="white"> <h1>Request Information</h1> <font size="4"> JSP Request Method: <%out.println(request.getMethod()); %> <br> Request URI: <%out.println(request.getRequestURI()); %> <br> Request Protocol: <%out.println(request. getProtocol()); %> <br> Servlet path: <%out.println(request.getServletPath ()); %> <br> Path info: <%out.println(request.getPathInfo()); %> <br> Path translated: <%out.println(request.getPathTranslated()); %> <br> Query string: <%out.println(request.getQueryString()); %> <br> Content length: <%out.println(request.getContentLength()); %> <br> Content type: <%out.println(request.getContentType()); %> <br> Server name: <%out.println(request.getServerName()); %> <br> Server port: <%out.println(request.getServerPort()); %> <br> Remote user: <%out.println(request.getRemoteUser()); %> <br> Remote address: <%out.println(request.getRemoteAddr()); %> <br> Remote host: <%out.println(request.getRemoteHost()); %> <br> Authorization scheme: <%out.println(request.getAuthType()); %> <hr> The browser you are using is: <%out.println(request.getHeader("User-Agent")); %> <hr> </font> </body> </html>
二.response对象
1.response对象的作用是处理HTTP连接信息,如cookie,HTTP文件头信息等,它有很多功能是和request对象相匹配的。
2.response对象的常用方法:
1)addCookie(Cookie cookie)
当用于访问某个站点时,我们可以用此方法添加一个cookie对象,并将它发送到客户端,保存到客户端操作系统的某个特定目录下,用来保存客户的特定信息。当用户再次访问浏览器时,浏览器会自动将这个Cookie对象发送会服务器端,调用request对象的getCookie()方法可以获得所有存在的Cookie对象,getCookie返回的是一个数组。Cookie对于不同的客户来说都是专有的。
2)addHeader(String name,String value)
addHeader是添加HTTP文件头信息,这些信息将会传到客户端,发送特定的HTTP文件头信息,可以控制客户端和服务器端的连接。
3)containsHeader(String name)
该方法用于判断指定名字的HTTP文件头是否存在,返回值是布尔类型。
4)sendError(int sc)
该方法用于向客户端发送错误消息,例如505:服务器内部消息。
5)sendRedirect(String url)
和<jsp:forward>动作指令的功能一模一样,但是向目标程序传递HTTP参数不是很方便,在使用此方法之前,必须保证JSP程序没有任何可见的输出被送往客户端。
6)setHeader()
是一个通用的标头设定方法,您可以用它来设定任何「名称/值」的标头.
7)setIntHeader()
专门用来设定整数值标头的版本.
8)setDateHeader()
是setHeader()的Date设定版本,第二个参数是设定Date的Long数值,0表示GMT 1970/1/1 00:00。
9)setStatus()
是用来设定回应的状态码,例如404 Not Found,HttpServletResponse类中提供了一些助忆常数设定,例如SC_NOT_FOUND就是表示404状态码(可以在Servlet API文件中查询相关的助忆常数)
文章来源:http://www.cnblogs.com/karying/archive/2009/10/21/2015408.html