`
指隙阳光12138
  • 浏览: 17969 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Java】走得越远就越觉得不了解

 
阅读更多

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 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学...2. 想阅读 Java 核心源码,但总感觉看不懂的 3. 看了太多理论,但没有实践验证的 4. 求职面试,总被面试题搞的死去活来的

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    最新Java文档五百篇

    领域被国外的同行越拉越远--在硅谷的感受。 我是96年毕业的,正值java刚出,火气冲天之时。 我当时是一名C++的狂热者,有着3年的C++经验。 接触java也仅仅是在作毕业设计的时候用过,对java也算是有了基本了解, ...

    Java API文档 中文网页版

    Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...

    java方法练习.docx

    Java 方法练习 本文档提供了多个 Java 方法练习题,涵盖了基本数据类型、方法重载、计算器等多个方面。下面是对每个题目的知识点总结: 1. 将数字转换为星期字符串 * Java 中的 switch 语句:用于根据不同的输入...

    java全攻略

    本全攻略将围绕"Java SE(标准版)"和"Java EE(企业版)"两大核心领域展开,旨在帮助你深入理解并掌握Java编程的精髓,让你的Java之路越走越远。 一、Java SE基础篇 1. **环境搭建**:首先,我们需要安装JDK(Java...

    大话JAVA性能优化.pdf

    大话Java性能优化》主要提供Java性能调优...总的来说,性能调优在很大程度上是一门艺术,解决的Java性能问题越多,技艺才会越精湛。我们不仅要关心JVM的持续演进,也要积极地去了解底层的硬件平台和操作系统的进步。

    一份通俗易懂、风趣幽默的Java学习指南内容涵盖Java基础、Java并发编程、Java虚拟机、Java企业级开发、Java面试

    Java编程语言作为全球最受欢迎的开发语言之一,深受程序员的喜爱。这份名为"toBeBetterJavaer-master"的压缩包文件,提供了一份全面且深入的Java学习资源,...祝你在Java的世界里越走越远,成为一名更优秀的Javaer!

    java经典例题,包含很多经典例题。

    在 Java 语言实践中,我们需要了解 Java 语言的实际应用,包括 Java Web 开发、Java桌面应用开发等。同时,我们还需要了解 Java 语言的实际项目开发,包括项目设计、项目实现、项目测试等。 在 Java 语言实践中,...

    Java生成不重复的任意位随机数

    巧用Java实现得到任意位永不重复的随机数,很经典的代码!

    java2python--java代码转python工具

    Java到Python的转换工具,如标题“java2python”所示,是编程领域中的一种实用技术,旨在帮助开发者将已有的Java代码转换为Python语言。这种转换对于那些熟悉Java但希望进入Python生态系统,或者想要利用Python特定...

    基于Java的远程视频会议系统(系统+论文).rar

    这两年太卷了,毕设和毕业 答辩竞争激烈,越写越卷,没有创新和亮点的毕业答辩基本达不到老师的要求。 现在学长为你们准备基于JAVA 毕业设计项目,需要的自取哦。基于Java的远程视频会议系统(系统+论文 这两年太卷...

    java转js工具

    综上所述,"java转js工具"是一个重要的开发辅助工具,它帮助开发者在Java和JavaScript之间架起桥梁,使得跨平台开发变得更加便捷。然而,使用时需要注意语言特性的差异,以及转换过程中可能出现的问题和挑战。

    Java图形界面应用程序

    "作为一个 Java 程序员,从论坛上感受到使用 Java 开发程序的人越来多,心中不免欣慰。但是,同样是从论坛中,看到多数人提到 Java 就以为是网络开发——不是这样的,Java 也可以开发应用程序,而且可以开发出漂亮的...

    2024最强Java面试八股文

    《2024最强Java面试八股文》是一份针对Java面试的全面指南,内容涵盖JVM、MQ、MyBatis、MySQL、Redis、Spring Boot、Spring Cloud以及设计模式等多个方面。这份资料旨在帮助求职者系统地复习和掌握Java及相关技术的...

    JAVA 手机开发入门教程

    Java手机开发,主要指的是使用Java语言进行移动应用的开发,特别是在Android平台上,Java扮演着核心角色。本入门教程旨在帮助初学者理解并掌握Java在移动设备上的应用开发技能...祝你在Java手机开发的道路上越走越远!

    Java基础总结_java初学_java基础

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。本文将深入探讨Java的基础知识,包括语法、类与对象、数据结构、控制流以及面向...不断实践和深入学习,将使你在Java开发道路上越走越远。

    java开源包9

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    JAVA实习报告 java

    【JAVA实习报告】\n\n实习是每个计算机科学专业学生踏入职场的重要步骤,尤其是在Java软件开发领域。通过实习,学生可以将理论知识付诸实践,加深理解并积累宝贵经验。本报告将围绕Java实习的目的、实习过程以及实习...

Global site tag (gtag.js) - Google Analytics