检验是否登录
package cn.mldn.lxh.filter ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class LoginFilter implements Filter
{
public void init(FilterConfig filterConfig)
throws ServletException
{
// System.out.println("** 过滤器初始化...") ;
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException,
ServletException
{
// Session属于HTTP范畴,所以ServletRequest对象需要先转换成HttpServletRequest对象
HttpServletRequest req = (HttpServletRequest)request ;
HttpSession session = req.getSession() ;
// 如果session不为空,则可以浏览其他页面
if(session.getAttribute("uname")!=null)
{
chain.doFilter(request,response) ;
}
else
{
// 通过requestDispatcher跳转到登陆页
request.getRequestDispatcher("login.jsp").forward(request,response) ;
}
}
public void destroy()
{
// System.out.println("** 过滤器销毁...") ;
}
};
/*
<filter>
<filter-name>login</filter-name>
<filter-class>cn.mldn.lxh.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
*/
中文问题
package cn.mldn.lxh.filter ;
import java.io.* ;
import javax.servlet.* ;
public class EncodingFilter implements Filter
{
public void init(FilterConfig filterConfig)
throws ServletException
{
// System.out.println("** 过滤器初始化...") ;
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException,
ServletException
{
try
{
request.setCharacterEncoding("GB2312") ;
}
catch (Exception e)
{
}
chain.doFilter(request,response) ;
}
public void destroy()
{
// System.out.println("** 过滤器销毁...") ;
}
};
/*
<filter>
<filter-name>encoding</filter-name>
<filter-class>cn.mldn.lxh.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
*/
过滤非法字符
package cn.mldn.lxh.filter ;
import java.io.* ;
import javax.servlet.* ;
public class CharFilter implements Filter
{
public void init(FilterConfig filterConfig)
throws ServletException
{
// System.out.println("** 过滤器初始化...") ;
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException,
ServletException
{
String content = request.getParameter("content") ;
// 如果indexOf返回-1则表示没有查到所要的内容
if(content!=null)
{
if(content.indexOf("AAA")==-1)
{
chain.doFilter(request,response) ;
}
else
{
System.out.println("有非法文字") ;
// 如果需要的话,此处依然可以使用RequestDispatcher进行跳转
}
}
else
{
chain.doFilter(request,response) ;
}
}
public void destroy()
{
// System.out.println("** 过滤器销毁...") ;
}
};
/*
<filter>
<filter-name>char</filter-name>
<filter-class>cn.mldn.lxh.filter.CharFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
*/