<filter>
<filter-name>filter
</filter-name>
<filter-class>com.study.filter.FilterTest
</filter-class>
</filter>
<filter-mapping>
<filter-name>filter
</filter-name>
<url-pattern>/*
</url-pattern><!-- 对所有servlet进行拦截 -->
</filter-mapping>
<filter>
<filter-name>filter2
</filter-name>
<filter-class>com.study.filter.FilterTest2
</filter-class>
</filter>
<filter-mapping>
<filter-name>filter2
</filter-name>
<url-pattern>*.do
</url-pattern><!-- 针对别名为*.do结尾的servlet进行拦截 -->
</filter-mapping>
<filter>
<filter-name>filter3
</filter-name>
<filter-class>com.study.filter.FilterTest3
</filter-class>
</filter>
<filter-mapping>
<filter-name>filter3
</filter-name>
<url-pattern>/servlet.do
</url-pattern><!-- 针对别名为servlet.do的servlet进行拦截 -->
</filter-mapping>
注意:/*表示对所有servlet请求进行拦截; *.do表示对别名为.do的servlet请求进行拦截,不要加“/”,会报错 /servlet.do表示针对单个别名为servlet.do的servlet.do请求进行拦截生命周期:服务器启动到关闭作用: 1.统一编码管理; 2.session管理 3.图片水印,和谐词汇 4.权限管理等
public class FilterTest
implements Filter{
@Override
public void destroy() {
System.out.println("destroy!1"
);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("utf-8"
);
response.setContentType("text/html;charset=utf-8"
);
HttpSession session=
((HttpServletRequest)request).getSession();
//使用方法:设置编码格式,判断session是否失效
if(session.getAttribute("uname")==
null) {
//如果session失效,则重新登陆
((HttpServletResponse)response).sendRedirect("/studyWeb/aJax.jsp"
);
}else {
//通过。执行用户请求的servlet
chain.doFilter(request, response);
//
}
//执行完用户请求的servlet后,回来继续执行以下代码
System.out.println("完成!!"
);
}
@Override
public void init(FilterConfig arg0)
throws ServletException {
System.out.println("init"
);
}
}
转载于:https://www.cnblogs.com/lastingjava/p/9902604.html