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的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...
随机推荐
- 使用 Git 同步时出现ssl错误
错误提示 fatal: unable to access 'https://android.googlesource.com/platform/prebuilts/qemu-kernel/': gnu ...
- 存储过程中使用select……into
在MySQL存储过程中使用SELECT -INTO语句为变量赋值: 用来将查询返回的一行的各个列值保存到局部变量中. 要求: 查询的结果集中只能有1行. SELECT col_name[,...] I ...
- Java动态代理学习【Spring AOP基础之一】
Spring AOP使用的其中一个底层技术就是Java的动态代理技术.Java的动态代理技术主要围绕两个类进行的 java.lang.reflect.InvocationHandler java.la ...
- 纯CSS实现垂直居中的7种方法
今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...
- mui开发app前言(一)
dcloud mui开发app前言 大一那会就听说html5快要发布了,前景无量,厉害到能写操作系统==|||(什么???蛤?) 似乎html5标准还没正式发布那会,使用hybrid模式开发app已经 ...
- 如何做到 Laravel 配置可以网站后台配置【社交系统ThinkSNS+研发日记四】
距离上一次分享差不多一周了,本文分享下利用 Laravel 的 Bootstrapping 达到网站后台设置 laravel 配置. 需求场景 首先,ThinkSNS+ 作为一个用户可以使用的「社交系 ...
- OS作业模拟进程分配与回收
OS的一个作业, 模拟进程的分配与管理 # initialize the memories and the process list(actually a dict) total_memory = 1 ...
- flex居中
1.先把父元素display:flex 2.在父元素设置justify-content:center;水平居中 3.在父元素设置align-items:center;垂直居中 align-items ...
- nodejs之express4x
学习node好榜样!前阵子看了php,那个模块化编译真的好棒.然而php学习起来不是一般的记不住,毕竟和js还是有不同的.于是转移到了node.看到熟悉的js脚本,心里踏实多了. 话不多讲,php我也 ...
- 【Oracle】控制文件管理
/* 控制文件是oracle数据库最重要的物理文件之一,每个oracle数据库都必须有一个控制文件,在启动数据库实例时, oracle会根据初始化参数查找到控制文件的名称及位置信息,并读取控制文件的内 ...