servlet拦截器配置教程
一、创建拦截器类,实现Filter 接口,重写拦截器方法
destroy(),doFilter(),init();
拦截器要做的事情,在doFilter()方法里写;
拦截做完后,调用FilterChain.doFilter(request, response),将信息传递给下一个拦截器,如过只有一个拦截器,并且拦截通过,则跳到该跳的页面。
public class LoginFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
req.setCharacterEncoding("utf-8");
res.setCharacterEncoding("utf-8");
res.setContentType("utf-8");
HttpServletRequest request=(HttpServletRequest)req;
HttpServletResponse response=(HttpServletResponse)res;
HttpSession session = request.getSession();
if(session.getAttribute("flag")==null){
PrintWriter out = response.getWriter();
out.print("<script type='text/javascript'>alert('非法访问,请登录!');" +
"location='/filter/index.jsp'; chartset='utf-8';</script>");
}else{
chain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
}
}
二、配置web.xml拦截器信息。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 拦截器属性 -->
<filter>
<filter-name>LoginFilter</filter-name> <!-- 拦截器名称,建议与类同名 -->
<filter-class>filter.LoginFilter</filter-class><!-- 拦截器类 -->
</filter>
<!-- 拦截器映射 -->
<filter-mapping>
<filter-name>LoginFilter</filter-name> <!-- 要映射的拦截器名称 -->
<url-pattern>/user/*</url-pattern> <!-- 拦截器拦截地址 -->
</filter-mapping>
</web-app>