ServletRequest接口和HttpServletRequest接口
简述:
在Servlet接口中的service(ServletRequest request , ServletResponse response)方法中有一个ServletRequest类型的参数。ServletRequest类表示来自客户端的请求。当Servlet容器接收到客户端要求访问特定Servlet的请求时,容器先解析客户端的原始请求数据,把它包装成一个ServletRequest对象。当容器调用Servlet对象的service()方法时,就可以把ServletRequest对象作为参数传给service()方法。
HttpServletRequest接口
HttpServletRequest接口是ServletRequest接口的子接口。
HttpServlet类的重载service()方法及doGet()和doPost()等方法都有一个HttpServletRequest类型的参数,如:
-
protected void service(HttpServletRequest req, HttpServletResponse resp)
-
throws ServletException, IOException{……..}
响应方法
HttpServletRequest接口提供了用于读取HTTP请求中的相关信息的方法:
1)getContextPath():返回客户端所请求访问的web应用的URL入口。例如,如果客户端访问的URL为http://localhost:8080/helloapp/info,那么该发放返回“/helloapp”。
2)getCookies():返回HTTP请求中的所有的Cookie。
3)getHeader(String name):返回HTTP请求头部的特定项。
4)getHeaderNames():返回一个Enumeration对象,它包含了HTTP请求头部的所有项目名。
5)getMethod():返回HTTP请求方式,如post,或get。
6)getRequestURI():返回HTTP请求的头部的第1行中的URI。
7)getQueryString():返回HTTP请求中的查询字符串,即UTL中的“?”后面的内容。例如,如果客户端访问的URL为
http://localhost:8080/htlloapp/info?username=tom
,那么该方法返回“username=tome”。
根据SUN的Servlet
API来创建的Servlet,无需费力的解析原始HTTP请求。解析原始HTTP请求的工作完全由Servlet容器来代劳。Servlet容器把HTTP请求包装成HttpServletRequest对象,Servlet只需调用该对象的getXXX()方法,节能轻轻松松地读取到HTTP请求中的各种数据。