相关课件:https://download.youkuaiyun.com/download/crystallf/11593606
- 配置web.xml来设置过滤器
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.pactrea.config.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
package com.pactrea.config;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("通过了登录过滤器");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if ((request.getServletPath().equals("/login.do"))) {
filterChain.doFilter(request, response);
} else {
if ((request.getSession().getAttribute("currUser") == null)) {
response.sendRedirect(request.getContextPath() + "/");
} else {
filterChain.doFilter(request, response);
}
}
// String currentUrl = request.getRequestURL().toString();
// System.out.println(currentUrl);
//
// int a = currentUrl.indexOf("goodsList.jsp");
//// System.out.println(a);
//
// if (a != -1) {
// response.sendRedirect("jsp/login.jsp");
// }
}
@Override
public void destroy() {
}
}
- 注解配置过滤器
package com.pactrea.config;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebFilter(urlPatterns = "*.jsp")
public class JspFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("通过了JSP过滤器");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if ((request.getServletPath().equals("/jsp/login.jsp"))) {
filterChain.doFilter(request, response);
} else {
if ((request.getSession().getAttribute("currUser") == null)) {
response.sendRedirect(request.getContextPath() + "/jsp/login.jsp");
} else {
filterChain.doFilter(request, response);
}
}
}
@Override
public void destroy() {
}
}
本文详细介绍了如何使用web.xml配置文件和注解的方式在Java Web应用中设置过滤器,以控制对特定资源的访问。通过LoginFilter和JspFilter两个示例,展示了如何检查用户会话状态并重定向未登录用户。
2616

被折叠的 条评论
为什么被折叠?



