首页 > 编程 > JSP > 正文

JSP使用Servlet过滤器进行身份验证的方法

2024-09-05 00:22:26
字体:大 中 小
来源:转载
供稿:网友

这篇文章主要介绍了JSP使用Servlet过滤器进行身份验证的方法,结合实例形式分析了Servlet过滤器的实现方法及jsp身份验证的具体使用技巧,需要的朋友可以参考下

本文实例讲述了JSP使用Servlet过滤器进行身份验证的方法。分享给大家供大家参考,具体如下:

1、Servlet过滤器的作用描述

(1)在HttpServletRequest到达Servlet 之前,拦截客户的HttpServletRequest。

根据需要检查HttpServletRequest,也可以修改HttpServletRequest头和数据。

(2)在HttpServletResponse 到达客户端之前,拦截HttpServletResponse。

根据需要检查HttpServletResponse,可以修改HttpServletResponse头和数据。

2、应用Servlet过滤器进行身份验证

假设网站根目录下的login1.htm、longin1.jsp用于用户登录,而chap08目录下的文件需要用户登录后才能访问。

(1)编写Servlet过滤器

 

 
  1. @WebFilter("/FilterStation") 
  2. public class FilterStation extends HttpServlet implements Filter { 
  3. private FilterConfig filterConfig; 
  4. public FilterStation() { 
  5. super(); 
  6. } 
  7. public void destroy() { 
  8. } 
  9. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
  10. HttpSession session=((HttpServletRequest)request).getSession(); 
  11. response.setCharacterEncoding("gb2312"); 
  12. if(session.getAttribute("me")==null){ 
  13. PrintWriter out=response.getWriter(); 
  14. out.print("<script>alert('请登录!');location.href='../login1.htm'</script>"); 
  15. } 
  16. else{ 
  17. // pass the request along the filter chain 
  18. chain.doFilter(request, response); 
  19. } 
  20. } 
  21. public void init(FilterConfig fConfig) throws ServletException { 
  22. // TODO Auto-generated method stub 
  23. this.filterConfig=fConfig; 
  24. } 
  25. } 

(2)配置web.xml

 

 
  1. <filter> 
  2. <filter-name>filterstation</filter-name> 
  3. <filter-class>zhou.FilterStation</filter-class> 
  4. </filter> 
  5. <filter-mapping> 
  6. <filter-name>filterstation</filter-name> 
  7. <url-pattern>/chap08/*</url-pattern> 
  8. </filter-mapping> 

(3)login1.htm代码

 

 
  1. <html> 
  2. <head> 
  3. <title>用户登录</title> 
  4. </head> 
  5. <body> 
  6. <form method="POST" action="login1.jsp"> 
  7. <p>用户名:<input type="text" name="user" size="18"></p> 
  8. <p>密码:<input type="text" name="pass" size="20"></p> 
  9. <p><input type="submit" value="提交" name="ok"> 
  10. <input type="reset" value="重置" name="cancel"></p> 
  11. </form> 
  12. </body> 
  13. </html> 

(4)login1.jsp代码

 

 
  1. <%@ page contentType="text/html;charset=GB2312" %> 
  2. <html> 
  3. <head><title>Session 应用演示</title></head> 
  4. <%  
  5. if (request.getParameter("user")!=null && request.getParameter("pass")!=null) 
  6. { 
  7. String strName=request.getParameter("user"); 
  8. String strPass=request.getParameter("pass"); 
  9. if (strName.equals("admin") && strPass.equals("admin")) 
  10. { 
  11. session.setAttribute("login","OK"); 
  12. session.setAttribute("me",strName); 
  13. response.sendRedirect("chap08/welcome.jsp"); 
  14. } 
  15. else 
  16. { 
  17. out.print("<script>alert('用户名或密码错误');location.href='login1.htm'</script>"); 
  18. } 
  19. } 
  20. %> 
  21. </html> 

希望本文所述对大家JSP程序设计有所帮助。


注:相关教程知识阅读请移步到JSP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表