java过滤器分析和总结.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

在基于JSP页面系统设计开发中,经常有一批页面需要对用户的身份进行验证,只有合法的用户才可以访问这些页面。显然可以在每个页面中添加身份验证,但这样做会给编程造成很大的麻烦,而且增加多余的代码。那么,如何解决JSP页面用户身份验证呢?

二、JSP页面中用户身份验证分析

在有多个用户使用的JSP系统中,为了保障系统的隐秘性安全性,就需要对登录系统的用户进行身份验证以保证用户身份的合法性。一个用户首次登录系统后会在session对象中留下它的标识[1],就可以利用这个标识来完成各个JSP页面的用户身份验证。为了避免每个页面都进行身份验证而出现的麻烦,这里将通过Servlet过滤器对JSP页面统一进行身份验证。

三、用户身份验证的设计思路和技术要点

1、设计思路

Servlet过滤器验证用户是围绕session对象进行的。首先是实现用户登录的功能,在用户登录成功后产生一个session标识;然后创建Servlet过滤器,判断标识值是否正确,如果正确则通过验证,否则将给出提示信息并跳转到用户登录页面。

2、技术要点

使用Servlet过滤器实现JSP页面中用户身份验证,首先必须实现Filter接口,且重写doFilter()方法,由doFilter()方法去处理过滤业务;其次,在web.xml文件中配置Servlet过滤器,指定过滤器的名称、过滤器包所在类的名称及过滤器的映射范围等[2]。

四、JSP页面中用户身份验证的实现

1、用户身份合法性确认

为了能够使用Servlet过滤器实现用户对JSP页面访问的合法性验证,首先需要根据用户登录号和密码等与数据库中的信息相比较,若能匹配成功,则是用户登录成功,就用session对象存储该用户的标识;然后再由Servlet过滤器实现对用户访问的各个页面的过滤。存储用户登录成功的session标识的核心代码为:session.setAttribute(user,

用户登录号)。

2、Servlet过滤器的实现

用Servlet过滤器实现用户身份验证的关键代码如下:

packagehzu.util.filters;

publicclassUserFilterextendsHttpServletimplementsFilter{privateFilterConfigfilterConfig;

publicvoidinit(FilterConfigfilterConfig)throwsServletException{this.filterConfig=filterConfig;

}[NextPage]

publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsServletException,IOException{

HttpSessionsession=((HttpServletRequest)

request).getSession();if(session.getAttribute(“user”)==null){PrintWriterout=response.getWriter();

out.print(“scriptlanguage=javascriptalert(?您还没登录,请登录!!?);javascript:location=?系

统登录的主页面;/script);out.flush();

out.close();

}

else{

chain.doFilter(request,response);

}

}

}

3、在web.xml中配置Servlet过滤器

在编写完Servlet过滤器后,要在web.xml文件中配置过滤器。也就是通过filter/filter标签指定Servlet过滤器的名称、过滤器包所在类的名称,通过filter-mapping/filter-mapping标签配置Servlet过滤器的映射路径[3]。其关键代码如下:

filter

filter-nameUserLoginFilter/filter-name

filter-classhzu.util.filters.UserFilter/filter-class

/filter

filter-mapping

filter-nameUserLoginFilter/filter-name

url-pattern[/目录名]/*/url-pattern

dispatcherrequest/disp

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地湖北
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档