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中,配置监听器