2014-6-2
Filter是个好东西,除了在请求过程中做些处理之外,甚至可以定义一个Filter专门用于收集Filter Chain中自己后面的Filter抛出的异常(try catch)。
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; //做try catch try { chain.doFilter(request, response); logger.debug("Chain processed normally"); } catch (IOException ex) { throw ex; } catch (Exception ex) { // Try to extract a SpringSecurityException from the stacktrace Throwable[] causeChain = throwableAnalyzer.determineCauseChain(ex); RuntimeException ase = (AuthenticationException) throwableAnalyzer.getFirstThrowableOfType(AuthenticationException.class, causeChain); if (ase == null) { ase = (AccessDeniedException)throwableAnalyzer.getFirstThrowableOfType(AccessDeniedException.class, causeChain); } if (ase != null) { handleSpringSecurityException(request, response, chain, ase); } else { // Rethrow ServletExceptions and RuntimeExceptions as-is if (ex instanceof ServletException) { throw (ServletException) ex; } else if (ex instanceof RuntimeException) { throw (RuntimeException) ex; } // Wrap other Exceptions. This shouldn't actually happen // as we've already covered all the possibilities for doFilter throw new RuntimeException(ex); } } }
上面的栗子就是Spring Security的Filter Chain中的ExceptionTranslateFilter的处理逻辑。之后自己也可以借鉴。对该类的分析链接:http://dead-knight.iteye.com/blog/1518463
相关推荐
初步的带新人了解JAVA,了解下很基础的一些东西。
标题“Java远程监控源码”涉及的是Java编程中关于远程监控和控制的实现。这个项目可能包含一个客户端(client)和服务器端...通过研究源码和了解各个文件的作用,开发者可以深入了解Java在实际应用中的强大功能。
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 java.lang.ref 提供了引用对象类,支持在某种程度上与垃圾回收器之间的交互。 java.lang.reflect 提供类...
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学...2. 想阅读 Java 核心源码,但总感觉看不懂的 3. 看了太多理论,但没有实践验证的 4. 求职面试,总被面试题搞的死去活来的
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
【Java菜鸟教程】是针对初学者精心编写的教程,旨在帮助新手快速掌握Java编程语言的基础知识。本教程全面覆盖了Java的核心概念和技术,是学习Java编程的理想起点。...祝你在Java编程的道路上越走越远!
距离中心像素越远的像素,其权重越小,因此,边缘的像素对中心像素的影响较小,从而实现模糊效果。 在"java-Gaussian.zip"压缩包中,有两个关键文件: 1. `Gaussian.class`:这是已经编译好的Java类文件,包含了...
Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...
本全攻略将围绕"Java SE(标准版)"和"Java EE(企业版)"两大核心领域展开,旨在帮助你深入理解并掌握Java编程的精髓,让你的Java之路越走越远。 一、Java SE基础篇 1. **环境搭建**:首先,我们需要安装JDK(Java...
大话Java性能优化》主要提供Java性能调优...总的来说,性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。
15.java集合工具类(了解)后期扩展.zip15.java集合工具类(了解)后期扩展.zip15.java集合工具类(了解)后期扩展.zip15.java集合工具类(了解)后期扩展.zip15.java集合工具类(了解)后期扩展.zip15.java集合工具...
Java编程语言作为全球最受欢迎的开发语言之一,深受程序员的喜爱。这份名为"toBeBetterJavaer-master"的压缩包文件,提供了一份全面且深入的Java学习资源,...祝你在Java的世界里越走越远,成为一名更优秀的Javaer!
《Java完全自学手册代码》是一本专为Java初学者和进阶者设计的教程,由马军、王灏等业内专家编著。本书的核心目标是帮助读者深入理解Java编程语言,掌握其...",坚持不懈的努力和实践,定会让你在编程道路上越走越远。
Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。本教程主要针对初学者,旨在提供Java编程的基础概念,让你对Java有一个全面而感性的理解。...祝你在Java编程的道路上越走越远!
巧用Java实现得到任意位永不重复的随机数,很经典的代码!
这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有创新和亮点的毕业答辩基本达不到老师的要求。 现在学长为你们准备基于JAVA 毕业设计项目,需要的自取哦。基于Java的远程视频会议系统(系统+论文 这两年太卷...
在这个信息化和数字化不断深化的时代,编程技能成为了职场竞争中的重要筹码,尤其是Java开发技能。Java语言以其强大的跨平台能力、成熟的社区和广泛应用...祝你在Java开发的道路上越走越远,成为一名真正的技术大咖。
让我们深入了解一下Java 17以及如何在Windows系统上进行安装。 Java 17,正式命名为Java SE 17 (Standard Edition),是Oracle公司推出的最新长期支持版(LTS),意味着它将获得至少五年的技术支持,包括安全更新和...
综上所述,"java转js工具"是一个重要的开发辅助工具,它帮助开发者在Java和JavaScript之间架起桥梁,使得跨平台开发变得更加便捷。然而,使用时需要注意语言特性的差异,以及转换过程中可能出现的问题和挑战。