第二十七天:用户禁止cookie下的seesionId追踪以及过滤器

来源:互联网 发布:网络借贷百度百科 编辑:程序博客网 时间:2024/06/01 18:34

1.用户禁止cookie后也就是说我们还可利用session的URL重写机制来解决

1.1什么是url重写机制?

所谓的url重写指的是,可以通过修改url地址,在其后面添加sessionId,来实现sessionId的跟踪

1.2url重写需要注意的事项

即就是在访问某个需要session机制支持的组件时候,不要直接在浏览器地址栏输入地址,而是应该通过服务器来生成的url地址访问

1.3方法

Response.encoderURL(url);

response.encoderRedirectURL(url);

2.session机制的优缺点

优点:相对于cookie机制,安全,存放的数据可以是对象,存放的数据量更大

缺点:是所有的数据都存放在服务器端,服务器的压力比较大,一般会采用激活或者钝化的机制,将session当中的数据零时的保存到文件或者数据库中去。

3.过滤器

 3.1什么是过滤器

在servlet规范中定义的一种特殊类,可以拦截服务器调用servlet的过程

写一个java类实现Filter接口,重写doFileter()方法里,实现过滤的逻辑

web.xml中配置过滤器,FileterConfig.getInitParameter()读取,fileter的配置参数

3.2过滤器的优先级

在web.xml中,看<fileter-mapping>配置,按配置的先后顺序执行

3.3过滤器的优点

可以将一些通用的功能(比如,记录日志,权限控制,安全,编码等)写在过滤器当中,这样做的好处就是:编码量少,并且易于维护,比如要修改日志记录的方式,值需要修改一个过滤器的类就行了。

       代码的可插拔性:增加或者减少某个模块,不至于影响整个系统的稳定性。

3.4监听器

在servlet中规范定义的一个特殊类,用于监听容器产生的以下事件:

当容器创建或者销毁request,session,servletcontext的时候产生的对应事件。

当对requestsessionservletcontext调用setAttribute removeAttribute是产生的事件

servletContext,当服务器启动时候,会为每一个已经部署的应用,创建唯一的servletContext对象,该对象会一直存在,除非服务器关闭或者引用卸载。

它的作用就是存放一些全局可用的数据,或者web.xml中全局配置的参数。返回逻辑路径对应的物理路径

3.4.1如何实现监听事件,写一个类,依据要监听事件的类型,实现对应的接口,比如要监听session的创建和销毁,可以实现HttpSessionlistener接口

在接口中实现监听的逻辑,web.xml中,配置监听器






原创粉丝点击