我们可以在过滤器中执行身份验证。在这里, 我们将检查过滤器类中用户提供的密码, 如果给定的密码是admin, 它将把请求转发到WelcomeAdmin servlet, 否则将显示错误消息。
使用过滤器验证用户的示例
让我们看一下使用过滤器验证用户身份的简单示例。
在这里, 我们创建了4个文件:
- index.html
- MyFilter.java
- AdminServlet.java
- web.xml
<
form action="servlet1">
Name:<
input type="text" name="name"/>
<
br/>
Password:<
input type="password" name="password"/>
<
br/>
<
input type="submit" value="http://www.srcmini.com/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>
下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
【Servlet认证过滤器介绍和用法详解】下载此示例(使用Netbeans IDE开发)
推荐阅读
- Servlet中的属性介绍
- Servlet开发 | Servlet教程介绍
- Servlet Web基本术语介绍
- Servlet开发之war文件详细解释
- Servlet接口基本介绍
- Servlet API基本介绍
- Servlet开发基础(生命周期详细介绍)
- HttpServlet类介绍和用法示例
- Servlet如何工作(工作原理详细解释——)