ServletResponse的一些知识点
ServletResponse
* 服务器对浏览器做出的响应,将需要发送给浏览器的所有数据全部存放在此对象上。
* 发送数据,使用流操作,将所需要的数据,存放在指定的流中,数据将显示到浏览器中
* 字符流
* response.getWriter();
* 字节流
* response.getOutputStream();
* 当使用getOutputStream时,不能使用getWriter
* getOutputStream() has already been called for this response
* 当使用getWriter时,不能使用getOutputStream
* getWriter() has already been called for this response
* 总结:两个流同时只能使用一个
* 字节流:getOutputStream,一般在程序中使用具有拷贝功能等
* 发送中文
* 不能使用out.print(data) 发送中文数据
* 异常信息:java.io.CharConversionException Not an ISO 8859-1 character: 中
*需要使用out.write(data.getBytes("UTF-8"));发送中文数据
* 字符流:getWriter,一般在程序中发送数据内容
* 发送中文
* out.println("中文");
* 乱码【****】
* response.setContentType("text/html;charset=utf-8");
* 通知tomcat和浏览器发送数据的编码
* 注意:
* 设置编码时,必须放置在需要输出语句之前,建议放置在doGet或doPost第一行
*实例:cn.itcast.response.FormServlet
请求和响应的图解
当使用getOutputStream时,不能使用getWriter 会报非法异常
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//当使用getOutputStream时,不能使用getWriter
// * getOutputStream() has already been called for this response
//当使用getWriter时,不能使用getOutputStream
// * getWriter() has already been called for this response
//总结:两个流同时只能使用一个 //字节流
ServletOutputStream out = response.getOutputStream();
out.print("abc"); //字符流
PrintWriter writer = response.getWriter();
writer.print("123"); }
response 发送中文乱码解决方法
- 确定发送数据的编码
- 通知tomcat和浏览器发送数据的编码两者统一 uTF-8
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { //确定发送数据的编码,通知tomcat和浏览器发送数据的编码,两者统一 uTF-8
response.setContentType("text/html;charset=utf-8"); //将在http响应头中添加,content-type:text/html;charset=utf-8 //使用字节流 发送中文数据
ServletOutputStream out = response.getOutputStream();
String data = "中文";
// * 发送数据
out.write(data.getBytes("UTF-8")); }
使用字符流:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置响应浏览器的字符编码 : 通知tomcat和浏览器,当前servlet发送的数据的编码
response.setContentType("text/html;charset=UTF-8"); //发送中文数据 --“中文”
String data = "中文";
//字节流
ServletOutputStream out = response.getOutputStream();
//out.print(data); 不能发送中文数据 java.io.CharConversionException Not an ISO 8859-1 character: 中
out.write(data.getBytes("UTF-8")); }
使用response向浏览器发送一个表单:
public class FormServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { //将表单书发送给浏览器
// * 确定发送数据的编码
response.setContentType("text/html;charset=UTF-8");
// * 获得字符流
PrintWriter out = response.getWriter();
// * 发送数据
out.println("<form action=\"#\" method=\"post\">");
out.println("名称:<input type='text' name='username' value='凤姐'> <br/>");
out.println("密码:<input type='password' name='userpwd'> <br/>");
out.println("<input type='submit' value='提交' />");
out.println(" </form>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//当使用getOutputStream时,不能使用getWriter
// * getOutputStream() has already been called for this response
//当使用getWriter时,不能使用getOutputStream
// * getWriter() has already been called for this response
//总结:两个流同时只能使用一个
//字节流
ServletOutputStream out = response.getOutputStream();
out.print("abc");
//字符流
// PrintWriter writer = response.getWriter();
// writer.print("123");
}
response中文乱码问题:
response 使用字节流发送数据:
ServletResponse的一些知识点的更多相关文章
- Servlet&JSP中的知识点
先sun提出的是Servlet体系,这个体系使得使用JAVA的程序员也能开发基于B/S架构的WEB应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种WEB应用方案.随着 ...
- 剑指Offer——知识点储备-J2EE基础
剑指Offer--知识点储备-J2EE基础 9.2 jdk 1.8的新特性(核心是Lambda 表达式) 参考链接:http://www.bubuko.com/infodetail-690646.ht ...
- Java 面试知识点解析(七)——Web篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- Java面试知识点总结及解析
声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个 ...
- Elementui实战知识点随记
1. Elementui实战知识点随记 1.1. 表单验证 对于复杂数据,类似于对象里面包含数组,每个数组又包含多个对象,表单验证我查看了网上很多资料都说Elementui不支持,实际上,经过我官网的 ...
- web后台知识点整理
五.JEE 适用于创建server端的大型的软件服务系统 1. JEE : JAVA PLATFORM ENTERPRISE DEDITON 2.是一个规范集.技术集.框架集(API集) 一种技 ...
- ASP.NET Core 中的那些认证中间件及一些重要知识点
前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...
- ASP.NET MVC开发:Web项目开发必备知识点
最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...
- UWP开发必备以及常用知识点总结
一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...
随机推荐
- ARP与RARP协议及arp脚本
1.什么是ARP与RARP协议 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议. 在⽹络通讯时,源主机的应⽤程序知道 ...
- [入门向选讲] 插头DP:从零概念到入门 (例题:HDU1693 COGS1283 BZOJ2310 BZOJ2331)
转载请注明原文地址:http://www.cnblogs.com/LadyLex/p/7326874.html 最近搞了一下插头DP的基础知识……这真的是一种很锻炼人的题型…… 每一道题的状态都不一样 ...
- nio系列(一)---nio重要组成
nio重要组成部分 前言:通过本文可以了解nio的重要组成部分,了解完基础的内容后后面理解才会简单一点.下一篇会讲讲nio的应用和io的对比.如果有不正确的地方还望指正. channel chanel ...
- 似是而非的JS - 异步调用可以转化为同步调用吗?
源起 小飞是一名刚入行前端不久的新人,因为进到了某个大公司,俨然成为了学弟学妹眼中'大神',大家遇到js问题都喜欢问他,这不,此时他的qq弹出了这样一条消息 "hi,大神在吗?我有个问题想问 ...
- .Net Core下使用WCF
在.net core 下的wcf 和framework下的wcf使用方式有点不太一样.在core下用wc,需要安装VS扩展Visual Studio WCF Connected Service,目前这 ...
- win7(iis7)localhost可以访问127.0.0.1不可以访问的问题解决办法
在C:\Windows\System32\drivers\etc文件夹下有hosts文件,用编辑器打开,看看有没有配置127.0.0.1 localhost 把前面的#去掉保存即可!
- imshow显示超大图像
在matlab做图像处理时,有些图片比较大,或者自己的显示器比较小,又要求查看完整的图片怎么办呢? 如果使用imshow直接显示,则显然没法达到要求.最好的办法还是滚动条: hFig = figure ...
- ctrl+c 和 ctrl+z 的区别
ctrl+c 和 ctrl+z 的区别 ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样. ctrl+c是强制中断程序的执行, 而ctrl+z的是将任务中断,但是此任务并没有结束,他仍然 ...
- tomcat运行时JVM参数调整
进入tomcat/bin目录 catalina.bat 中加入set JAVA_OPTS=-Xms210m -Xmx256m -Xmn70m -XX:PermSize=150m -XX:MaxPerm ...
- BotVS开发基础—2.5 策略交互
一.代码部分 isOpen = False; # 是否 开仓 price = 0; # 全局变量 价格 amount = 0; # 全局变量 下单量 def exec_command(command) ...