java filter url_java – @WebFilter排除url-pattern

我使用过滤器来检查登录用户的URL模式.

但是我需要过滤许多URL模式.

{ "/table/*", "/user/*", "/contact/*", "/run/*", "/conf/*", ..., ..., ...}

它变得不可维护.排除以下内容会更简单:

{ "/", "/login", "/logout", "/register" }

我怎样才能做到这一点?

@WebFilter(urlPatterns = { "/table/*","/user/*", "/contact/*","/run/*","/conf/*"})

public class SessionTimeoutRedirect implements Filter {

protected final Logger logger = LoggerFactory.getLogger("SessionFilter");

@Override

public void doFilter(ServletRequest req, ServletResponse res,

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) res;

if (request.getSession().getAttribute("Id") != null) {

chain.doFilter(req, res);

} else {

logger.debug("session is null:"+request.getRequestURL());

response.sendRedirect(request.getContextPath()+"/login");

}

}

@Override

public void init(FilterConfig arg0) throws ServletException {

}

@Override

public void destroy() {

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Web中,除了使用注解方式配置过滤器外,还可以使用web.xml文件进行配置。下面是一个web.xml文件中配置全局过滤器的示例: ``` <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>WebFilterDemo</display-name> <!-- 配置全局过滤器 --> <filter> <filter-name>ShopFilter</filter-name> <filter-class>com.example.ShopFilter</filter-class> </filter> <filter-mapping> <filter-name>ShopFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 配置Servlet --> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.example.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app> ``` 在以上示例中,通过filter标签配置了一个名为ShopFilter的过滤器,并将其应用于所有URL路径。filter-class标签指定了过滤器的实现类。 通过filter-mapping标签将过滤器与URL路径进行映射,这里将ShopFilter过滤器映射到所有URL路径。 需要注意的是,在web.xml文件中配置过滤器时,需要在web.xml文件中添加`<web-app>`标签的metadata-complete属性,将其设置为true,以确保Web容器能够正确扫描和加载过滤器。 以上示例也包含了一个Servlet的配置和映射,可以在web.xml文件中一起配置。通过以上配置,Web容器启动后,所有HTTP请求都会被ShopFilter过滤器拦截并处理,只有URL路径为/hello的请求才会被HelloServlet处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值