com.filter.BaseFilter过滤器,除了load.jsp请求和load.action请求,其他请求资源访问必须先登录,代码怎么xie
时间: 2024-04-23 17:21:58 浏览: 90
servlet+jsp实现过滤器 防止用户未登录访问
好的,下面是一个简单的实现方式:
```java
public class BaseFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 初始化操作
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
// 获取请求路径
String path = req.getRequestURI();
// 如果是load.jsp或load.action请求,则直接放行
if (path.endsWith("load.jsp") || path.endsWith("load.action")) {
chain.doFilter(request, response);
return;
}
// 如果用户已登录,则放行
HttpSession session = req.getSession();
if (session.getAttribute("user") != null) {
chain.doFilter(request, response);
return;
}
// 如果用户未登录,则跳转到登录页面
resp.sendRedirect(req.getContextPath() + "/login.jsp");
}
@Override
public void destroy() {
// 销毁操作
}
}
```
在上面的代码中,我们首先获取请求路径,然后判断是否是load.jsp或load.action请求,如果是则直接放行;如果不是,则判断用户是否已经登录,如果已经登录则放行,否则跳转到登录页面。您可以将这段代码放在Web应用程序的web.xml文件中进行配置。
阅读全文