12.JavaWeb基础 过滤器
来源:互联网 发布:vr飞机杯软件 编辑:程序博客网 时间:2024/05/12 12:23
一.过滤器的概念
当需要限制用户访问某些资源的时候或者在处理请求时提前处理某些资源时,可以用过
滤起来完成。
二.实现过滤器
SimpleFilter:
package com.zyy.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 SimpleFilter implements Filter {public void destroy() {System.out.println("***** 过滤器销毁 *****");}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {System.out.println("***** doFilter之前 *****");chain.doFilter(request, response);System.out.println("***** doFilter之后 *****");}public void init(FilterConfig config) throws ServletException {String initParam = config.getInitParameter("CaMnter");System.out.println("***** init 初始化参数:" + initParam + " *****");}}
web.xml:
<filter> <filter-name>simple</filter-name> <filter-class>com.zyy.filter.SimpleFilter</filter-class> <init-param> <param-name>CaMnter</param-name> <param-value>Save you from anything 07</param-value> </init-param> </filter> <filter-mapping> <filter-name>simple</filter-name><url-pattern>/*</url-pattern> </filter-mapping>
/*表示对于根目录下的以前诶操作都进行过滤。
Tomcat:
三.编码过滤
EncodingFilter:
package com.zyy.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 EncodingFilter implements Filter {private String charSet;public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding(this.charSet);System.out.println("***** " + this.charSet + " *****");}public void init(FilterConfig filterConfig) throws ServletException {this.charSet = filterConfig.getInitParameter("charSet");}}
web.xml:
<filter> <filter-name>encoding</filter-name> <filter-class>com.zyy.filter.EncodingFilter</filter-class> <init-param> <param-name>charSet</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encoding</filter-name><url-pattern>/*</url-pattern> </filter-mapping>
这样可以减少request.setCharacterEncoding(encoding);.这句话的重复出现了,
/*可以对所有页面设置统一的编码。
三.登录验证
SessionFilter:
package com.zyy.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;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;public class SessionFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;HttpSession session = req.getSession();if (session.getAttribute("userid") != null) {chain.doFilter(request, response);} else {request.getRequestDispatcher("login.jsp").forward(request, response);}}public void init(FilterConfig filterConfig) throws ServletException {}}
这样可以将未进行登录的用户想通过地址重写的方式的访问过滤掉。
0 0
- 12.JavaWeb基础 过滤器
- 10018---JavaWeb基础--过滤器(Filter)
- JavaWeb开发技术——过滤器基础
- Javaweb基础----过滤器filter(转发)
- Javaweb基础----过滤器filter(转发)
- JavaWeb 过滤器
- javaweb - 过滤器
- javaweb过滤器
- JavaWeb 过滤器
- JavaWeb-过滤器
- javaweb 过滤器
- javaweb过滤器
- JavaWeb过滤器
- javaweb过滤器
- JavaWeb过滤器
- JavaWeb过滤器
- JavaWeb过滤器
- javaWeb过滤器
- Python多线程
- POJ-3268 Silver Cow Party
- Python多线程
- 闪蝶-COBOL代码分析工具
- js以json形式提交数据,后台接受
- 12.JavaWeb基础 过滤器
- 常见的差分(动)阻抗计算模型
- Python多线程
- 高解析 喷码机解决方案
- hdu 4927 Series 1
- hdu 3333 树状数组+离线处理
- 关于Struts2下载的文件名中文乱码
- Python多线程
- UVa11254 - Consecutive Integers(判断一个数是不是2的幂)