1.SessionFilter类,实现了Filter接口
package
filters;
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.HttpSession;
public class SessionFilter implements Filter ... {
public void destroy() ...{
// TODO Auto-generated method stub
// System.out.println("** 过滤器销毁...") ;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException ...{
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request ;
HttpSession session = req.getSession();
// if(session.getAttribute("loginname")!=null){ //暂时只过滤登陆名
// chain.doFilter(request,response);
// }else{
// // 通过requestDispatcher跳转到登陆页
// request.getRequestDispatcher("login.jsp").forward(request,response);
// }
try
...{
request.setCharacterEncoding("GBK");
String url= req.getRequestURI();
System.out.println(url);
if(session.getAttribute("loginname")!=null)...{ //暂时只过滤登陆名
chain.doFilter(request,response);
}else...{
if(url.indexOf("login.jsp")!=-1 || url.indexOf("login.do")!=-1)...{
chain.doFilter(request,response);
}else...{
// 通过requestDispatcher跳转到登陆页
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
}
catch (Exception ex)
...{
ex.printStackTrace();
}
}
public void init(FilterConfig config) throws ServletException ...{
// TODO Auto-generated method stub
// System.out.println("** 过滤器初始化...") ;
}
}
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.HttpSession;
public class SessionFilter implements Filter ... {
public void destroy() ...{
// TODO Auto-generated method stub
// System.out.println("** 过滤器销毁...") ;
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException ...{
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request ;
HttpSession session = req.getSession();
// if(session.getAttribute("loginname")!=null){ //暂时只过滤登陆名
// chain.doFilter(request,response);
// }else{
// // 通过requestDispatcher跳转到登陆页
// request.getRequestDispatcher("login.jsp").forward(request,response);
// }
try
...{
request.setCharacterEncoding("GBK");
String url= req.getRequestURI();
System.out.println(url);
if(session.getAttribute("loginname")!=null)...{ //暂时只过滤登陆名
chain.doFilter(request,response);
}else...{
if(url.indexOf("login.jsp")!=-1 || url.indexOf("login.do")!=-1)...{
chain.doFilter(request,response);
}else...{
// 通过requestDispatcher跳转到登陆页
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
}
catch (Exception ex)
...{
ex.printStackTrace();
}
}
public void init(FilterConfig config) throws ServletException ...{
// TODO Auto-generated method stub
// System.out.println("** 过滤器初始化...") ;
}
}
<
filter-name
>
SessionFilter
</
filter-name
>
< filter-class > filters.SessionFilter </ filter-class >
</ filter >
<!-- ... -->
< filter-mapping >
< filter-name > SessionFilter </ filter-name >
< url-pattern > /manager/* </ url-pattern >
</ filter-mapping >
< filter-class > filters.SessionFilter </ filter-class >
</ filter >
<!-- ... -->
< filter-mapping >
< filter-name > SessionFilter </ filter-name >
< url-pattern > /manager/* </ url-pattern >
</ filter-mapping >