`
AquariusM
  • 浏览: 146977 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

2010年9月28号---J2EE学习之Spring AOP学习笔记&&Servlet请求转发 RequestDispatcher接口

阅读更多

之前163博客的东西,现在转过来方便自己阅读 

 

spring学习笔记 2009-12-12 16:01:02 

 今天把Spring AOP大致看完了,做了一些笔记:


AOP的重要术语:(摘自Spring开发参考手册)
  • 切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象。事务管理是J2EE应用中一个关于横切关注点的很好的例子。在Spring AOP中,切面可以使用基于模式)或者基于@Aspect注解的方式来实现。

  • 连接点(Joinpoint):在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。

  • 通知(Advice):在切面的某个特定的连接点上执行的动作。其中包括了“around”、“before”和“after”等不同类型的通知(通知的类型将在后面部分进行讨论)。许多AOP框架(包括Spring)都是以拦截器做通知模型,并维护一个以连接点为中心的拦截器链。

  • 切入点(Pointcut):匹配连接点的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。切入点表达式如何和连接点匹配是AOP的核心:Spring缺省使用AspectJ切入点语法。

  • 引入(Introduction):用来给一个类型声明额外的方法或属性(也被称为连接类型声明(inter-type declaration))。Spring允许引入新的接口(以及一个对应的实现)到任何被代理的对象。例如,你可以使用引入来使一个bean实现de>IsModifiedde>接口,以便简化缓存机制。

  • 目标对象(Target Object): 被一个或者多个切面所通知的对象。也被称做被通知(advised)对象。 既然Spring AOP是通过运行时代理实现的,这个对象永远是一个被代理(proxied)对象。

  • AOP代理(AOP Proxy):AOP框架创建的对象,用来实现切面契约(例如通知方法执行等等)。在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。

  • 织入(Weaving):把切面连接到其它的应用程序类型或者对象上,并创建一个被通知的对象。这些可以在编译时(例如使用AspectJ编译器),类加载时和运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。

通知类型:

  • 前置通知(Before advice):在某连接点之前执行的通知,但这个通知不能阻止连接点之前的执行流程(除非它抛出一个异常)。

  • 后置通知(After returning advice):在某连接点正常完成后执行的通知:例如,一个方法没有抛出任何异常,正常返回。

  • 异常通知(After throwing advice):在方法抛出异常退出时执行的通知。

  • 最终通知(After (finally) advice):当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。

  • 环绕通知(Around Advice):包围一个连接点的通知,如方法调用。这是最强大的一种通知类型。环绕通知可以在方法调用前后完成自定义的行为。它也会选择是否继续执行连接点或直接返回它自己的返回值或抛出异常来结束执行。

    Servlet请求转发 RequestDispatcher接口(转载)

    spring学习笔记 2010-04-12 17:04:46 

    RequestDispatcher的介绍

    2007年02月15日 星期四 下午 03:40

     

     

    RequestDispatcher是一个Web资源的包装器,可以用来把当前request传递到该资源,或者把新的资源包括到当前响应中。RequestDispatcher接口中定义了两个方法:include/forward

    由于<jsp:include>只能指定固定的jsp文件名,不能动态指定jsp文件名。我们需要把<jsp:include>翻译为Java code – RequestDispatcher.include();

    用法:

    <% request.getRequestDispatcher(filename).include(request, response); />

    服务器端的重定向可以有两种方式,一是使用HttpServletResponse的sendRedirect()方法,一是使用RequestDispatcher的forward()方法.

    HttpServletResponse.sendRedirect()方法将响应定向到参数location指定的、新的URL。location可以是一个绝对的URL,如response.sendRedirect("http://java.sun.com") 也可以使用相对的URL。如果location以“/”开头,则容器认为相对于当前Web应用的根,否则,容器将解析为相对于当前请求的URL。这种重定 向的方法,将导致客户端浏览器的请求URL跳转。从浏览器中的地址栏中可以看到新的URL地址,作用类似于上面设置HTTP响应头信息的实现。

    RequestDispatcher.forward()方法将当前的request和 response重定向到该RequestDispacher指定的资源。这在实际项目中大量使用,因为完成一个业务操作往往需要跨越多个步骤,每一步骤 完成相应的处理后,转向到下一个步骤。比如,通常业务处理在Servlet中处理,处理的结果转向到一个JSP页面进行显示。这样看起来类似于 Servlet链的功能,但是还有一些区别。一个RequestDispatcher对象可以把请求发送到任意一个服务器资源,而不仅仅是另外一个 Servlet。 include()方法将把Request Dispatcher资源的输出包含到当前输出中。

    注意,只有在尚未向客户端输出响应时才可以调用forward()方法,如果页面缓存不为空,在重定向前将自动清除缓存。否则将抛出一个IllegalStateException异常。

     

    Servlet请求转发 RequestDispatcher接口

    2008-12-31 15:33

     

     

    在Servlet中,利用RequestDispatcher对象,可以将请求转发给另外一个Servlet或JSP页面,甚至是HTML页面,来处理对请求的响应。

    一,RequestDispatcher接口方法简介  

          1,RequestDispatcher对象由Servlet容器来创建,封装一个由路径所标识的服务器资源。    

          2,RequestDispatcher接口中定义了二种方法用于请求转发:    

              forward(ServletRequest,ServletResponse)方法:      

                       将请求转发给服务器上另外一个Servlet,JSP页面,或者HTML文件       这个方法必须在响应被提交给客户端之前调用,否则抛出异常。      

                      方法调用后在响应中的没有提交的内容被自动消除。    

              include(ServletRequest,ServletResponse)方法 :     

                     用于在响应中包含其他资源(Servlet,JSP页面或HTML文件)的内容。      

                     即请求转发后,原先的Servlet还可以继续输出响应信息,转发到的Servlet对请求做出的响应将并入原先Servlet的响应对象中。      

          3,forward方法和include方法的区别:

                      forward方法调用后在响应中的没有提交的内容被自动消除。    include方法使原先的Servlet和转发到的Servlet都可以输出响应信息。   

    二,得到RequestDispatcher对象  

          三种方法可以得到RequestDispatcher对象:   

                 1,利用ServletRequest接口中的getRequestDispatcher(String path)方法。   

                  2,ServletContext接口中getNamedDispatcher(String path)和getRequestDispatcher(String path)方法。

         ServletRequest接口和ServletContext接口中getRequestDispatcher方法区别:   

                  1,参数的区别    

                          参数虽然都是资源路径名,ServletContext接口的中参数路径必须以“/”开始,是相对于当前Servlet上下文根,     ServletRequest接口中的参数路径不仅可以相对于当前Servlet上下文根,还可以相对与当前Servlet路径    

                 2,跨WEB应用程序访问资源    

                          通过ServletContext.getContext()方法获取另个WEB应用程序的上下文环境对象来     调用getRequestDispatcher(String path)方法 将请求转发到另个WEB应用程序的资源。                       

                         还需要在当前WEB应用程序配置中设置<context>元素,指定crossContext属性值为true。

    三,ServletResqonse接口中的sendReadirect()方法和forward()方法的区别  

            二个方法都是用于请求转发的方法,转发给另外的资源为客户端服务。但二者有本质的区别

           sendReadirect()方法原理:   

                  1,客户端发送请求,Servlet1做出处理。   

                  2,Servlet1调用sendReadirect()方法,将客户端的请求重新定位到Servlet2。   

                  3,客户端浏览器访问Servlet2.  

                 4,Servlet2对客户端浏览器做出响应。

          forward()方法原理:  

                  1,客户端发送请求,Servlet1做出处理。  

                  2,Servlet1调用sendReadirect()方法,将请求转发给Servlet2来处理请求,为客户端服务。   

                  3,Servlet2对客户端浏览器做出响应。      

         区别:   

              1,定位与转发   

                       sendReadirect()方法是重新定位到另外一个资源来处理请求,URL会重新定位,让客户端重新访问另外一个资源。     forward()方法是转发到另外一个资源来处理请求。URL不会变化。隐藏了处理对象的变化。   

               2,处理请求的资源的范围   

                     sendReadirect()方法可以跨WEB应用程序和服务器重新定位资源来处理请求。     forward()方法只能在应用程序内部转发。

    转载路径:http://www.51testing.com/?uid-202848-action-viewspace-itemid-124298

 

 

分享到:
评论

相关推荐

    spring-aop.jar各个版本

    spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...

    开发工具 spring-aop-4.3.6.RELEASE

    开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE开发工具 spring-aop-4.3.6.RELEASE...

    spring aop 学习笔记

    本学习笔记将深入探讨Spring AOP的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...

    spring-aop-jar

    "spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨Spring AOP、相关jar文件以及它们在实际开发中的作用。 首先,我们来看一下提供的文件: 1. aopalliance.jar:这是一...

    spring,spring-aop-5.3.22.jar+aop+IDEA本地包

    spring-aop-5.3.22.jar Spring AOP provides an Alliance-compliant aspect-oriented programming implementation allowing you to define method interceptors and pointcuts to cleanly decouple code that ...

    Spring5 框架 ---- AOP ---- 代码

    Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 ...

    spring源码--AOP流程--笔记.docx

    Spring AOP 源码分析笔记 Spring AOP(Aspect-Oriented Programming)是一种编程范式,它允许开发者 modularize cross-cutting concerns,即将横切关注点模块化。AOP 使得开发者可以将一些公共的功能模块化,以便在...

    SpringAop学习笔记以及实现Demo

    **Spring AOP 学习笔记及实现Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的主要目的...

    J2EE_Spring之AOP与依赖注入例子

    Spring框架是J2EE开发中的核心组件,它简化了企业级应用的开发过程,特别是在AOP(面向切面编程)和依赖注入(Dependency Injection,DI)方面。 AOP是一种编程范式,允许开发者定义“横切关注点”,即跨越多个对象...

    spring-aop-5.2.0.RELEASE-API文档-中文版.zip

    赠送jar包:spring-aop-5.2.0.RELEASE.jar; 赠送原API文档:spring-aop-5.2.0.RELEASE-javadoc.jar; 赠送源代码:spring-aop-5.2.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-aop-5.2.0.RELEASE.pom;...

    Spring Aop 学习笔记

    Spring Aop 学习笔记

    AOP流程源码分析-SpringAOP中定义的类图

    AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析...

    spring-aop-5.0.8.RELEASE-API文档-中英对照版.zip

    赠送jar包:spring-aop-5.0.8.RELEASE.jar; 赠送原API文档:spring-aop-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-aop-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-aop-5.0.8.RELEASE.pom;...

    Spring AOP学习笔记

    NULL 博文链接:https://linres.iteye.com/blog/281221

    Spring进行AOP操作需要的4个jar包

    Spring进行aop操作需要的4个jar包,包括aopalliance-1.0.jar、aspectjweaver-1.8.9.jar、spring-aop-4.3.0.RELEASE.jar、spring-aspects-4.3.0.RELEASE.jar。

    java笔记--从菜鸟到j2se j2ee高手之路

    本笔记旨在帮助初学者从零基础逐步提升至J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)的高手水平。J2SE是Java的核心部分,提供了用于桌面应用程序和服务器端开发的基础框架;而J2EE则是Java在...

    spring-aop-5.2.0.RELEASE.jar

    spring-aop-5.2.0.RELEASE

    spring-aop-6.0.2.jar

    spring-aop-6.0.2.jar

    Spring AOP实现机制

    Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许程序员在不修改源代码的情况下,通过“切面”来插入额外的业务逻辑,如日志、事务管理等。AOP的引入极大地提高了代码的可复用性和可维护性。 ### 1. ...

Global site tag (gtag.js) - Google Analytics