Servlet (HttpServletResponse)对象
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)对象的更多相关文章
- Servlet HttpServletResponse对象、HttpServletRequest对象
HttpServletResponse对象(response)的常用方法 setCharacterEncoding("utf-8") //设置响应的编码字符集 setCont ...
- servlet中的HttpServletResponse对象
当有多个客户端浏览器去请求Tomcat时,Tomcat会为每一个客户端浏览器创建一对独立的HttpServletRequest与HttpServletResponse对象 HttpServletRes ...
- java web学习总结(七) -------------------HttpServletResponse对象(一)
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- JAVAWEB学习总结 HttpServletResponse对象(一)
Web服务器收到客户端(浏览器)的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象. request和response对象既然代表请求和响 ...
- HttpServletResponse对象 学习
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- JavaWeb---总结(七)HttpServletResponse对象(一)
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. request和response对象即然代表请求和响应,那我们 ...
- javaweb学习总结(七)——HttpServletResponse对象(一)
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
- 三HttpServletResponse对象介绍(1)
转载自http://www.cnblogs.com/xdp-gacl/p/3789624.html Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象 ...
- java web 学习七(HttpServletResponse对象1)
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...
随机推荐
- android UI:Fragment碎片
碎片(Fragment) 嵌入与活动中的UI片段,为了合理的分配布局而存在,这是我的简单理解.多用于兼顾手机与平板的UI,也适用于灵活高级的UI制作. Demo 简单的按键切换两片不同的Demo 新建 ...
- Neo4j使用Cypher查询图形数据
Neo4j使用Cypher查询图形数据,Cypher是描述性的图形查询语言,语法简单,功能强大,由于Neo4j在图形数据库家族中处于绝对领先的地位,拥有众多的用户基数,使得Cypher成为图形查询语言 ...
- 树莓派+tomcat+mysql安装及配置
0x00 系统:ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi 该版本中apt源在国内访问速度不算慢,可以不换,但软件包不完整,建议添加阿里云源 deb ...
- Kafka实战-KafkaOffsetMonitor
1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后,在开发的过程当中,我们会发现一些问题,那就是消息的监控情况.虽然,在启动Kafka的相关服务后,我 ...
- 【微收藏】FourShadows.js – 时间感知的算法驱动的图标阴影JS库
废话一箩筐,筐筐有心得 不小心养成了一个刷微博的习惯,主要还是关注一些前端人士,学习一些前端方面的知识,看到大家都有一些刷微博的小习惯.有的是转发一下,转发内容来一个标记(MARK).也有评论中标记为 ...
- FLV 封装格式解析
本文为作者原创,转载请注明出处:https://www.cnblogs.com/leisure_chn/p/10662941.html FLV (Flash Video) 是由 Adobe 公司推出的 ...
- python的Web框架,会话保持及Form表单
会话 从打开浏览器访问到关闭浏览器,这就是一次会话. cookie 技术 cookie是保存在浏览器的,安全度比较低. # 设置cookie范式,在view中设置 def index(request) ...
- GNU μC/OS-II 在 S3C2440 上中断的实现
上一篇文章介绍了S3c2440的中断体系结构,今天我们来分析一下GNU-uC/OS-II在S3c2440上中断的实现. 首先找到IRQ的中断的向量,位于 2440init.S : OK ,我们通过名字 ...
- .14-浅析webpack源码之Watchpack模块
解决掉了最头疼的DirectoryWatcher内部实现,这一节可以结束NodeWatchFileSystem模块. 关于watch的应用场景,仔细思考了下,这不就是热重载的核心嘛. 首先是监视文件, ...
- Umbraco 7 支持Microsoft Word 2013 发布内容
本文介绍如何使用Microsoft Word 2013 编写或编辑你的Blogs或新闻页面,甚至不需要打开浏览器, 我将分成两部分来讲. 概述 本例实采用的是Umbraco 7.2 版本,首页效果: ...