Servlet 学习笔记(三)
学习内容来自 B站千峰Java视频
Servlet 生命周期
生命周期四个阶段:
-
实例化

-
初始化

-
服务

-
销毁

整个流程

Servlet 特性
线程安全问题

如何保证线程安全

也不建议使用 synchronized,高并发场景下性能损失太大
所以最好使用局部变量
状态管理
现有问题

概念
状态管理是指将浏览器与 web 服务器之间多次交互当作一个整体来处理,并且将多次交互所涉及的数据(即状态)保存下来
状态管理分类

Cookie
概念


创建 Cookie

获取 Cookie

修改 Cookie
只要保证新添加的 Cookie 与已有 Cookie 的名和路径一致即可修改 Cookie

注意:如果修改 Cookie 的名或者路径会新建一个 Cookie,而改变 Cookie 值会覆盖原有的 Cookie
Cookie 编码与解码

创建带中文的 Cookie:

如果不指定编码格式直接使用中文则会报错
读取带中文 Cookie

Cookie 优点和缺点
优点:

缺点:

Session
概念
原理
Session 是服务器创建的

在同一会话(一般是浏览器关闭之前的连续多次请求)中,共用一个 Session
Session 使用

获取 Session

Session 保存数据

Session 获取数据

Session 移除数据

Session 与 Request 区别

Session 的生命周期

ServletContext 对象
概述

获取 ServletContext 对象

ServletContext 作用
-
获取项目真实路径

-
获取项目上下文路径

-
全局容器

ServletContext 特点

应用场景
比如统计当前项目访问次数
作用域总结

过滤器
现有问题

概念


过滤器作用

编写过滤器

编写 Filter 类
@WebFilter(value = "/t") // 拦截路径
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("--MyFilter--");
// 让请求继续
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("--end--");
}
@Override
public void destroy() {
}
}
编写 Servlet 类
@WebFilter(value = "/t")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("--MyFilter--");
// 让请求继续
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("--end--");
}
@Override
public void destroy() {
}
}
过滤器配置
注解配置
在上面的例子中就使用了注解配置

xml 配置
在 web.xml 中进行配置

拦截路径

过滤器链和优先级
过滤器链


过滤器优先级

最简洁的就是只配置注解方式的过滤器
典型应用
-
解决中文乱码问题,使用过滤器拦截所有需要显示或者输入中文内容的请求

-
权限验证,使用过滤器拦截所有需要验证权限的请求
本文档详细介绍了Servlet的生命周期过程,探讨了线程安全问题及解决方案,涵盖了Cookie和Session的状态管理,以及过滤器的概念、配置和典型应用。
945

被折叠的 条评论
为什么被折叠?



