Java Web Filter(过滤器的使用)
来源:互联网 发布:51电子单片机原理图 编辑:程序博客网 时间:2024/05/29 13:54
</pre>Filter 的学习使用:<p></p><p>首先,一个Filter必须实现javax.servlet.Filter的接口</p><pre name="code" class="java">package filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class MyFilter implements Filter {@Overridepublic void destroy() {System.out.println("destroy");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {//可以在请求传来的时候,先对请求进行编码的转换,以防出现乱码System.out.println("doFilter<before>");chain.doFilter(request, response);//可以在传回页面的时候进行一些对敏感的词汇进行处理System.out.println("doFilter<after>");}@Overridepublic void init(FilterConfig arg0) throws ServletException {System.out.println("init");}}
</pre><pre name="code" class="java">在web.xml配置一下Filter
<!-- 配置拦截器 --> <filter> <filter-name>MyFilter</filter-name> <filter-class>filter.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*</url-pattern><!-- 对项目下所有的内容进行过滤 --> </filter-mapping>
应用在登录校验的时候,假设用户需要登录才能进入登录成功的界面,登录失败则进入登录失败的界面
为了防止用户直接在URL栏中直接输入登录成功的界面的地址,就需要用到Filter
在web.xml中配置如下的过滤器
<filter> <filter-name>LoginFilter</filter-name> <filter-class>com.imooc.filter.LoginFilter</filter-class> <init-param> <param-name>noLoginPaths</param-name> <param-value>login.jsp;fail.jsp;LoginServlet</param-value> <!-- 在配置的时候设置一些初始化参数,为了防止这些页面会重定向死循环 --> </init-param> <init-param> <param-name>charset</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
在MyFilter中设置过滤
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) arg0;HttpServletResponse response = (HttpServletResponse) arg1;HttpSession session = request.getSession(); //这里的强制转换是为了获得request里面的session中的参数信息String noLoginPaths = config.getInitParameter("noLoginPaths"); //这里是获得上面说的防止出现重定向死循环而设置的参数StringString charset = config.getInitParameter("charset");if(charset==null){charset = "UTF-8";}request.setCharacterEncoding(charset);if(noLoginPaths!=null){ //进行这些参数的遍历String[] strArray = noLoginPaths.split(";"); //先用split()方法分割这个字符串for (int i = 0; i < strArray.length; i++) {if(strArray[i]==null || "".equals(strArray[i]))continue; if(request.getRequestURI().indexOf(strArray[i])!=-1 ){ //如果URI里面<span style="font-family: Arial, Helvetica, sans-serif;">包括这些页面,</span>
arg2.doFilter(arg0, arg1); //<span style="font-family: Arial, Helvetica, sans-serif;">则直接对这些页面进行放行,不用进行下面的判断再进行重定向操作</span>return;}}}if(session.getAttribute("username")!=null){arg2.doFilter(arg0, arg1);}else{response.sendRedirect("login.jsp");}}
1 0
- Java Web Filter(过滤器的使用)
- Java Web中使用filter(过滤器)的原因
- Java过滤器-Filter过滤器的使用
- JAVA过滤器的使用(Filter)
- JAVA WEB过滤器Filter使用总结
- JAVA WEB FILTER(过滤器)
- Java-web Filter过滤器
- Java web----过滤器(Filter)
- java web 过滤器filter
- (张龙讲学)java web学习---Filter过滤器的使用
- [filter] Java web 中过滤器的配置
- Java Web 的servlet 之过滤器 filter
- Java Web笔记 – Servlet中的Filter过滤器的介绍和使用 编写过滤器
- Java Web--Seervlet之过滤器(Filter)
- Java Filter过滤器使用
- Java EE中filter(过滤器)的使用
- 使用java的过滤器filter备忘(get和post)
- 使用java的过滤器filter备忘(HttpServletResponseWrapper)
- Shell入门基础
- 学习maven---安装maven和体验maven的实现
- css3中的zoom元素属性值测试
- 如何处理监控类直播中遇到的奇葩问题【干货】
- 制作Linux U盘启动
- Java Web Filter(过滤器的使用)
- Python学习(1):注释
- UITableViewCell 多余不显示问题
- Swift实现"视差效果"的视图轮播
- CodeForces 688C 687A NP-Hard Problem
- Android与HTML+JS交互入门http://blog.csdn.net/leejizhou/article/details/50894531
- 【POJ1321】棋盘问题
- mysql主从同步
- Android之使用HandlerThread 以及如何退出总结