认证过滤器

我们可以在过滤器中执行认证。在这里,我们将在过滤器类中检查用户提供的密码,如果给定的密码是admin,它将把请求转发到WelcomeAdmin servlet,否则将显示错误信息。

使用过滤器进行用户认证的示例

让我们看一个使用过滤器进行用户认证的简单示例。

在这里,我们创建了4个文件:

  • index.html
  • MyFilter.java
  • AdminServlet.java
  • web.xml

index.html

<form action="servlet1">  
Name:<input type="text" name="name"/><br/>  
Password:<input type="password" name="password"/><br/>  
  
<input type="submit" value="login">  
  
</form>  

MyFilter.java

import java.io.IOException;  
import java.io.PrintWriter;  
import javax.servlet.*;  
  
public class MyFilter implements Filter{  
  
public void init(FilterConfig arg0) throws ServletException {}  
      
public void doFilter(ServletRequest req, ServletResponse resp,  
        FilterChain chain) throws IOException, ServletException {  
          
    PrintWriter out=resp.getWriter();  
          
    String password=req.getParameter("password");  
    if(password.equals("admin")){  
    chain.doFilter(req, resp);//sends request to next resource  
    }  
    else{  
    out.print("username or password error!");  
    RequestDispatcher rd=req.getRequestDispatcher("index.html");  
    rd.include(req, resp);  
    }  
          
}  
    public void destroy() {}  
  
}  

AdminServlet.java

import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.*;  
  
public class AdminServlet extends HttpServlet {  
public void doGet(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException {  
  
        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  
          
        out.print("welcome ADMIN");  
        out.close();  
    }  
}  

web.xml

<web-app>  
 <servlet>  
    <servlet-name>AdminServlet</servlet-name>  
    <servlet-class>AdminServlet</servlet-class>  
  </servlet>  
  
  <servlet-mapping>  
    <servlet-name>AdminServlet</servlet-name>  
    <url-pattern>/servlet1</url-pattern>  
  </servlet-mapping>  
    
 <filter>  
  <filter-name>f1</filter-name>  
  <filter-class>MyFilter</filter-class>  
  </filter>  
  <filter-mapping>  
  <filter-name>f1</filter-name>  
  <url-pattern>/servlet1</url-pattern>  
  </filter-mapping>  
    
</web-app>  

标签: java, Java Servlet, Java Servlet语言, Java Servlet开发, Java Servlet语法, Java Servlet脚本, Java Servlet教程, Java Servlet入门, Java Servlet入门教程, Java Servlet进阶, Java Servlet宝典, Java Servlet学习, Java Servlet指南, Java Servlet大全