[code] java过滤器 三个

来源:互联网 时间:1970-01-01

1.登陆过滤器

同理是网站开关过滤器数据库一字段控制网站开关,后台可更改,无开就跳到指定的页面.
2.在每个页面的request中加入Attribute
3.中文过滤器

package com.zhao.util;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;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.HttpServletResponse;import javax.servlet.http.HttpSession;/** * 用于检测用户是否登陆的过滤器,如果未登录,则重定向到指的登录页面 * 配置参数 * checkSessionKey 需检查的在 Session 中保存的关键字 * redirectURL 如果用户未登录,则重定向到指定的页面,URL不包括 ContextPath * notCheckURLList 不做检查的URL列表,以分号分开,并且 URL 中不包括 ContextPath */ public class CheckLoginFilter implements Filter { protected FilterConfig filterConfig = null; private String redirectURL = null; private List notCheckURLList = new ArrayList(); private String checkSessionKey = null; public void destroy() { notCheckURLList.clear(); }public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; HttpSession session = request.getSession(); if(checkSessionKey == null) { filterChain.doFilter(request, response); return; } if((!checkRequestURIIntNotFilterList(request)) && session.getAttribute(checkSessionKey) == null) { response.sendRedirect(request.getContextPath() + redirectURL); return; } filterChain.doFilter(servletRequest, servletResponse); }public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; redirectURL = filterConfig.getInitParameter("redirectURL"); checkSessionKey = filterConfig.getInitParameter("checkSessionKey"); String notCheckURLListStr = filterConfig.getInitParameter("notCheckURLList"); if(notCheckURLListStr != null) { StringTokenizer st = new StringTokenizer(notCheckURLListStr, ";"); notCheckURLList.clear(); while(st.hasMoreTokens()) { notCheckURLList.add(st.nextToken()); } } }private boolean checkRequestURIIntNotFilterList(HttpServletRequest request) { String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); return notCheckURLList.contains(uri); } }



package com.zhao.util;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 com.mobile.dao.jdbc.WebSetDaoJdbc;import com.mobile.object.WebSet;public class AddWebSetFilter implements Filter {private WebSetDaoJdbc wsDao;public void destroy() {// TODO Auto-generated method stub}public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest httpreq = (HttpServletRequest) request;WebSet ws = wsDao.getSet();httpreq.setAttribute("webset", ws);chain.doFilter(request, response);}public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stubwsDao = new WebSetDaoJdbc();}}



package com.zhao.util;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;/** * 用于设置 HTTP 请求字符编码的过滤器,通过过滤器参数encoding指明使用何种字符编码,用于处理Html Form请求参数的中文问题 */ public class CharacterEncodingFilter implements Filter {protected FilterConfig filterConfig = null; protected String encoding = ""; public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { if(encoding != null) servletRequest.setCharacterEncoding(encoding); filterChain.doFilter(servletRequest, servletResponse); } public void destroy() { filterConfig = null; encoding = null; } public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); } }


web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!--过滤器配置--> <filter> <filter-name>myFilter</filter-name> <filter-class>com.zhao.util.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter> <filter-name>addwebsetFilter</filter-name> <filter-class>com.zhao.util.AddWebSetFilter</filter-class> </filter><filter> <filter-name>checkLoginFilter</filter-name> <filter-class>com.zhao.util.CheckLoginFilter</filter-class><init-param> <param-name>checkSessionKey</param-name> <param-value>account</param-value> </init-param> <init-param> <param-name>redirectURL</param-name> <param-value>/login.jsp</param-value> </init-param> <init-param> <param-name>notCheckURLList</param-name> <param-value>/login.jsp</param-value> </init-param> </filter> <filter-mapping> <filter-name>addwebsetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping><filter-mapping> <filter-name>checkLoginFilter</filter-name> <url-pattern>/manager/*</url-pattern> </filter-mapping><filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>GetFeesbyId</servlet-name> <servlet-class>com.mobile.web.servlet.GetFeesbyId</servlet-class> </servlet> <servlet-mapping> <servlet-name>GetFeesbyId</servlet-name> <url-pattern>/servlet/GetFeesbyId</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>





过滤器的运行顺序是同设置时相同的。



相关阅读:
Top