Servlet 編寫過濾器filter配置多個(gè)url-pattern的方法如下:
<filter> <filter-name>authority</filter-name> <filter-class>com.util.AuthorityFilter</filter-class> </filter> <filter-mapping> <filter-name>authority</filter-name> <url-pattern>/admin/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>authority</filter-name> <url-pattern>/manage/*</url-pattern> </filter-mapping>
如下登陸實(shí)例:
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { // 獲得在下面代碼中要用的request,response,session對(duì)象 HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) resp; response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); if(session.getAttribute("username") == null){ out.println("<script>alert('請(qǐng)登陸');location.href='/login'</script>"); return; } else{ chain.doFilter(req, resp); }
web.xml:
<filter> <filter-name>IsLogFilter</filter-name> <filter-class>zhuangzi.com.filter.IsLogFilter</filter-class> </filter> <filter-mapping> <filter-name>IsLogFilter</filter-name> <url-pattern>/admin/*</url-pattern> <!--<dispatcher>FORWARD</dispatcher>--> </filter-mapping>