黑马程序员技术交流社区
标题:
就业WEB
[打印本页]
作者:
刘柠华
时间:
2019-5-9 13:58
标题:
就业WEB
## 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. 获取文件的真实路径
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2