HttpServletResponse接口是ServletResponse的子接口,HttpServlet类的重载service()方法及doGet()和doPost()等方法都有一个HttpServletResponse类型参数:
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
HttpServletResponse 接口提供了与 HTTP 协议相关的一些方法,Servlet 可通过这些方法来设置HTTP响应头或向客户端写Cookie。
addHeader(String name, String value):向HTTP响应头中加入一项内容。
sendError(int sc):向客户端发送一个代表特定错误的HTTP响应状态代码。
sendError(int sc, String msg):向客户端发送一个代表特定错误的HTTP响应状态代码,并且发送具体的错误消息。
setHeader(String name, String value):设置HTTP响应头中的一项内容。如果在响应头中已经存在这项内容,那么原先所做的设置将被覆盖。
setStatus(int sc):设置HTTP响应的状态代码。
addCookie(Cookie cookie):向HTTP响应中加入一个Cookie。
在HTTPServletResponse接口中定义了一些代表HTTP响应状态代码的静态常量,如下所示。
HTTPServletResponse. SC_BAD_REQUEST:对应的响应状态代码为400。
HTTPServletResponse. SC_FOUND:对应的响应状态代码为302。
HTTPServletResponse. SC_METHOD_NOT_ALLOWED:对应的响应状态代码为405。
HTTPServletResponse. SC_NON_AUTHORITATIVE_INFORMATION:对应的响应状态代码为203。
HTTPServletResponse. SC_FORBIDDEN:对应的响应状态代码为403。
HTTPServletResponse. SC_NOT_FOUND:对应的响应状态代码为404。
HTTPServletResponse. SC_OK:对应的响应状态代码为200。
例程4-4的HelloServlet类的doGet()方法先得到username请求参数,对其进行中文字符编码转换,然后判断username参数是否为null。如果满足条件,就直接返回一个代表特定错误的 403 响应状态代码;否则,就通过 HttpServletResponse 对象的getWriter()方法得到一个PrintWriter对象,然后通过PrintWriter对象来输出一个HTML文档。