在千峰“逆战”学习的第14天

今天学习了Session的使用和工作原理,以及过滤器的配置和过滤器的典型应用。
继续加油!奥利给!
人生重要的不是所站的位置,而是所朝的方向
中国加油!武汉加油!千锋加油!我自己加油

一、Session

1.1 什么是session

Session用于跟踪客户状态。Session指的是在一段时间内,单个客户与web服务器得一连串相关得交互过程。

表示得是会话,session域中存的值,他的有效范围是一次会话,浏览器代开访问服务器到访问结束关闭浏览器这段时间,这就是使用session去解决无状态性。

1.2 Session工作原理

1.当浏览器第一次发送请求给服务器时,那么服务器会在内存中开辟一个对象(session),通过hash算法得到这个对象的内存地址,此时服务器会new cookie对象,将cookie添加到response中响应给浏览器进行存储。

2.当同一个浏览器第二次访问同一个服务器,根据cookie的自动发送原则,会将匹配到url的cookie封装到request请求中,那么此时服务器会去解析cookie,拿到JSESSIONID所对应的内存地址,根据内存地址找到原来new的session对象,将对象关联给request

1.3 session的使用

获取session对象
HttpSession session=request.getSession();

使用session绑定对象
使用HttpSession的setAttribute(属性名,Object)方法

删除session
使用HttpSession的invalidate方法


1.4 Session失效的几种情况

1、超过了设置的超时时间
2、主动调用了invalidate方法
3、服务器主动或异常关闭
注意:浏览器关闭并不会让Session失效


注意的点:session失效不失session对象被销毁了,他还在内存中,只是不能用了。
		监听器去解决

二、过滤器

2.1 什么是过滤器

 Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截。

2.2 如何编写过滤器

1、编写java类实现Filter接口
2、重写doFilter方法
3、设置拦截的url

2.3 过滤器的配置

注解式配置
在自定义的Filter类上使用注解@WebFilter(“/*”)

xml配置

<!--过滤器的xml配置  -->
  <filter>
  <!--名称-->
    <filter-name>sf</filter-name>
    <!--过滤器类全称-->
    <filter-class>com.qf.web.filter.SecondFilter</filter-class>
  </filter>
 <!--映射路径配置-->
  <filter-mapping>
     <!--名称-->
    <filter-name>sf</filter-name>
     <!--过滤的url匹配规则和Servlet的一模一样-->
    <url-pattern>/*</url-pattern>
  </filter-mapping>

2.4 过滤器链

在资源放行前,过滤请求,在资源放行后,过滤响应,多个过滤器之间过滤成链

优先级
如果为注解的话,是按照类名的字符串顺序进行起作用的
如果web.xml,按照 filter-mapping注册顺序,从上往下
web.xml配置高于注解方式

2.5 过滤器优点

 chain.doFilter(req, resp);//资源放行
如果不去执行这一句话,那么请求就会被拦截,不再继续往下走
在资源放行的前后,我们可以对请求进行处理和对响应进行处理


2.6 过滤器典型应用

1.过滤所有的请求,因为他是在servlet.jsp.html等资源执行之前执行,可以类似封装的作用,比如处理乱码
2.可以在资源放行之前,对request进行处理,过滤敏感词
3.我们可以在资源放行之后,对资源响应给浏览器的response进行相关处理:压缩响应内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值