1、Cookie
1.1什么是Cookie
-
Cookie是在浏览器访问Web服务器的某个资源时,由Web
服务器
在HTTP响应消息头
中附带传送给浏览器
的一小段数据
。 -
一旦Web浏览器保存了某个Cookie,那么它在以后每次访问该Web服务器时,都应在HTTP请求头中将这个Cookie回传给Web服务器。
-
一个Cookie主要由标识该信息的名称(name)和值(value)组成
1.2使用流程
在服务器中创建Cookie
Cookie cookie = new Cookie(key,value);
设置cookie的编码格式
点击查看代码
Cookie cookie = new Cookie(
URLEncoder.encode("姓名","UTF-8"),
URLEncoder.encode("张三","UTF-8"));
- setMaxAge
- 大于0,存在指定的秒
- 等于0,直接删除
- 小于0,一般是-1 ,保存至浏览器关闭
设置cookie的存储路径
setPath
cookie设置路径,其实就是设置cookie的读取范围
2、Session
2.1Session使用
Session作用域:拥有存储数据的空间,作用范围是一次会话有效
- 一次会话是使用同一浏览器发送的多次请求。一旦浏览器关闭,则结束会话
- 可以将数据存入Session中,在一次会话的任意位置进行获取
- 可传递任何数据(基本数据类型、对象、集合、数组)
2.2Session的使用流程
session是服务器端自动创建的,通过request对象获取
HttpSession session=request.getSession();
Session保存数据,setAttribute(属性名,Object)保存数据到session中
session.setAttribute("key",value);//以键值对形式存储在session作用域中。
Session失效
session.setMaxInactiveInterval(60*60);//设置session最大有效期为一小时 session.invalidate();//手工销毁
2.3session域与请求域request的区别
- request是一次请求有效,只有一次请求转发内数据可以获得
- session是一次会话内有效,无论请求转发还是重定向都是可以获得数据的
3、过滤器(Filter)
3.1实现过程
-
编写Java类实现Filter接口
-
在doFilter方法中编写拦截逻辑
-
设置拦截路径
3.2拦截目标设置()
在自定义的Filter类上使用注解@WebFilter(value=“/过滤目标资源”)
3.3过滤器优先级
在一个Web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。
优先级:
-
如果为注解的话,是按照类全名称的字符串顺序决定作用顺序
-
如果web.xml,按照 filter-mapping注册顺序,从上往下
-
web.xml配置高于注解方式
-
如果注解和web.xml同时配置,会创建多个过滤器对象,造成过滤多次。
3.4拦截放行
Chain.doFilter(request, response);
注意事项
如果是在一个页面产生请求转发的指令,而拦截器未对该页面进行拦截,则会跳过拦截器,因为这是一次请求,只发生在服务器内部。如果使用重定向则可以成功拦截。
标签:Web,拦截器,Session,Filter,session,Cookie,cookie From: https://www.cnblogs.com/qiyuancc/p/17433103.html