Java Web应用中基于Filter的访问权限控制实现.docVIP

Java Web应用中基于Filter的访问权限控制实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java Web应用中基于Filter的访问权限控制实现   摘要摘要:简要描述了常规使用Java脚本实现的jsp页面访问权限控制,并详细阐述了Filter的基本原理和实现方式。在此基础上,运用Filter构建访问权限控制方案,并将其与Java脚本方案进行对比分析。结果表明,使用Filter对用户请求进行预处理,实现对jsp页面访问权限进行控制的方案,具备开发容易、效率高的优势。   关键词关键词:Java;服务请求;Web应用   DOIDOI:10.11907/rjdk.161995   中图分类号:TP312文献标识码:A文章编号文章编号2017)001004103   0引言   实现对页面访问权限的控制是所有Web应用中一个无法回避的问题,对于Java Web应用而言,惯常的做法是使用Java脚本来实现,但这种实现方式比较繁琐,需要在每个要求控制的页面上都添加控制脚本。该方式还有一个更致命的问题:当控制代码发生改变时,修改维护的工作量极大。Filter又称过滤器,是从Servlet2.3开始增加的功能,它可以改变用户Request请求和修改一个Response响应[13]。充分利用Filter过滤器的这一特性使得程序员可以在用户请求页面资源时,拦截request请求并进行权限验证,从而拒绝非法访问请求。   本文将分别运用Java脚本和Filter过滤器来实现访问权限控制,并对两种方案的优劣进行对比分析。1基于Java脚本方案的访问权限控制实现   在Filter出现之前,在Java Web应用中实现访问权限控制最常见的方案就是Servlet+Java脚本。其基本原理是Servlet控制器负责处理请求并进行用户合法性验证,Java脚本负责页面访问权限控制。   当用户通过浏览器发出登录请求Request时,该请求会被交给负责控制登录请求的控制器Servlet,Servlet控制器则调用Service方法进行响应。该方法的原型如下:   protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException   登录请求参数的传递有两种方式:一种是Get方式,另一种是Post方式。根据请求参数传递方式的不同,Service方法调用不同的处理请求方法:doGet和doPost。其中doGet方法用于处理Get方式的请求,doPost方法用于处理Post方式的请求。通过表单Form登录通常采用的是Post请求方式,因此需要在doPost方法中实现对用户合法性进行验证,如果验证通过则将验证通过标识或者用户名等标识符以keyvalue键值对的形式保存在本次会话的HttpSession类型的实例化Session对象中。   假设登录页面文件为login.jsp,登录成功的目标页面为xx.jsp,表单Form的登录请求参数被封装为一个对象loginUser,该对象具有获取用户名的方法getName(),判断用户合法性的方法原型为:   当Web应用启动时会去装载Filter接口的实现类,Web容器首先实例化Filter实现类,并通过该实例对象调用其init()方法进行初始化。初始化完成的Filter对象被Web容器保存进应用级的集合容器中去等待用户访问资源。当用户访问的资源与web.xml配置文件中配置的Filter的url-pattern相匹配时,该请求即被拦截,此时,容器会取出Filter实例对象调用其doFilter方法。??应用服务被停止或重新装载时,则会执行Filter实例化对象的destroy方法将该对象销毁。   如前所述,编译完成后的Filter实现类字节码文件(.class文件)并不具备对各种请求进行拦截过滤处理的能力,开发人员还必须在Web应用中对Filter进行一系列的配置。配置Filter有两种方式:一种是在web.xml文件中进行配置,另外一种是在Filter实现类中使用Annotation注解@WebFilter方式进行配置。   3基于Filter方案的访问权限控制实现   使用Filter实现Java Web应用中的页面访问权限控制比较容易,与Java脚本方案相同的是在处理登录请求的Servlet中,将验证通过标识符或者用户名等标识符以keyvalue键值对的形式保存在HttpSession实例对象中。然后编写用于用户访问权限控制的过滤器类,假定过滤器类名为CheckFilter,则该类的声明如下:   public class CheckFilter implements Filte

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档