首先 建一个名为SetEncodingFilter的普通类,让其继承HttpServlet实现Filter
类内容如下:
/*
×中文过滤器
*/
public class SetEncodingFilter extends HttpServlet implements Filter {
protected String encoding = null;
protected boolean ignore = true;
public void init(FilterConfig filterConfig) throws ServletException {
encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
response.setContentType("text/html; charset="+encoding);
chain.doFilter(request, response);
}
}
web.xml 配置如下:
<filter>
<filter-name>SetEncodingFilter</filter-name>
<filter-class>com.xfz.ytjob.filter.SetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
安全过滤器
public class SafeFilter extends HttpServlet implements Filter {
private static final Logger logger = Logger.getLogger(SafeFilter.class);
public void init(FilterConfig arg0) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("安全过滤器");
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse resp=(HttpServletResponse)response;
HttpSession session=req.getSession();
String basePath = req.getContextPath()+"/";
if(session.getAttribute("userName")==null){
logger.info("安全过滤器");
resp.sendRedirect(basePath+"index.jsp");
}else{
chain.doFilter(request, response);
}
web.xml 配置如下:
<filter-mapping>
<filter-name>SafeFilter</filter-name>
<url-pattern>/目标文件夹/*</url-pattern>
</filter-mapping>