基础知识理解:
cookie、session和过滤器通常都是用在web应用中,cookie和session用来保存一定的数据,过滤器filter则是在浏览器发出请求之后,而后台执行特定的请求之前发生一定的作用。之所以把这三个放一起,是因为有很多时候都会是把他们结合在一起使用,例如有些登陆程序。
cookie是浏览器的机制,session是服务器的机制,但是实际上cookie也是由服务器生成的,之后返回给浏览器的,并不是浏览器本身生成。当浏览器发送某个请求时,如果拥有有效的cookie则会把这个cookie带在一起。
之所有会有cookie的使用,是因为http协议原本是无状态协议,也就是说通过http协议本身,服务器不能判断浏览器是否之前访问过。
filter和servlet的写法相似,编写相关代码的时候需要实现filter接口并重写相关的方法,通常更改较多的是dofilter方法。filter代码写好以后如果需要发生效用,需要像配置servlet一样在web.xml中 进行一定的配置。
以下是一个简单的结合cookie、session、servlet和filter的登陆示例代码:
定义一个用户实体类,充当数据库数据,这里使用单例模式,保证只存在一个实例对象:
用户登陆输入信息index.jsp界面,在form表单的action中使用jsp的特性获得项目路径:
对应的后台servlet:
上边登陆后跳转的请求:
项目web.xml配置:
java过滤器代码: