spring-mvc过滤器

来源:互联网 发布:js获取下拉框选中的值 编辑:程序博客网 时间:2024/06/07 10:46
import java.io.IOException;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.filter.OncePerRequestFilter;/** * 登录过滤 *  * @author 周化益 */public class SessionFilter extends OncePerRequestFilter {@Overrideprotected void doFilterInternal(HttpServletRequest request,HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {// 不过滤的uriString[] notFilter = new String[] { "login.html", "index.html","denglu.html", "login.jsp", "index.jsp","/news/" };// 请求的urlString url = request.getRequestURI();String[] urlObje = url.split("/");// 是否过滤boolean doFilter = true;for (String s : notFilter) {if (url.indexOf(s) != -1) {// 如果uri中包含不过滤的uri,则不进行过滤doFilter = false;break;}}if (doFilter) {// 执行过滤// 从session中获取登录者实体Object obj = request.getSession().getAttribute("user");if (null == obj) {request.getRequestDispatcher("/denglu.html").forward(request, response);} else {// 如果session中存在登录者实体,则继续//filterChain.doFilter(request, response);request.getRequestDispatcher(urlObje[urlObje.length-1]).forward(request, response);}} else {// 如果不执行过滤,则继续filterChain.doFilter(request, response);}}}

web.xml中加上

  <filter>    <filter-name>sessionFilter</filter-name>    <filter-class>com.liveRoom.util.SessionFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>sessionFilter</filter-name>    <url-pattern>*.jsp</url-pattern>    <url-pattern>*.html</url-pattern>  </filter-mapping>


0 0
原创粉丝点击