1首先配置过滤器 WEB-INF/web.xml
以上是作者开发经验,不足之处请各位多多指点
<!-- 判断是否登陆的过滤器 -->
<filter>
<filter-name>login</filter-name>
<filter-class>com.esquare.eaorsweb.filter.LoggedInCheck</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.html</url-pattern>
</filter-mapping>
2.定义过滤器
public class LoggedInCheck implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)res;
String uri = request.getRequestURI();
String contextPath=request.getContextPath();
boolean loginPage=uri.lastIndexOf("login.jsp")!=-1 ? true : false;
boolean index=uri.lastIndexOf("index.jsp")!=-1 ? true : false;
String urii = uri.substring(uri.lastIndexOf("/")+1);
boolean root=false;
if(urii.length()==0||urii.equals("EAORSWeb")){
root=true;
}
boolean loginu = loggedUser(request);
if(loginPage||loginu){
if(loginu){
if(index||root){
RequestDispatcher dispatcher = request.getRequestDispatcher("/pages/main/index.jsp");
dispatcher .forward(request, response);
}else{
chain.doFilter(request, response);
}
}else{
chain.doFilter(request, response);
}
}else{
response.sendRedirect(contextPath+"/login.jsp");
}
}
/**
* 验证用户是否已经登录
* @return 登陆状态
*/
private boolean loggedUser(HttpServletRequest req) {
Object user =req.getSession().getAttribute(Constant.USER_RESOURCES);
if (null!=user){
return true;
}
return false;
}
public void destroy() { }
public void init(FilterConfig filterConfig) throws ServletException { }
}
以上是作者开发经验,不足之处请各位多多指点