🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 问题01:Filter的概念及体系结构。 * [ ] Tomcat8.0 ![](https://img.kancloud.cn/9e/80/9e80f80eef2b41ad753f635bf452c4dd_863x409.png) * [ ] Tomcat9.0 ![](https://img.kancloud.cn/77/ba/77bacf5230c7b03d01bf8a4abc6ca018_1133x720.png) ## 问题02:Filter的作用。 ![](https://img.kancloud.cn/90/05/90057927a7b29e95fbde13af1a92c650_802x250.png) * [ ] 对request进行处理(如统一全站编码) * [ ] 对response进行处理(如禁止缓存等) * [ ] 决定目标资源是否被访问(如权限控制等) ## 问题03:Filter的创建与配置。 ### Filter的创建 ![](https://img.kancloud.cn/32/cd/32cd6fee74be4c57e187f71ee1ab7c3c_617x368.png) ![](https://img.kancloud.cn/1f/f4/1ff4510f1f3bdae8cfa32553c6f7b219_1248x519.png) ### Filter的注解配置 ``` @WebFilter( urlPatterns = { "/edit.jsp", "/index.jsp", "/download.jsp" }, servletNames = { "DeleteFileServlet", "EditFileServlet", "UploadServlet", }) ``` ### Filter的XML配置 ``` <filter> <filter-name>FilterDemo1</filter-name> <filter-class>包名.类名</filter-class> </filter> <filter-mapping> <filter-name>FilterDemo1</filter-name> <url-pattern>过滤路径</url-pattern> <dispatcher></dispatcher> </filter-mapping> ``` ## 问题04:多个Filter的装配问题(Filter Chain的组装顺序和规则)。 多个过滤器的执行顺序: 1. 配置文件从配置顺序执行; 2. 之后再执行注解的过滤器; 3. 注解过滤器按照类名首字母执行。 **配置文件(从上到下)→配置文件(类名ASCII码从小到大)** ## 问题05:Fliter处理request(设置所有资源编码) ``` @WebFilter("/*") ``` ![](https://img.kancloud.cn/32/cd/32cde6664721117a94d180209e6c9198_650x152.png) ## 问题06:Fliter处理response(指定文件获取信息) ## 问题07:Fliter处理response(允许静态资源跨域访问) ``` @WebFilter("/static/*") ``` ![](https://img.kancloud.cn/e5/5c/e55cec083c56b538fa608e4f1eca8e1a_855x199.png) ## 问题08:Fliter处理response(禁止jsp文件缓存) ![](https://img.kancloud.cn/dc/cb/dccb86b87bec1eece5546f0e6e56cd8e_589x248.png) ## 问题09:Fliter决定是否允许被访问(访问拦截) ``` 需要利用到session来进行通信 ``` ![](https://img.kancloud.cn/1b/fb/1bfb6144a9c745dba6084417ca19188d_1079x350.png)