Review——第一次知识回顾
Review——1
编码设置
//post提交方式下的设置编码,防止中文乱码
request.setCharacterEncoding("utf-8");
//get提交方式,tomcat8 开始,编码不需要设置
//tomcat8 之前,get 方式设置比较麻烦
String fname = request.getParameter("fname");
byte[] bytes = fname.getBytes("iso-8859-1");
fname = new String(bytes,"UTF-8");
Servlet 继承关系以及生命周期
-
Servlet 接口:init(),service(),destory(),
-
GenericServlet抽象子类:abstract service();
-
HttpServlet 抽象子类:
- 实现了 service 方法,在 service 内部通过 request.getMethod() 来判断请求的方式,然后根据请求的方式去调用内部的 do 方法
- 每一个 do 方法都进行了简单实现,主要是如果请求方式不符合,泽报 405 错误。
- 目的是让我们的 Servlet 子类去重写对应的方法(如果重写的不对,则使用父类的 405 错误实现)
-
-
生命周期:实例化、初始化、服务、销毁
- tomcat 负责维护 Servlet 实例的生命周期
- 每个 Servlet 在 Tomcat 容器中只有一个实例,它是线程不安全的
- Servlet 的启动时机:
数值越小,则越先启动,最小是0 - Servlet 从 3.0 开始支持注解:@WebServlet
HTTP 协议
- 有 Request 和 Response 两部分组成
- 请求包含了三部分:请求行、请求消息行、请求主体
- 请求主体:get 方式没有请求主体,post 方式 - form data ,json 方式 - request payload ( 请求负载 ),普通 get - query string
- 响应:响应行、相应消息头、响应主体
-
HttpSession
- HttpSession :表示 会话
- 为什么需要 HttpSession ,原因是 HTTP 协议是无状态的
- Session 保存作用域 :一次会话范围都有效;void session.setAttribute( key , value ) ,object session.getAttribute( key )
- 其他的 API :session.getId() ,session.isNew() ,session.getCreationTime() ,session.invalidate() 强制使某个 session 会话失效, 等
-
服务器端转发和客户端重定向
- 服务器端转发(内部跳转):request.getRequestDispatcher("index.html").forward(request,response); 浏览器地址栏不变,服务器内部执行
- 客户端重定向 :response.sendRedirect("index.html"); 服务器地址栏变化,外部执行
-
thymeleaf 的部分标签
-
使用步骤:添加 jar 包 ,新建 ViewBaseServlet (有两个方法),配置两个
:view-prefix 前缀、view-suffix 后缀 -
部分标签:
<th:if> <th:unless> <th:each> <th:text>
-