1.SessionFilter类,实现了Filter接口
package
filters;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
import
java.io.IOException;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
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;
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a41954a27d6ad96fa2c2cf816e677448.gif)
public
class
SessionFilter
implements
Filter
...
{
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void destroy() ...{
// TODO Auto-generated method stub
// System.out.println("** 过滤器销毁...") ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException ...{
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest)request ;
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
HttpSession session = req.getSession();
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
// if(session.getAttribute("loginname")!=null){ //暂时只过滤登陆名
// chain.doFilter(request,response);
// }else{
// // 通过requestDispatcher跳转到登陆页
// request.getRequestDispatcher("login.jsp").forward(request,response);
// }
try
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
request.setCharacterEncoding("GBK");
String url= req.getRequestURI();
System.out.println(url);
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(session.getAttribute("loginname")!=null)...{ //暂时只过滤登陆名
chain.doFilter(request,response);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
if(url.indexOf("login.jsp")!=-1 || url.indexOf("login.do")!=-1)...{
chain.doFilter(request,response);
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
}else...{
// 通过requestDispatcher跳转到登陆页
request.getRequestDispatcher("login.jsp").forward(request,response);
}
}
}
catch (Exception ex)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
...{
ex.printStackTrace();
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/37c8bf68cdc3cc81759c34160776bc53.gif)
public void init(FilterConfig config) throws ServletException ...{
// TODO Auto-generated method stub
// System.out.println("** 过滤器初始化...") ;
}
![](https://i-blog.csdnimg.cn/blog_migrate/6a9c071a08f1dae2d3e1c512000eef41.gif)
}
2.配置web.xml,说明哪些文件需要过滤
<
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
>
搞定,洗个澡睡觉,明天开始写其他功能.