过滤器的内容就比较简单了,我是使用java代码写的,好像也可以通过web里面xml文件获得同样的效果,但是之前试了好像没有成功,如果大家有成功的话也可以跟我说一下是如何操作的
我这里是默认不管是运行哪一个界面都是自动跳转到聊天室的登录界面,这样就减少了很多未经登录就直接进入页面进行操作导致出现很多的问题
有三个部分,初始化,进行操作以及销毁,主要内容是过滤器操作,是用来判断用户是否登录,如果没有登录,跳转到chatlogin界面进行登录,如果登录就不拦截
public abstract class CharacterEncodingFilter implements Filter{
public void destroy(){
System.out.println("过滤器销毁");
}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws IOException,ServletException{
System.out.println("过滤器操作");
request.setCharacterEncoding("utf-8");
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse res=(HttpServletResponse) response;
String basePath=req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+req.getContextPath()+"/";
String url=req.getRequestURI().toString();
String str=(String)req.getSession().getAttribute("user");
if(url.indexOf("chatlogin.html")>-1||url.indexOf("LoginServlet")>-1||url.indexOf("allmain.html")>-1){
chain.doFilter(request, response);
return;
}
if(str!=null)
chain.doFilter(request, response);
else{
res.sendRedirect("chatlogin.html");
}
}
public void init(FilterConfig arg0)throws ServletException{
System.out.println("过滤器初始化");
}}