(3) 从有效期上进行比较:使用过Google的人都知道,如果登陆过Google,则Google
的登陆信息长期有效,用户不必每次访问都重新登陆,Google会长期的记录客户的登陆信息,要达到这种效果,选择cookie会比较好,使用Session也可以达到这种效果,但容易造成服务器内存溢出。
(4) 从服务器的负担上比较:Session是保存在服务器端的,每个用户都会产生一个
cookie,如果并发访问的用户非常多,会产生非常多的session,消耗大量的内存,而cookie保存在客户端,不占用服务器资源。
(5) 从浏览器支持上比较:cookie是需要客户端浏览器支持的,如果客户端禁用cookie,
或者不支持cookie,则会话跟踪会失效,对于wep的应用,常规的cookie就配不上用场了。
(6) 从跨域名上比较:cookie支持跨域名而session不支持。
9. 过滤器Filter:Filter和Listener是servlet规范里的两个高级特性,不同于servlet,他们
不用于处理客户端请求,只用于对request和response进行修改或者对context,session,request事件进行监听。
(1) Filter概述:Filter意为滤镜或者过滤器,用于在servlet之外对request或者
response进行修改,Filter提出了滤镜链(FilterChain)的概念,一个FilterChain
中包含多个Filter,客户端请求request在抵达servlet之前会经过FilterChain里
的所有Filter,服务器响应response在抵达客户端浏览器之前也会经过FilterChain
里的所有Filter。
(2) Filter接口:
destroy()
由 Web 容器调用,指示将从服务中取出的过滤器。此方法仅在过滤器
的 doFilter 方法中的所有线程都已退出之后调用一次,或者在过了
超时期之后调用。在调用此方法之后,Web 容器不会再对此过滤器实
例调用 doFilter 方法。
doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException
每次由于对链末尾的某个资源的客户端请求而通过链传递请求/响应
对时,容器都会调用 Filter 的 doFilter 方法。传入此方法的 FilterChain 允许 Filter 将请求和响应传递到链中的下一个实体。 init(FilterConfig filterConfig) throws ServletException
由 Web 容器调用,指示将放入服务中的过滤器。servlet 容器只在实
例化过滤器之后调用一次 init 方法。在要求过滤器做任何过滤工作
之前,init 方法必须成功完成。
(3) Filter配置:Filter需要配置在web.xml中才能生效,一个Filter需要配置<Filter>
和<Filter-Mapping>标签。<Filter>配置Filter名称,实现类以及初始化参数,可同
时配置多个初始化参数,<Filter-Mapping>配置什么规则下使用该Filter,<Filter>
的Filtername和<FilterMapping>的Filtername必须匹配。
<url-pattern>配置URL的规则,可以同时配置多个,可以使用通配符(*)。
10. JSTL标签库:JSTL全称为jsp standrd tag library ,即jsp标准标签库。
(1)什么是标签