Servlet 编写过滤器filter配置多个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>
如下登陆实例:
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
// 获得在下面代码中要用的request,response,session对象
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('请登陆');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>
