1.HttpServletRequest和ServletRequest都是接口,HttpServletRequest继承ServletRequest,只是HttpServletRequest比ServletRequset多了一些http协议的方法,如getHeader()、getMethod()等
2.Request是在jsp中使用的,其实只是规范中的一个名称而已。它是一个对象,但不是有SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只规定了这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体是什么类什么方法由各个提供商自己决定
ServletRequest
1.概念: ServletRequest由Servlet容器来管理,当客户请求到来时,容器创建一个ServletRequest对象,封装请求数据,同时创建一个ServletResponse对象,封装响应数据。这两个对象将被容器作为service()方法的参数传递给Servlet,Servlet利用ServletRequest对象获取客户端发来的请求数据,利用ServletResponse对象发送响应数据。
interface ServletRequest ,在javax.servlet包中。
2. 方法:
1、getAttribute
public Object getAttribute(String name)
返回以name为名字的属性的值。如果该属性不存在,这个方法将返回null。
2、getAttributeNames
public Enumeration getAttributeNames()
返回请求中所有可用的属性的名字。如果在请求中没有属性,这个方法将返回一个空的枚举集合。
3、removeAttribute
public void removeAttribute(String name)
移除请求中名字为name的属性。
4.setAttribute
public void setAttribute(String name,Object o)
在请求中保存名字为name的属性。如果第二个参数o为null,那么相当于调用removeAttribute(name)。
5、getCharacterEncoding
public String getCharacterEncoding()
返回请求正文使用的字符编码的名字。如果请求没有指定字符编码,这个方法将返回null。
6、getContentLength
public int getContentLength()
以字节为单位,返回请求正文的长度。如果长度不可知,这个方法将返回-1。
7、getContentType
public String getContentType()
返回请求正文的MIME类型。如果类型不可知,这个方法将返回null。
8、getInputStream
public ServletInputStream getInputStream()
返回一个输入流,使用该输入流以二进制方式读取请求正文的内容。javax.servlet.ServletInputStream是一个抽象类,继承自InputStream。
9、getLocalAddr
public String getLocalAddr()
返回接收到请求的网络接口的IP地址,这个方法是在Servlet 2.4规范中新增的方法。
10、getLocalPort
public int getLocalPort()
返回接收到请求的网络接口的IP端口号,这个方法是在Servlet 2.4规范中新增的方法。
11、getLocalName
public String getLocalName()
返回接收到请求的IP接口的主机名,这个方法是在Servlet 2.4规范中新增的方法。
12、getParameter
public String getParameter(String name)
返回请求中name参数的值。如果name参数有多个值,那么这个方法将返回值列表中的第一个值。如果在请求中没有找到这个参数,这个方法将返回null。
13、getParameterNames
public Enumeration getParameterNames()
返回请求中包含的所有的参数的名字。如果请求中没有参数,这个方法将返回一个空的枚举集合。
14、getParameterValues
public String[ ] getParameterValues(String name)
返回请求中name参数所有的值。如果这个参数在请求中并不存在,这个方法将返回null。
15、getReader
public BufferedReader getReader() throws IOException
返回BufferedReader对象,以字节数据方式读取请求正文。
16、getRemoteHost
public java.lang.String getRemoteHost()
返回发送请求的客户端或最后一个代理服务器的完整限定名。
17、getRemotePort
public int getRemotePort()
返回发送请求的客户端或者最后一个代理服务器的IP源端口, 这个方法是在Servlet 2.4规范中新增的方法。
18、 getRequestDispatcher
public RequestDispatcher getRequestDispatcher(String path)
返回RequestDispatcher对象,作为path所定位的资源的封装。
19、getServerName
public String getServerName()
返回请求发送到的服务器的主机名。
20、getServerPort
public int getServerPort()
返回请求发送到的服务器的端口号。
21、setCharacterEncoding
public void setCharacterEncoding(String env)throws UnsupportedEncodingException
覆盖在请求正文中所使用的字符编码的名字。
request:
1:概念
request这个对象不用事先声明,就可以在JSP网页中使用,在编译为Servlet之后,它会转换为javax.servlet.http.HttpServletRequest形态的对象,HttpServletRequest对象是有关于客户端所发出的请求的对象,只要是有关于客户端请求的信息,都可以藉由它来取得,例如请求标头、请求方法、请求参数、客户端IP,客户端浏览器等等信息。
2.方法
getParameterNames():取得客户端所发出的请求参数名称.
getParameter():可以让您指定请求参数名称,以取得对应的设定值.
getServerName():请求的服务器.
getProtocol():使用协议.
getMethod():请求方法.
getServerPort():请求端口号.
getContextPath():Context路径.
getServletPath(): Servlet路径.
getRequestURI():URI路径.
getQueryString():查询字符串.
getRemoteAddr():使用者主机IP.
getRemotePort():使用者使用端口号
HttpServletRequest
1.概念
公共接口类HttpServletRequest继承自ServletRequest。客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。对象包含了客户端请求信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。
public interface HttpServletRequest extends ServletRequest;
用来处理一个对Servlet的HTTP格式的请求信息。
2.方法
getAuthType
public String getAuthType();
返回这个请求的身份验证模式。
getCookies
public Cookie[] getCookies();
返回一个数组,该数组包含这个请求中当前的所有cookie。如果这个请求中没有cookie,返回一个空数组。
getDateHeader
public long getDateHeader(String name);
返回指定的请求头域的值,这个值被转换成一个反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。
如果头域不能转换,抛出一个IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。
getHeader
public String getHeader(String name);
返回一个请求头域的值。(译者注:与上一个方法不同的是,该方法返回一个字符串)
如果这个请求头域不存在,这个方法返回-1。
getHeaderNames
public Enumeration getHeaderNames();
该方法返回一个String对象的列表,该列表反映请求的所有头域名。
有的引擎可能不允许通过这种方法访问头域,在这种情况下,这个方法返回一个空的列表。
getIntHeader
public int getIntHeader(String name);
返回指定的请求头域的值,这个值被转换成一个整数。
如果头域不能转换,抛出一个IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。
getMethod
public String getMethod();
返回这个请求使用的HTTP方法(例如:GET、POST、PUT)
getPathInfo
public String getPathInfo();
这个方法返回在这个请求的URL的Servlet路径之后的请求URL的额外的路径信息。如果这个请求URL包括一个查询字符串,在返回值内将不包括这个查询字符串。这个路径在返回之前必须经过URL解码。如果在这个请求的URL的Servlet路径之后没有路径信息。这个方法返回空值。
getPathTranslated
public String getPathTranslated();
这个方法获得这个请求的URL的Servlet路径之后的额外的路径信息,并将它转换成一个真实的路径。在进行转换前,这个请求的URL必须经过URL解码。如果在这个URL的Servlet路径之后没有附加路径信息。这个方法返回空值。
getQueryString
public String getQueryString();
返回这个请求URL所包含的查询字符串。一个查询字串符在一个URL中由一个\”?\”引出。如果没有查询字符串,这个方法返回空值。
getRemoteUser
public String getRemoteUser
返回作了请求的用户名,这个信息用来作HTTP用户论证。
如果在请求中没有用户名信息,这个方法返回空值。
getRequestedSessionId
public String getRequestedSessionId();
返回这个请求相应的session id。如果由于某种原因客户端提供的session id是无效的,这个session id将与在当前session中的session id不同,与此同时,将建立一个新的session。
如果这个请求没与一个session关联,这个方法返回空值。
getRequestURL
public String getRequestURL();
从HTTP请求的第一行返回请求的URL中定义被请求的资源的部分。如果有一个查询字符串存在,这个查询字符串将不包括在返回值当中。例如,一个请求通过/catalog/books?id=1这样的URL路径访问,这个方法将返回/catalog/books。这个方法的返回值包括了Servlet路径和路径信息。
如果这个URL路径中的的一部分经过了URL编码,这个方法的返回值在返回之前必须经过解码。
getServletPath
public String getServletPath();
这个方法返回请求URL反映调用Servlet的部分。例如,一个Servlet被映射到/catalog/summer这个URL路径,而一个请求使用了/catalog/summer/casual这样的路径。所谓的反映调用Servlet的部分就是指/catalog/summer。
如果这个Servlet不是通过路径匹配来调用。这个方法将返回一个空值。
getSession
public HttpSession getSession();
public HttpSession getSession(boolean create);
返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。如果调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。
为了确保session能够被完全维持。Servlet开发者必须在响应被提交之前调用该方法。
如果带入的参数为假,而且没有session与这个请求关联。这个方法会返回空值。
isRequestedSessionIdValid
public boolean isRequestedSessionIdValid();
这个方法检查与此请求关联的session当前是不是有效。如果当前请求中使用的session无效,它将不能通过getSession方法返回。
isRequestedSessionIdFromCookie
public boolean isRequestedSessionIdFromCookie();
如果这个请求的session id是通过客户端的一个cookie提供的,该方法返回真,否则返回假。
isRequestedSessionIdFromURL
public boolean isRequestedSessionIdFromURL();
如果这个请求的session id是通过客户端的URL的一部分提供的,该方法返回真,否则返回假。请注意此方法与isRequestedSessionIdFromUrl在URL的拼写上不同。
以下方法将被取消
isRequestedSessionIdFromUrl
public boolean isRequestedSessionIdFromUrl();
该方法被isRequestedSessionIdFromURL代替。