更新时间:2021-02-01 07:03
ServletRequest由Servlet容器来管理,当客户请求到来时,容器创建一个ServletRequest对象,封装请求数据,同时创建一个ServletResponse对象,封装响应数据。这两个对象将被容器作为service()方法的参数传递给Servlet,Servlet利用ServletRequest对象获取客户端发来的请求数据,利用ServletResponse对象发送响应数据。
interface ServletRequest
在javax.servlet包中。
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
覆盖在请求正文中所使用的字符编码的名字。
ServletRequest 和 HttpServletRequest区别
servletRequest是接口,httpServletRequest是实现,但是有些方法是httpServletRequest独有的,比如getSession().。
HttpServletRequest接口是继承自ServletRequest接口的。增加了和HTTP相关的一些方法。而所谓request(在JSP中使用的)其实只是规范中的一个名称而已。它当然是一个对象,但并不是SUN提供的,这是由各个不同的Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体是什么类是由各个提供商自己决定的。