Java Web 回顾总结(五) - HttpServlet - Response - 5.1 发送数据
2018-03-20 16:46
501 查看
Web服务器收到客户端的
接下来我们就将回顾 ,
该 对象中封装的方法有:
将要向客户端发送的
数据
响应头
响应状态码
可以得知 的是该接口 实现了更底层的
如果字符编码已经在
调用
等价于
可重复调用 ,但如果在调用
如果协议为此提供了方法,那么容器必须将
在 HTTP 中, 这个编码
但是这个方法使用 之前应该先设置
字符编码可能已使用
显式规范优先于隐式规范
调用 getWriter 后对这些方法所做的调用或在响应已提交后对字符编码没有影响。如果未指定字符编码, 则返回 ISO-8859-1
如果没有如
在
Throws:
在
Throws:
但是可以使用
http请求,会针对每一次请求,分别创建一个用于请求的
request对象、和 用于响应的
response对象。
接下来我们就将回顾 ,
HttpServletResponse响应接口
HttpServletResponse
HttpServletResponse 接口来 表示服务器的响应。
该 对象中封装的方法有:
将要向客户端发送的
数据
响应头
响应状态码
可以得知 的是该接口 实现了更底层的
ServletResponse
发送数据的方法
基本都来自于ServletResponse方法
1. 设置 和 得到 数据编码
方法 | 作用 |
---|---|
void setCharacterEncoding(java.lang.String charset) | 设置发送给客户端的响应的字符编码(MIME字符集 |
setContentType(java.lang.String)或者
setLocale(java.util.Locale)中设置 , 该方法会覆盖以上设置 .
调用
setContentType(text/html)和 用 UTF-8 字符串传参
等价于
setContentType(text/html; charset=UTF-8)
可重复调用 ,但如果在调用
getWriter之后或在提交响应之后 调用此方法,则此方法不起作用。
如果协议为此提供了方法,那么容器必须将
servlet的字符编码传达给客户端。
在 HTTP 中, 这个编码
set用于 设置
Content-Type返回头中的文本类型
但是这个方法使用 之前应该先设置
servlet的编码
方法 | 作用 | 返回 |
---|---|---|
java.lang.String getCharacterEncoding() | 返回用于在此响应中发送的正文的字符编码 (MIME 字符集) 的名称。 | 返回文本的编码 |
setCharacterEncoding (java.lang.String)或
setContentType (java.lang.String)方法显式指定, 或者隐式使用
setLocale (java.util.locale)方法。
显式规范优先于隐式规范
调用 getWriter 后对这些方法所做的调用或在响应已提交后对字符编码没有影响。如果未指定字符编码, 则返回 ISO-8859-1
2. 返回数据
方法 | 作用 |
---|---|
java.io.PrintWriter getWriter() | 返回 一个java.io.PrintWriter对象,该对象可以储存发送给客户端的文本。 |
PrintWriter中文本编码 将使用
getCharacterEncoding()返回的编码
如果没有如
getCharacterEncoding()中返回 的 响应的字符编码(即该方法仅返回默认值ISO-8859-1),
getWriter()编码更新为
ISO-8859-1.
在
PrintWriter中 调用
flush()提交 返回
throw java.io.IOException
Throws:
UnsupportedEncodingException- 如果由
getCharacterEncoding返回的字符编码不能使用
IllegalStateException- 如果已经为此响应对象调用了
getOutputStream方法
java.io.IOException- 如果发生输入或输出异常
方法 | 作用 |
---|---|
ServletOutputStream getOutputStream() | 返回 ServletOutputStream对象 ,该对象能写二进制数据流 |
servlet容器 不支持二进制编码
在
ServletOutputStream中 调用
flush()来提交 返回
throws java.io.IOException
Throws:
IllegalStateException- 如果在此响应中调用了
getWriter方法
java.io.IOException- 如果输入输出发生异常
示例:
[b]getWriter()和
getOutputStream()这俩种方法不可以在同一返回 中都用来编写
body[/b]
但是可以使用
flush()来同时使用
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setCharacterEncoding("UTF-8"); PrintWriter pw = response.getWriter(); pw.append("Servlet at " + request.getContextPath() + "<hr/> charset : " + response.getCharacterEncoding()); // ServletOutputStream outstream = response.getOutputStream(); // byte b = 0; // outstream.write(b); }
相关文章推荐
- Java Web 回顾总结(五) - HttpServlet - Response - 5.3.3 验证码生成
- Java Web 回顾总结(五) - HttpServlet - Response - 5.3.2 浏览器下载文件
- Java Web 回顾总结(五) - HttpServlet - Response - 5.2 响应状态码表
- Java Web 回顾总结(五) - HttpServlet - Response - 5.2 设置响应头
- Java Web 回顾总结(五) - HttpServlet - Request - 重定向 与 请求转发
- Java Web 回顾总结(五) - HttpServlet - Request - 开发常用方法总结
- Java Web 回顾总结(五) - HttpServlet - Request - 常用方法手册
- JavaWeb_Day10_学习笔记1_response(3、4、5、6、7、8、9)发送状态码、响应、重定向、定时刷新、禁用浏览器缓存、响应字节数据、快捷重定向方法、完成防盗链
- JavaWeb开发知识总结(HttpServletRequest,HttpServletResponse)
- java web 接收发送json格式的数据
- JavaWeb 提交中文数据乱码问题总结
- 【整理】Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据
- JavaWeb:Request和Response总结
- Java Web 回顾总结(二) - Tomcat 安装,启动
- javaWeb开发总结 ---- 前端数据插入到后台
- javaweb使用json发送数据
- JavaWeb——JSP内置对象request,response,重定向与转发 学习总结
- Java Web 回顾总结(二) - Tomcat 配置
- JavaWeb开发回顾总结【不断更新中】
- Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据