Javaweb核心之response
来源:互联网 发布:韩国语打字软件 编辑:程序博客网 时间:2024/06/06 02:51
response对象
1.response对象包含了响应客户请求的有关信息,它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面是,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。
2.response的运行流程
3.通过抓包工具抓取Http响应
因为response代表响应,所以我们可以通过该对象分别设置Http响应的响应行,响应头和响应体
4.通过response设置响应行
设置响应行的状态码
setStatus(int sc)
5.通过response设置响应头
addHeader(String name, String value)
addIntHeader(String name, int value)
addDateHeader(String name, long date)
setHeader(String name, String value)
setDateHeader(String name, long date)
setIntHeader(String name, int value)
其中,add表示添加,而set表示设置
6.通过response设置响应体
(1)响应体设置文本PrintWriter getWriter()
获得字符流,通过字符流的write(String s)方法可以将字符串设置到response缓冲区中,随后Tomcat会将response缓冲区中的内容组装成Http响应返回给浏览器端。
关于设置中文的乱码问题
原因:response缓冲区的默认编码是iso8859-1,此码表中没有中文,可以通过
response的setCharacterEncoding(String charset) 设置response的编码
但我们发现客户端还是不能正常显示文字
原因:我们将response缓冲区的编码设置成UTF-8,但浏览器的默认编码是本地系统的编码,因为我们都是中文系统,所以客户端浏览器的默认编码是 GBK,我们可以手动修改浏览器的编码是UTF-8。
我们还可以在代码中指定浏览器解析页面的编码方式, 通过response的setContentType(String type)方法指定页面解析时的编码是UTF-8
response.setContentType("text/html;charset=UTF-8");
上面的代码不仅可以指定浏览器解析页面时的编码,同时也内含setCharacterEncoding的功能,所以在实际开发中只要编写 response.setContentType("text/html;charset=UTF-8");就可以解决页面输出中文乱码问题。
(2)响应头设置字节
ServletOutputStream getOutputStream() 获得字节流,通过该字节流的write(byte[] bytes)可以向response缓冲区中写入字节,在由Tomcat服务器将字节内容组成Http响应返回给浏览器。
要注意的小问题:
默认的response对象的输出字符 是要先于 out对象在浏览器中输出字符的显示
解决方法:在out对象后面加上out.flush()方法 将out对象里面的字符强行写入缓冲区就可以了
阅读全文
0 0
- Javaweb核心之response
- javaweb之response细节
- javaWeb之response
- JavaWeb核心之Servlet
- Javaweb核心之Servlet
- Javaweb核心之request
- Javaweb核心之jsp
- javaweb之response重定向
- JavaWeb之Request && Response篇
- javaweb之response、request对象
- Javaweb基础之response&request
- Javaweb核心之session&cookie
- Javaweb核心之el&jstl
- Javaweb核心之Ajax&json
- JavaWeb学习篇之----容器Response详解
- JavaWeb学习篇之----容器Response详解
- JavaWeb之Servlet中的response对象
- day08-JavaWeb之http协议request-response
- pySpark读写CSV文件、查重并写入CSV文件中
- Java中获取指定日为星期几及其他日期操作
- Bagging和随机森林
- 判断回文字符序列-栈的使用
- 排序算法的稳定性
- Javaweb核心之response
- 目标文件--简介
- iOS开发——我的知识点记录
- vi 多文件间数据拷贝
- spring boot项目打包成war并在tomcat上运行
- 《CS-APP》二进制炸弹实验(phase_1-3)
- MySql 允许任意ip进行访问,配置方法。
- C++文件操作——Unicode下有关字符类型转换(CString,string,char*)
- Android抽奖轮盘