配置Filter
来源:互联网 发布:淘宝上最好吃的麻薯 编辑:程序博客网 时间:2024/06/05 19:27
1. 配置Filter与配置servlet非常相似,需要配置如下两个部分:
(1)配置Filter名
(2)配置Filter拦截的URL模式
区别在于:servlet通常只配置一个URL,而Filter可以同时拦截多个请求的URL。因此在配置FilterURL的模式时通常会使用模式字符串,使得Filter可以拦截多个请求。
2.配置Filter同样有两种方式:
(1)在Filter类中通过@WebFilter注解进行配置
(2)在web.xml文件中进行配置。
3.使用web.xml 文件进行配置,代码如下:
<!-- 定义Filter --><filter><!-- Filter的名字,相当于指定@WebFilter的filterName属性 --><filter-name>log</filter-name><!-- Filter的实现类 --><filter-class>lee.LogFilter</filter-class> </filter><!-- 定义Filter拦截的URL地址 --><filter-mapping><!-- Filter的名字 --><filter-name>log</filter-name><!-- Filter负责拦截的URL,相当于指定@WebFilter的urlPatterns属性 --><url-pattern>/*</url-pattern></filter-mapping>4.使用@WebFilter注解进行配置
(1)@WebFilter支持的常用属性如下:
配置代码如下:
@WebFilter(filterName="log",urlPatterns={"/*"})public class LogFilter implements Filter{5.Filter常用的作用是:对用户请求进行过滤,判断用户是否登录。
下面代码是验证是否登录的一个简单例子:
@WebFilter(filterName="authority", urlPatterns={"/*"}, initParams={@WebInitParam(name="encoding", value="GBK"),@WebInitParam(name="loginPage", value="/login.jsp"),@WebInitParam(name="proLogin", value="/proLogin.jsp")})public class AuthorityFilter implements Filter{// FilterConfig可用于访问Filter的配置信息private FilterConfig config;// 实现初始化方法public void init(FilterConfig config){this.config = config;}// 实现销毁方法public void destroy(){this.config = null;}// 执行过滤的核心方法public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain)throws IOException,ServletException{// 获取该Filter的配置参数String encoding = config.getInitParameter("encoding");String loginPage = config.getInitParameter("loginPage");String proLogin = config.getInitParameter("proLogin");// 设置request编码用的字符集request.setCharacterEncoding(encoding);// ①HttpServletRequest requ = (HttpServletRequest)request;HttpSession session = requ.getSession(true);// 获取客户请求的页面String requestPath = requ.getServletPath();// 如果session范围的user为null,即表明没有登录// 且用户请求的既不是登录页面,也不是处理登录的页面if( session.getAttribute("user") == null&& !requestPath.endsWith(loginPage)&& !requestPath.endsWith(proLogin)){// forward到登录页面request.setAttribute("tip" , "您还没有登录");request.getRequestDispatcher(loginPage).forward(request, response);}// "放行"请求else{chain.doFilter(request, response);}}}
0 0
- 配置filter
- filter配置
- filter配置
- 配置Filter
- 配置Filter
- filter配置
- web.xml 配置Filter
- 过滤器Filter配置总结
- web里面配置filter
- web.xml 配置Filter
- 过滤器Filter配置总结
- 过滤器Filter配置总结
- web.xml 配置Filter
- Filter配置大全
- 7Filter配置细节
- jsp 过滤器 Filter 配置
- SSH Filter 过滤器配置
- 过滤器Filter配置总结
- Linux内核调试信息如何查看
- liunx 命令 之 文件与目录部分
- C++中的#和##运算符
- 微信浏览器打开APP store和安卓store链接
- 从mysql数据库中导入数据到solr4.5
- 配置Filter
- 局部打印插件 jquery.PrintArea.js
- RVM无法加载公钥解决方法
- 如何使用命令行 Change SharePoint Farm Administrator?
- C++第三次上机作业
- nodejs小记之jqueryfileupload异步图片文件上传 带上传进度
- MD-Snackbar的使用
- IOS 开发-UI初级 (二)视图和视图控制器(View,Viewcontroller)
- Andriod基础:RatingBar设置