目录
一、编码处理
-
编码处理的意义
解析:
1、为了解决项目中前后端交互后的数据乱码问题。
2、码表:文字/字母/字符 对应 数字(码表)
3、现在的码表都是对ASCll码表的扩展:0~127(已经定死不会改变)
4、常见码表:UTF-8 GBK GB2312 Big5 ISO-8859-1(西欧语言)
5、为了防止乱码情况出现,我们在项目中的编码统一为:UTF-8
tips:JavaWeb使用Request,Response 默认编码: ISO-8859-1 (不包含中文)
-
请求编码及响应编码
解析:
一、请求编码
1、请求流程如下:
2、get请求, 通过url
处理方式:
1. Tomcat 从8开始, 默认处理Get请求编码, 默认使用的编码: UTF-8
2. Tomcat7或者之前的, 没有处理Get请求编码
2.1、在server.xml 指定get请求编码: UTF-8
<Connector URIEncoding= "UTF-8" connectionTimeout= "20000" port= "8888" protocol= "HTTP/1.1" redirectPort= "8443" />
2.2、对所有的web服务器都有效, 通过代码处理
//1.打散
byte[] bytes = name.getBytes("UTF-8");
//2.组装成字符串
name = new String(bytes,"UTF-8");3、post请求, 通过请求体
post请求编码, 调用request.setCharacterEncoding("UTF-8");
二、响应编码
1、设置格式如下:
response.setCharacterEncoding(“utf-8”);
该步一般不会写,因为在下面的调用中已经默认会调用setCharacterEncoding,除非下面的方法调用了之后,前端还是出现???的乱码,才会把上述加上。
response.setContentType("text/html;charset=UTF-8");
使用总结:一、在Servlet使用之前把request.setCharacterEncoding("UTF-8");及response.setContentType("text/html;charset=UTF-8");代码在获取参数之前, 响应数据之前, 作为servlet前两行代码,可保证前后端不会出现乱码现象。
二、上述都加了还出现乱码再加上response.setCharacterEncoding(“utf-8”);
二、Jsp
-
Jsp的概述
解析:
1、html无法访问域对象, 域对象是java对象, 如果想访问域对象, java的代码, JavaEE 提供了jsp
2、JSP包含HTML与java脚本, 作为展示, jsp也是一个动态资源, 浏览器无法直接访问, 浏览器请求jsp, 需要web服务器,执行jsp的代码, 执行之后的结果转换静态的html,响应给浏览器
3、jsp的java脚本写法:
3.1、 <% %>: java方法能写的代码,都可以写在它内部
3.2、 <%= %> : 表达式, 表达式的结果在页面展示
3.3、 <%! %> : 定义属性,定义方法4、jsp九大内置对象(重点)
内置对象: 不需要创建,可以直接使用
四大域对象: pageContext, request,session,application
响应对象: response
响应流对象: out
配置对象: config
表示this: page
异常对象: exception
-
html 转换为jsp
1.创建一个jsp页面, 文件名与对应html文件名一样
2.把html页面的所有内容拷贝到jsp, 从<%@ page%> 之后
3.把相对路径转换为绝对路径, 项目设置发布项目名: / 绝对路径: 全部以 /开头
特别注意:如果设置发布项目名: /xx 绝对路径: /xx开头, /xx动态获取: <%=request.getContextPath()%>
三、Cookie
-
Cookie的概述
解析:
1、Cookie翻译成中文是小甜点,小饼干的意思。在HTTP中它表示服务器送给客户端浏览器的小甜点。
2、其实Cookie就是一个键和一个值构成的,随着服务器端的响应发送给客户端浏览器。然后客户端浏览器会把Cookie保存起来