`
json20080301
  • 浏览: 165413 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

SPRING MVC3.2案例讲解-请求重定向与请求转发

 
阅读更多
请求重定向与请求转发的比较,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有很大的区别。

1.RequestDispatcher.forward方法只能将请求转发给同一个Web应用中的组件,HttpServletResponse.sendRedirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到痛一个站点上的其他应用程序的资源,甚至是使用绝对URL重定向到其他站点的资源。对于sendRedirect如果传递的URL以"/"开头,他是相对于整个Web站点的根目录;对于forward如果传递的URL以"/"开头,它是相对于当前Web应用程序的根目录。

2.sendRedirect对浏览器做出的响应是重新发出对另外一个URL的访问请求,forward在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果

3.forward的调用者与被调用者之间共享相同的request对象和response对象,他们属于痛一个访问请求和响应过程;sendRedirect的调用者与被调用者使用各自的request和response对象,属于两个独立的访问请求和响应过程

请求重定向以redirect:开头,请求转发以forward:开头;
	@RequestMapping(value="/uriTemplate", method=RequestMethod.GET)
	public String uriTemplate(RedirectAttributes redirectAttrs) {
		redirectAttrs.addAttribute("account", "a123");  // Used as URI template variable
		redirectAttrs.addAttribute("date", new LocalDate(2011, 12, 31));  // Appended as a query parameter
		return "redirect:/redirect/{account}";
	}

	@RequestMapping(value="/uriComponentsBuilder", method=RequestMethod.GET)
	public String uriComponentsBuilder() {
		String date = this.conversionService.convert(new LocalDate(2011, 12, 31), String.class);
		UriComponents redirectUri = UriComponentsBuilder.fromPath("/redirect/{account}").queryParam("date", date)
				.build().expand("a123").encode();
		return "redirect:" + redirectUri.toUriString();
	}

	@RequestMapping(value="/{account}", method=RequestMethod.GET)
	public String show(@PathVariable String account, @RequestParam(required=false) LocalDate date) {
		return "redirect/redirectResults";
	}
	
	// http://127.0.0.1:8010/redirect/forward
	@RequestMapping(value="/forward", method=RequestMethod.GET)
	public String forward() {
		return "forward:/welcome";
	}
 
0
5
分享到:
评论
2 楼 json20080301 2013-06-09  
1 楼 jacking124 2013-06-09  
不错的,支持!

相关推荐

    SPRING MVC3.2案例讲解---配置

    **Spring MVC 3.2 案例讲解——配置** Spring MVC 是 Spring 框架的一个模块,专门用于处理Web应用程序的请求-响应模式。在3.2版本中,Spring MVC引入了一些重要的改进和增强,使得开发更加高效和灵活。本篇文章将...

    Spring MVC step-by-step 源码

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。它基于Spring框架,提供了模型-视图-控制器(MVC)架构,简化了开发过程。本资源"Spring MVC step-by-step 源码"是针对初学者准备的...

    spring mvc 3.2 + mybatis3.2 + freeMarker

    spring mvc 3.2 + mybatis3.2 + jsp + jstl + jquery + OSCache + freeMarker + mysql 用户登陆用统一的认证登陆接口:shiro; 前台用freeMarker 模板,还有 jsp!

    dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis, dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis整合.zip

    dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis, dubbo2.5-spring4-mybastis3.2-springmvc4-mongodb-redis整合

    spring-framework-3.2.x-for-eclipse.rar

    1. **下载与解压**:首先,你需要下载《spring-framework-3.2.x-for-eclipse.rar》压缩包,解压后会得到一个包含Spring源码的目录。 2. **导入项目**:启动Eclipse,选择菜单栏的"File" -> "Import",然后在弹出的...

    springmvc4.1+spring4.1+mybatis3.2+spring-security3.2的maven环境搭建

    在"baseArch"这个文件夹中,可能包含了项目的基本架构,包括pom.xml文件、Spring配置文件(如applicationContext.xml、spring-servlet.xml)、MyBatis的Mapper接口和XML配置、Spring Security的配置文件,以及可能的...

    spring-mvc-test-sample-master.zip_spring mvc_springmvc-test

    在"spring-mvc-test-sample-master.zip"这个压缩包中,我们很可能是得到了一个Spring MVC测试项目的源码示例,旨在帮助开发者更好地理解和应用Spring MVC。 首先,让我们深入理解Spring MVC的核心概念: 1. **...

    Mybatis 3.2.2 + Spring MVC 3.2

    这个项目应该是一个简单的Web应用程序,它允许开发者通过Spring MVC处理前端请求,并利用Mybatis作为持久层框架与数据库进行交互。现在,我们来详细探讨这两个框架以及它们的整合。 **Mybatis 3.2.2** Mybatis是一...

    translation-spring-mvc-4-documentation, Spring MVC 4.2.4 RELEASE 中文文档完整翻译稿.zip

    这个压缩包"translation-spring-mvc-4-documentation, Spring MVC 4.2.4 RELEASE 中文文档完整翻译稿.zip"包含了Spring MVC 4.2.4版本的官方文档的中文全译版,这对于中文开发者来说是一个极其宝贵的资源,它可以...

    SpringMVCDemo:Spring MVC 框架知识案例

    7.Spring MVC 请求转发与请求重定向案例 8.Spring MVC 下载 Excel 文档的需求案例 9.Spring MVC RESTful 风格的请求方式案例 10.Spring + Spring MVC + JDBCTemplate 整合并通过 RESTful 风格获取所有用户信息案例 ...

    spring MVC step-by-step

    在实际的开发过程中,你可能会遇到如国际化、数据验证、异常处理、视图重定向等场景,Spring MVC都提供了相应的机制来处理。例如,使用@ExceptionHandler注解可以捕获并处理特定类型的异常,而使用Model对象可以方便...

    spring mvc 3.2 参考文档

    Spring MVC 是一个强大的Java web开发框架,主要用于构建模型-视图-控制器(MVC)架构的应用程序。在Spring 3.2版本中,它提供了一系列高级特性和功能,旨在简化开发流程并提高代码的可维护性和灵活性。 核心组件是...

    spring-webmvc-5.0.9 jar包、源码和javadoc

    spring-webmvc-5.0.9.RELEASE-sources.jar则包含了源码,可以深入研究Spring Web MVC的实现细节,对于学习和调试都非常有帮助。 九、依赖管理 在实际项目中,Spring Web MVC往往与其他Spring模块如Core、AOP、Data...

    外文翻译Spring的MVC构架模式-CSDN下载

    在实际开发中,Spring MVC常与其他Spring模块结合使用,如Spring Data用于数据库访问,Spring Security进行权限控制,Spring AOP实现切面编程等。此外,Spring Boot进一步简化了Spring MVC的配置,使得快速开发Web...

    Pro Spring MVC---Apress-2012

    - **Spring MVC 架构**:理解 MVC 模式如何与 Spring 集成,以及如何实现控制层和视图层。 - **Controller 实现**:创建和配置控制器类,定义请求映射和处理器方法。 - **View Resolver 配置**:设置视图解析器,以...

    spring-web-5.2.3.RELEASE和spring-webmvc-5.2.3.RELEASE

    Spring Web MVC模块(spring-webmvc-5.2.3.RELEASE.jar)是Spring框架中用于构建MVC(Model-View-Controller)架构的Web应用程序的核心部分。它为Web开发提供了一种强大且灵活的模型绑定、数据验证、异常处理和视图...

    Spring-MVC-step-by-step.zip_Java MVC spring_Java spring mvc_sp

    本教程中的"Spring-MVC-step-by-step.pdf"文件将详细介绍上述概念,并通过实例代码演示如何配置和使用Spring MVC,帮助你一步步实践每个知识点。 总之,Spring MVC是Java Web开发的强大工具,理解并掌握其工作原理...

    Spring3.2处理板-Eclipse(mars)4.5 JAVA7

    《Spring 3.2在Eclipse Mars 4.5与Java 7环境下的应用详解》 Spring框架作为Java开发中的核心组件,其3.2版本是面向企业级应用的重要里程碑。该版本在功能上进行了诸多优化,提高了性能,并且对Java 7提供了全面...

    springmvc3.2

    9. **模板引擎集成**:Spring MVC 3.2与各种模板引擎(如Thymeleaf、FreeMarker、Velocity等)有良好的集成,方便创建动态视图。 10. **性能优化**:该版本对DispatcherServlet进行了优化,减少了内存消耗,提高了...

    【免费】Springmvc3.2所需要的全部jar包

    5. **ORM集成**:Spring MVC 3.2与Hibernate、MyBatis等ORM框架有良好的集成,简化了对象关系映射的处理,提高了开发效率。 6. **MVC注解**:Spring MVC 3.2进一步推广了注解驱动的开发,如@Controller、@...

Global site tag (gtag.js) - Google Analytics