实现一个过滤器需要两个步骤:
实现 3 个方法
Ÿ初始化方法:表示的是过滤器初始化时的动作。 public void init(FilterConfig config) ;
Ÿ消亡方法:表示的是过滤器消亡时候的动作。 public void destroy() ;
过滤函数:表示的是过滤器过滤时的动作。 public voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain) ;
过滤器的配置有以下几个步骤:
用<filter-mapping>配置过滤器的映射
过滤所有文件
<filter-mapping>
<filter-name>FilterName</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
下面为实例代码:
package com.wjrong.filter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher rd=null;
String username=request.getParameter("uname");
String userpass=request.getParameter("upass");
if(username.equals("uname")&&userpass.equals("123")){
//登录成功后,为了保存用户登录的状态?
HttpSession session= request.getSession();
session.setAttribute("user", username);
rd=request.getRequestDispatcher("/index.jsp");
}else{
rd=request.getRequestDispatcher("/login.jsp");
}
rd.forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}