logonfilter.java
来自「医院信息系统(Hospital Information System」· Java 代码 · 共 52 行
JAVA
52 行
package hospital.Filter;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class LogonFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
try {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpSession session = httpRequest.getSession();
String requestURI = httpRequest.getRequestURI();
//System.out.println("!!!!!!!!!!:" + requestURI);
RequestDispatcher rd = httpRequest.getRequestDispatcher("/pages/error.html");
//用户访问的路径为“/”表示是登陆页面,直接通过
if (requestURI.endsWith("/") ||
requestURI.endsWith("index.html") ||
requestURI.equals("/loginAction.do") ||
requestURI.equals("/pages/error.html")) {
filterChain.doFilter(request, response);
}
//否则如果用户访问的不是登陆页面
else {
//判断session是否为空,为空则跳转到登陆页面,不为空则通过
if (session.getAttribute("userID") == null) {
rd.forward(request, response);
} else {
filterChain.doFilter(request, response);
}
}
} catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
//Clean up resources
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?