过滤器:两个非常有用的过滤器

来源:互联网 发布:nginx 模块初始化 编辑:程序博客网 时间:2024/05/10 12:22
LoginFilter.java:import javax.servlet.FilterChain;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.ServletException;import javax.servlet.FilterConfig;/* *  * @author Ace * web.xml配置如下:  * <filter>  * <filter-name>login</filter-name> * <filter-class> * org.waityou.news.util.filters.LoginFilter * </filter-class> * </filter>  * <filter-mapping>  * <filter-name>login</filter-name> * <url-pattern>/manager/*</url-pattern>  * </filter-mapping> */public class LoginFilter implements Filter {    protected FilterConfig filterConfig;    public void doFilter(final ServletRequest req, final ServletResponse res,            FilterChain chain) throws IOException, ServletException {        HttpServletRequest hreq = (HttpServletRequest) req;        HttpServletResponse hres = (HttpServletResponse) res;        String isLog = (String) hreq.getSession().getAttribute("isLog");        if ((isLog != null) && ((isLog.equals("true")) || (isLog == "true")))//检查是否登录        {            chain.doFilter(req, res);            return;        } else            hres.sendRedirect("/error.html");//如果没有登录,把视图派发到登录页面    }    public void destroy() {        this.filterConfig = null;    }    public void init(FilterConfig config) {        this.filterConfig = config;    }    public void setFilterConfig(final FilterConfig filterConfig) {        this.filterConfig = filterConfig;    }}SetCharacterEncodingFilter.java: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;/** * @author Ace 编码过滤,一律设置成UTF-8 *  * web.xml中配置如下:  * <filter> * <filter-name>Set Character Encoding</filter-name> * <filter-class> * org.waityou.news.util.filters.SetCharacterEncodingFilter * </filter-class>  * </filter>  * <filter-mapping> * <filter-name>Set Character Encoding</filter-name>  * <url-pattern>/*</url-pattern> * </filter-mapping> */public class SetCharacterEncodingFilter implements Filter {        public void destroy() {}    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        request.setCharacterEncoding("UTF-8");        // 传递控制到下一个过滤器        chain.doFilter(request, response);    }        public void init(FilterConfig filterConfig) throws ServletException {}}LoginFilter.java:import javax.servlet.FilterChain;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.ServletException;import javax.servlet.FilterConfig;/* *  * @author Ace * web.xml配置如下:  * <filter>  * <filter-name>login</filter-name> * <filter-class> * org.waityou.news.util.filters.LoginFilter * </filter-class> * </filter>  * <filter-mapping>  * <filter-name>login</filter-name> * <url-pattern>/manager/*</url-pattern>  * </filter-mapping> */public class LoginFilter implements Filter {    protected FilterConfig filterConfig;    public void doFilter(final ServletRequest req, final ServletResponse res,            FilterChain chain) throws IOException, ServletException {        HttpServletRequest hreq = (HttpServletRequest) req;        HttpServletResponse hres = (HttpServletResponse) res;        String isLog = (String) hreq.getSession().getAttribute("isLog");        if ((isLog != null) && ((isLog.equals("true")) || (isLog == "true")))//检查是否登录        {            chain.doFilter(req, res);            return;        } else            hres.sendRedirect("/error.html");//如果没有登录,把视图派发到登录页面    }    public void destroy() {        this.filterConfig = null;    }    public void init(FilterConfig config) {        this.filterConfig = config;    }    public void setFilterConfig(final FilterConfig filterConfig) {        this.filterConfig = filterConfig;    }}SetCharacterEncodingFilter.java: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;/** * @author Ace 编码过滤,一律设置成UTF-8 *  * web.xml中配置如下:  * <filter> * <filter-name>Set Character Encoding</filter-name> * <filter-class> * org.waityou.news.util.filters.SetCharacterEncodingFilter * </filter-class>  * </filter>  * <filter-mapping> * <filter-name>Set Character Encoding</filter-name>  * <url-pattern>/*</url-pattern> * </filter-mapping> */public class SetCharacterEncodingFilter implements Filter {        public void destroy() {}    public void doFilter(ServletRequest request, ServletResponse response,            FilterChain chain) throws IOException, ServletException {        request.setCharacterEncoding("UTF-8");        // 传递控制到下一个过滤器        chain.doFilter(request, response);    }        public void init(FilterConfig filterConfig) throws ServletException {}}

原创粉丝点击