HttpServletRequest,HttpServletResponse都是接口,他们的实现是根据不同服务器的,tomcat有tomcat的实现,webLogic有webLogic的实现。所以,我们可以在doGet或者doPost等方法中直接使用HttpServletRequest和HttpServletResonse
1、HttpServletRequst接口方法:
String
getContextPath():返回web应用的上下文路径。如,浏览器访问URL为Http://localhost:8080/a/hello,那么这个方法返回的结果就是“/a”。
String getMethod(): 返回http请求方式,如GET、POST、HEAD等
Cookie[] getCookies(): 返回一个http请求中的Cookie数组。
String
getRequestURI():返回HTTP请求的头部的第一行的URI,是URL的一部分,并且没有被容器decode过。
String getRequestURL():返回URL。
*//
getRequestURI返回一个String,“the part of this request’s URL from
the protocol name up to the query string in the first line of the
HTTP request”,比如“POST /some/path.html?a=b
HTTP/1.1”,则返回的值为”/some/path.html”。现在可以明白为什么是getRequestURI而不是getRequestURL了,因为此处返回的是相对的路径。而getRequestURL返回一个StringBuffer,“The
returned URL contains a protocol, server name, port number, and
server path, but it does not include query string
parameters.”,完整的请求资源路径,不包括querystring。
*//
2、HttpServletResponse接口方法:
addHeader(String name,String value):想HTTP相应头中加入一项内容。
sendError(int src):向客户端发送一个代表特定错误的HTTP响应状态代码。
sendError(int src,String
msg):向客户发送一个代表特定错误的HTTP相应状态代码,并且发送具体的错误信息。
setHeader(String name,String
value):设置HTTP响应头中的一项内容,如果响应头中已经存在这项内容,那么原先的设置将被覆盖。
setStatus(int src):设置HTTP相应状态代码。
addCookies(Cookie cookie): 向HTTP响应中加入一个cookies。
sendRedirect(String url):
重定向,可以配合requet.getContextPath用。
3、HttpServlet类:
doGet(),doPost(),destroy(),Init(),
doHead():不返回信息主体,仅仅返回包含内容长度的头部信息。
doPut():该方法允许客户端将文件传至服务器上,例如通过FTP发送文件。默认返回结果是400或者405.
如果要支持PUT请求,必须在HttpServlet的子类中覆盖这一方法。
doDelete():该方法允许从服务器上一处文档或者页面。通常情况,不需覆盖此方法。
同时,在HttpServletResponse对象上,调用getWirter()方法,将会获得一个PrintWriter对象的引用。使用PrintWriter的print(),println(),write()等方法,可以向客户端发送字符串数据流。