package com.ucap.Ext2DB;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.ucap.Ext2DB.servlet.MainSession;
import com.ucap.Ext2DB.utils.Constants;
public class TestFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
// TODO Auto-generated method stub
//System.out.println("TestFilter");
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
String currentURL = request.getRequestURI();
String ctxPath = request.getContextPath();
// 除掉项目名称时访问页面当前路径
String targetURL = currentURL.substring(ctxPath.length());
HttpSession session = request.getSession( );
System.out.println("session="+ session );
//HttpSession session = request.getSession(false);
// 对当前页面进行判断,如果当前页面不为登录页面
if (!("/login.html".equals(targetURL))) {
System.out.println("targetURL:" + targetURL + " ctxPath:" + ctxPath + " currentURL:" + currentURL);
// 在不为登陆页面时,再进行判断,如果不是登陆页面也没有session则跳转到登录页面,
if (session == null || session.getAttribute(Constants.SessionKey) == null) {
response.sendRedirect("/GLXT/login.html");
} else {
MainSession mainSession = (MainSession)session.getAttribute(Constants.SessionKey);
//System.out.println("fullname="+ mainSession.getOp_name() );
// 这里表示正确(已登陆过),会去寻找下一个链,如果不存在,则进行正常的页面跳转
filterChain.doFilter(request, response);
return;
}
} else {
// 这里表示如果当前页面是登陆页面,跳转到登陆页面
filterChain.doFilter(request, response);
return;
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
<!-- filter-->
<!-- 配置登陆过滤器 -->
<filter>
<filter-name>login</filter-name>
<filter-class>com.ucap.Ext2DB.TestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>