首页 > 开发 > JSP > 正文

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

2019-10-27 18:00:45
字体:
来源:转载
供稿:网友

这篇文章主要介绍了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. public void destroy() { 
  7. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
  8. HttpSession session=((HttpServletRequest)request).getSession(); 
  9. response.setCharacterEncoding("gb2312"); 
  10. if(session.getAttribute("me")==null){ 
  11. PrintWriter out=response.getWriter(); 
  12. out.print("<script>alert('请登录!');location.href='../login1.htm'</script>"); 
  13. else
  14. // pass the request along the filter chain 
  15. chain.doFilter(request, response); 
  16. public void init(FilterConfig fConfig) throws ServletException { 
  17. // TODO Auto-generated method stub 
  18. this.filterConfig=fConfig; 

(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. String strName=request.getParameter("user"); 
  7. String strPass=request.getParameter("pass"); 
  8. if (strName.equals("admin") && strPass.equals("admin")) 
  9. session.setAttribute("login","OK"); 
  10. session.setAttribute("me",strName); 
  11. response.sendRedirect("chap08/welcome.jsp"); 
  12. else 
  13. out.print("<script>alert('用户名或密码错误');location.href='login1.htm'</script>"); 
  14. %> 
  15. </html> 

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


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