A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘柠华 初级黑马   /  2019-5-9 13:58  /  462 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

## Response&ServletContext今日目标

#### 1. 能够处理响应乱码

- 产生乱码的根本原因:

  > 两边的编码不一致

- 响应:

  - 字符流:

    ```java
    response.getWriter().write("响应内容");
    ```

  - 中文乱码问题:

    > 服务器端:由于response对象是由Tomcat创建的,response.getWriter()间接的是由Tomcat获取的一个字符流,所有跟Tomcat相关的编码都是ISO-8859-1,但是浏览器是用的本地系统的编码GB2312,所以两边的编码不一致

    - 解决:

      ```java
      //1. 设置了流的编码  2.让浏览器以utf-8的解码
      response.setContentType("text/html;charset=utf-8")   
      ```

  - 字节流:

    - 乱码产生不一定

      ```java
      //String中getBytes(defaultEncode)默认编码是根据操作系统来的  gbk
      response.getOutputStream().write("数据".getBytes());
      ```

    - 解决乱码:

      - 保障服务器端的中文数据的解码为utf-8   :

        ```java
        response.getOutputStream().write("数据".getBytes("utf-8"));
        ```

      - 告诉浏览器用utf-8的编码打开

        ```java
        response.setContentType("text/html;charset=utf-8")
        ```

  > 字符流通常情况下用来输出字符相关的数据   
  >
  > 字节流通过情况下用来输出  图片,视频,音频,文件...

#### 2. 能够完成文件下载案例

#### 3. 能够使用ServletContext对象读取文件

#### 4. 能够使用ServletContext作为域对象存取值

#### 5. 能够说出会话的概念





### 今日要求:

1. 手写重定向和转发的特点与区别

2. 明确什么是相对路径与绝对路径

   > 开发中明确使用绝对路径:什么时候使用虚拟目录?
   >
   > 判断是给客户端用还是给服务器用

   客户端:html,jsp,重定向    ----加虚拟目录

   服务器: 请求转发

   - 虚拟目录一定要动态获取:request.getContextPath()

3. 向浏览器端响应内容-响应体

   - 字符流
   - 字节流

4. 验证码案例

   > 掌握的是如何使用字节流输出一张图片到浏览器
   >
   > 验证码图片如何用代码实现出来的-----仅作为了解  扩展学习

5. ServletContext

   1. 获取MIME类型  this.getServletContext().getMimeType("filename")
   2. 作为域对象使用  
   3. 获取文件的真实路径

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马