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 发送中文乱码解决方法

  1. 确定发送数据的编码
  2. 通知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的一些知识点的更多相关文章

  1. Servlet&JSP中的知识点

    先sun提出的是Servlet体系,这个体系使得使用JAVA的程序员也能开发基于B/S架构的WEB应用程序,使用Servlet类将HTTP请求和响应封装在标准JAVA类中来实现各种WEB应用方案.随着 ...

  2. 剑指Offer——知识点储备-J2EE基础

    剑指Offer--知识点储备-J2EE基础 9.2 jdk 1.8的新特性(核心是Lambda 表达式) 参考链接:http://www.bubuko.com/infodetail-690646.ht ...

  3. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  4. Java面试知识点总结及解析

    声明:有人说, 有些面试题很变态,个人认为其实是因为我们基础不扎实或者没有深入.本篇文章来自一位很资深的前辈对于最近java面试题目所做的总结归纳,有170道题目 ,知识面很广 ,而且这位前辈对于每个 ...

  5. Elementui实战知识点随记

    1. Elementui实战知识点随记 1.1. 表单验证 对于复杂数据,类似于对象里面包含数组,每个数组又包含多个对象,表单验证我查看了网上很多资料都说Elementui不支持,实际上,经过我官网的 ...

  6. web后台知识点整理

    五.JEE 适用于创建server端的大型的软件服务系统 1. JEE : JAVA  PLATFORM  ENTERPRISE  DEDITON 2.是一个规范集.技术集.框架集(API集) 一种技 ...

  7. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  8. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  9. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

随机推荐

  1. 使用 Git 同步时出现ssl错误

    错误提示 fatal: unable to access 'https://android.googlesource.com/platform/prebuilts/qemu-kernel/': gnu ...

  2. 存储过程中使用select……into

    在MySQL存储过程中使用SELECT -INTO语句为变量赋值: 用来将查询返回的一行的各个列值保存到局部变量中. 要求: 查询的结果集中只能有1行. SELECT col_name[,...] I ...

  3. Java动态代理学习【Spring AOP基础之一】

    Spring AOP使用的其中一个底层技术就是Java的动态代理技术.Java的动态代理技术主要围绕两个类进行的 java.lang.reflect.InvocationHandler java.la ...

  4. 纯CSS实现垂直居中的7种方法

    今天申请博客通过了,给大家讲讲我所看到过的纯css实现垂直居中的各种方法.为什么要把它作为第一篇文章呢?因为这是我刚开始接触前端学到的对我最有用的知识,希望大家也可以从中获益! 在CSS中实现水平居中 ...

  5. mui开发app前言(一)

    dcloud mui开发app前言 大一那会就听说html5快要发布了,前景无量,厉害到能写操作系统==|||(什么???蛤?) 似乎html5标准还没正式发布那会,使用hybrid模式开发app已经 ...

  6. 如何做到 Laravel 配置可以网站后台配置【社交系统ThinkSNS+研发日记四】

    距离上一次分享差不多一周了,本文分享下利用 Laravel 的 Bootstrapping 达到网站后台设置 laravel 配置. 需求场景 首先,ThinkSNS+ 作为一个用户可以使用的「社交系 ...

  7. OS作业模拟进程分配与回收

    OS的一个作业, 模拟进程的分配与管理 # initialize the memories and the process list(actually a dict) total_memory = 1 ...

  8. flex居中

    1.先把父元素display:flex 2.在父元素设置justify-content:center;水平居中 3.在父元素设置align-items:center;垂直居中 align-items ...

  9. nodejs之express4x

    学习node好榜样!前阵子看了php,那个模块化编译真的好棒.然而php学习起来不是一般的记不住,毕竟和js还是有不同的.于是转移到了node.看到熟悉的js脚本,心里踏实多了. 话不多讲,php我也 ...

  10. 【Oracle】控制文件管理

    /* 控制文件是oracle数据库最重要的物理文件之一,每个oracle数据库都必须有一个控制文件,在启动数据库实例时, oracle会根据初始化参数查找到控制文件的名称及位置信息,并读取控制文件的内 ...