1、setStatus(int status)方法:用于设置HTTP响应消息的状态码,并生成响应状态行。响应状态行中的状态描述信息直接与状态码相关,HTTP版本由服务器确定,因此只需要通过这个方法设置了状态码就可以实现状态行的发送。正常情况下,WEB服务器会默认产生一个状态码为200的状态行。

2、sendError(int sc)方法:用于发送表示错误信息的状态码,比如404状态码表示找不到客户端请求的资源。

  

public void sendError(int code)throws java.io.IOException    //只发送错误信息状态码

public void sendError(int code,String massage)throws java.io.IOException    //可以发送状态码和一条提示说明的文本信息,文本信息将出现在发送给客户端的正文内容中

3、响应状态码是一个三位的十进制数:

  (1)、static int SC_OK    代表状态码200。请求成功

  (2)、static int SC_FORBIDDEN  代表状态码403。服务器接收到请求,但是拒绝对请求进行处理

  (3)、static int SC_NOT_FOUND  代表状态码404。没有找到资源

  (4)、static int SC_CONFLICT    代表状态码409。请求的资源与当前状态冲突

  (5)、static int SC_MOVED_TEMPORARILY  代表状态码302。临时使用其他资源处理当前请求,但之后的请求还是使用原来的地址

  (6)、static int SC_INTERENAL_SERVER_ERROR  代表状态码500。服务器内部发生错误

  (7)、static int SC_HTTP_VERSION_NOT_SUPPORTED  代表状态码505。服务器不支持或拒绝支持请求行中给出的HTTP版本

  (8)、static int SC_BAD_REQUEST  代表状态码400。客户端发送的请求语法有错误

4、发送响应消息头相关的方法:addHeader()、setHeader()、addIntHeader()、setIntHeader()用于设置各种头字段。后三种用于设置字符编码。

  (1)、void addHeader(String name,String value)  

      void setHeader(String name,String value)  这两个方法都是用来设置HTTP的响应头字段。name和value分别代表响应头字段的名称和响应头字段的值。addHeader()方法可以增加同名的响应头字段;setHeader()方法会覆盖同名的响应头字段。

  (2)、void addIntHeader(String name,String value)

      void setIntHeader(String name,String value)  这两个方法专门用于设置包含整数值的响应头。避免了使用上面两个方法时需要将int类型转换为string类型的麻烦。

  (3)、void setContentLength(int len)  用于设置响应信息的实体内容大小,单位为字节。对于HTTP,这个方法就是设置ContentLenth响应头字段的值。

  (4)、void setContentType(String type)  用于设置Servlet输出内容的MIME类型,对于HTTP就是设置Content-Type响应头字段的值。

  (5)、void setLocale(Locale loc)  用于设置响应消息的本地化消息,对于HTTP就是设置Content-Language响应头字段和Content-Type头字段中的字符集编码部分。

  (6)、void setCharacterEncoding(String charset)  用于设置输出内容使用的字符编码,对于HTTP就是设置Content-Type头字段中的字符编码部分。

5、发送响应消息体相关的方法

  (1)、getOutputStream()方法:获取字节流输出对象为ServletOutputStream类型。输出二进制格式的响应正文就可使用这个方法。

  (2)、getWriter()方法:获取字符流输出对象为PrintWriter类型。输出内容全为字符文本的网页文档用此方法。

    PrintServlet.java

package top.zhangzimu.servlet;

import java.io.IOException;
import java.io.OutputStream; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class PrintServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String data = "Hello!";
OutputStream out = response.getOutputStream(); //获取输出流对象
out.write(data.getBytes()); //输出字符串消息 } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response); }
}

  web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>PrintServlet</servlet-name>
<servlet-class>top.zhangzimu.servlet.PrintServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>PrintServlet</servlet-name>
<url-pattern>/PrintServlet</url-pattern>
</servlet-mapping> </web-app>

修改PrintServlet.java中的代码

        String data = "Hello!";

        //OutputStream out = response.getOutputStream();
PrintWriter print = response.getWriter(); //out.write(data.getBytes());
print.write(data);

在浏览器中运行与之前的效果一致。

6、虽然这两个方法都可以发送响应消息体,但是他们之间互相排斥,不可以同时使用,否则会生 java.lang.IllegalStateException异常。(非法状态)

Servlet (HttpServletResponse)对象的更多相关文章

  1. Servlet HttpServletResponse对象、HttpServletRequest对象

    HttpServletResponse对象(response)的常用方法 setCharacterEncoding("utf-8")    //设置响应的编码字符集 setCont ...

  2. servlet中的HttpServletResponse对象

    当有多个客户端浏览器去请求Tomcat时,Tomcat会为每一个客户端浏览器创建一对独立的HttpServletRequest与HttpServletResponse对象 HttpServletRes ...

  3. java web学习总结(七) -------------------HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  4. JAVAWEB学习总结 HttpServletResponse对象(一)

    Web服务器收到客户端(浏览器)的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象. request和response对象既然代表请求和响 ...

  5. HttpServletResponse对象 学习

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  6. JavaWeb---总结(七)HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和响应,那我们 ...

  7. javaweb学习总结(七)——HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  8. 三HttpServletResponse对象介绍(1)

    转载自http://www.cnblogs.com/xdp-gacl/p/3789624.html Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象 ...

  9. java web 学习七(HttpServletResponse对象1)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

随机推荐

  1. 21天打造分布式爬虫-Spider类爬取糗事百科(七)

    7.1.糗事百科 安装 pip install pypiwin32 pip install Twisted-18.7.0-cp36-cp36m-win_amd64.whl pip install sc ...

  2. 对nginx中location的认识

    关于一些对location认识的误区 1.location的匹配顺序是“先匹配正则,在匹配普通”. location的匹配顺序其实是“先匹配普通,在匹配正则”.造成误解的原因是:正则匹配会覆盖普通匹配 ...

  3. Linux_CentOS-服务器搭建 <一>

    本人CentOS版本6.3 必备的两个小软件: 安装PUTTY远程控制linux的非常小但非常好用的小工具. 安装WINSCP,使用ssh实现我windows上和linux服务器上文件的互传. 呵呵, ...

  4. 11个教程中不常被提及的JavaScript小技巧

    这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略. 1.过滤唯一值 Set类型是在ES6中新增的,它类似于数组,但是 ...

  5. 面试:C++不可继承类

    面试中可能遇到让设计一个无法被继承的类.最简单的实现是将该类的构造函数设置为私有的,然后通过静态成员函数调用私有构造函数实例化对象,这样的类确实不可继承,但是使用起来非常不方便,必须使用静态成员实例化 ...

  6. 理解运用JS的闭包、高阶函数、柯里化

    JS的闭包,是一个谈论得比较多的话题了,不过细细想来,有些人还是理不清闭包的概念定义以及相关的特性. 这里就整理一些,做个总结. 一.闭包 1. 闭包的概念 闭包与执行上下文.环境.作用域息息相关 执 ...

  7. docker常用命令记录

    Docker官方镜像中心:https://hub.docker.com/explore/ 参考:慕课网docker视频教程 https://www.imooc.com/video/14625 1.启动 ...

  8. Scala字符串与容器

    String 前文已经说明了字符串的声明方式: var s = "Hello World"; var s: String = "Hello World"; 在 ...

  9. jQuery 【事件】【dom 操作】

    事件  hover( function(){},function(){})   --  鼠标移入移出事件   toggle(function(){},function(){},function(){} ...

  10. (1)Jquery1.8.3快速入门_helloworld

    jquery 快速入门 学习记录 1.第一个jquery程序 helloworld: 需要导入Jquery1.8.3的库 ,下载地址: jQuery1.8.3   代码令另存到本地 保存为jquery ...