在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-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的核心概念、工作原理以及实际应用。 1. **核心概念** - **切面(Aspect)**:切面是关注点的模块化,包含业务逻辑之外的横切关注点,如日志、事务管理。 - **连接点(Join Point...
"spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨Spring AOP、相关jar文件以及它们在实际开发中的作用。 首先,我们来看一下提供的文件: 1. aopalliance.jar:这是一...
Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 ...
Spring AOP 源码分析笔记 Spring AOP(Aspect-Oriented Programming)是一种编程范式,它允许开发者 modularize cross-cutting concerns,即将横切关注点模块化。AOP 使得开发者可以将一些公共的功能模块化,以便在...
**Spring AOP 学习笔记及实现Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的主要目的...
Spring框架是J2EE开发中的核心组件,它简化了企业级应用的开发过程,特别是在AOP(面向切面编程)和依赖注入(Dependency Injection,DI)方面。 AOP是一种编程范式,允许开发者定义“横切关注点”,即跨越多个对象...
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 ...
赠送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 学习笔记
AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析-SpringAOP中定义的类图AOP流程源码分析...
赠送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;...
NULL 博文链接:https://linres.iteye.com/blog/281221
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。
本笔记旨在帮助初学者从零基础逐步提升至J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)的高手水平。J2SE是Java的核心部分,提供了用于桌面应用程序和服务器端开发的基础框架;而J2EE则是Java在...
spring-aop-5.2.0.RELEASE
Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许程序员在不修改源代码的情况下,通过“切面”来插入额外的业务逻辑,如日志、事务管理等。AOP的引入极大地提高了代码的可复用性和可维护性。 ### 1. ...
spring-aop-6.0.2.jar