📄 myfilter.java
字号:
package filter;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyFilter implements Filter {
private String targetURI = null;
private final int NOT_PASS=0;
private final int STUDENT=1;
private final int ADMIN=2;
private final int TEACHER=3;
public void init(FilterConfig config) throws ServletException {
targetURI = config.getInitParameter("targetURI");
}
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
HttpServletResponse httpResponse = (HttpServletResponse) response;
HttpSession session = httpRequest.getSession(false);
if(session != null){
int flag = Integer.parseInt((String) session.getAttribute("flag"));
if(check(flag,httpRequest.getRequestURI())){
chain.doFilter(httpRequest, httpResponse);
return;
}
}
httpRequest.getRequestDispatcher(targetURI).forward(httpRequest, httpResponse);
}
private boolean check(int flag,String url){
if(url==null||flag==NOT_PASS)
return false;
if((url.indexOf("/admin/")!=-1)&&flag==ADMIN)
return true;
if((url.indexOf("/student/")!=-1)&&(flag==STUDENT))
return true;
if((url.indexOf("/teacher/")!=-1)&&(flag==TEACHER))
return true;
return false;
}
public void destroy(){
this.targetURI = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -