springmvc的重定向 mvc 重定向 打印system打印不出东西怎么回事

基于Spring MVC的Web应用开发(5) - Redirect - Stay Hungry, Stay Foolish - ITeye博客
博客分类:
本文介绍Spring MVC中的重定向(Redirect),先回顾一下在JSP中,实现页面跳转的几种方式:
RequestDispatcher.forward():是在服务端起作用,当使用forward()时,Servlet引擎传递http请求从当前的servlet或者jsp到另外一个servlet,jsp或者普通的html文件,即你的表单(form)提交至a.jsp,在a.jsp中用到了forward()重定向到b.jsp,此时form提交的所有信息在b.jsp都可以获得,参数自动传递,但forward()无法重定向至有frame的jsp文件,可以重定向到有frame的html文件,同时forward()无法带参数传递,比如servlet?name=**,但可以在程序内通过response.setAttribute("name",name)来将参数传至下一个页面。另外,重定向后浏览器地址栏的URL不变,且通常在servlet中使用,不在jsp中使用。
response.sendRedirect():时在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=**传至下一个页面,同时它可以重定向至不同的主机,sendRedirect()可以重定向有frame的jsp文件。重定向后在浏览器地址栏上会出现重定向页面的URL。另外,由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。我们在讲第三点之前,先比较一下头两点,比较:(1) Dispatcher.forward()是容器中的控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;(2) response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接可,这样,从浏览器的地址栏中可以看到跳转后的链接地址。前者更加高效,再跑题一点,在有些情况下,比如,需要跳转到到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。
&jsp:forward page=""/&:这个jsp标签的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的所有特性。要注意,它不能改变浏览器地址,刷新的话会导致重复提交。
在Spring MVC中 ,跳转其实和Controller中的return方法紧密联系在一起,编写一个新的Controller,叫RedirectController:
package org.springframework.samples.mvc.
import org.joda.time.LocalD
import org.springframework.beans.factory.annotation.A
import org.springframework.core.convert.ConversionS
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.PathV
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RequestP
import org.springframework.web.servlet.mvc.support.RedirectA
import org.springframework.web.util.UriC
import org.springframework.web.util.UriComponentsB
@Controller
@RequestMapping("/redirect")
public class RedirectController {
private final ConversionService conversionS
@Autowired
public RedirectController(ConversionService conversionService) {
this.conversionService = conversionS
@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());
// 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(), 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";
先看看show这个方法:
@RequestMapping(value="/{account}", method=RequestMethod.GET)
public String show(@PathVariable String account, @RequestParam(required=false) LocalDate date) {
return "redirect/redirectResults";
注解好像有点多,简单解释一下每个注解代表什么含义,具体详细用法等后面讲到Spring MVC的Convert部分再展开。在@RequestMapping注解中有个/{account}的url模式,在方法中也有一个参数叫accout,它带有@PathVariable注解,即当访问时,account变量会自动获取到1这个值(当然不限数字,只要是字符串即可),从PathVariable也可以猜到它是解析url路径的变量。再看@RequestParam注解,它是解析请求的参数的,如访问时,show方法中的date参数会自动得到这个值并将其转换成LocalDate类。
最后看return,show方法返回String,并且没有加上@ResponseBody,返回的View就是该字符串对应的View名字,我们已经有一个默认的ViewResolver,因此这个@RequestMapping最终将返回到
webapp/WEB-INF/views/redirect/redirectResults.jsp:
&%@ taglib uri="/jsp/jstl/core" prefix="c" %&
&%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %&
&%@ page session="false" %&
&title&Redirect Results&/title&
&link href="&c:url value="/resources/form.css" /&" rel="stylesheet"
type="text/css" /&
&div class="success"&
&h3&Path variable 'account': ${account}&/h3&
&h3&Query param 'date': ${param.date}&/h3&
此jsp取得response中的account值(类似response.setAttribute(name,value)中设置的值),和url参数传过来的变量date(注意${param.date}中的param是jsp标准中定义的8个隐含对象(是8个吧?))并显示在页面。
下面马上看到的RedirectController中另外两个方法将会展示如何跳转到上面的show方法的URL,先看:
@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());
// Appended as a query parameter
return "redirect:/redirect/{account}";
出现了一个新类RedirectAttributes,方法中给它添加了两个属性,添加的属性可以在跳转后的页面中获取到。最后该方法返回"redirect:/redirect/{account}",一般理解的跳转肯定是跳转到某个url,SpringMVC中也不例外,
它将跳转到http://localhost:8080/web/redirect/{account},而此URL最终将返回到一个JSP页面上。
看看浏览器效果,在浏览器访问 ,短暂的等待后,浏览器的地址栏将变成:
http://localhost:8080/web/redirect/a123?date=12%2F31%2F11
提个问题,date=12%2F31%2F11是怎么回事?
看下一个方法:
@RequestMapping(value="/uriComponentsBuilder", method=RequestMethod.GET)
public String uriComponentsBuilder() {
String date = this.conversionService.convert(new LocalDate(), String.class);
UriComponents redirectUri = UriComponentsBuilder.fromPath("/redirect/{account}").queryParam("date", date)
.build().expand("a123").encode();
return "redirect:" + redirectUri.toUriString();
该方法只是前一个方法的变种。
短暂的等待后(应该非常短暂以至于你感觉不到),浏览器地址栏变成:
http://localhost:8080/web/redirect/a123?date=12/31/11
效果一模一样(其实还是有点不一样,因为这个没有出现怪异的"%2F"了),打印redirectUri出来看看:
/redirect/a123?date=12/31/11
那么最终return语句就是
return "redirect:/redirect/a123?date=12/31/11";
UriComponents是一个工具类,帮助我们生成URL,比如在本例中,通过UriComponentsBuilder这个类,
有url为"/redirect/{account}",传递的参数为date,并且进行转码(encode),
结果返回的的URL就是"/redirect/a123?date=12/31/11"。(可以试着不加encode()方法看看效果)
这个结果也说明Spring MVC中的redirect可以带参数。
[本附录可不看,翻译也很渣]
16.5.3 重定向(redirect)到视图(view)
前文提及,controller(控制器)返回一个view(视图)名,view resolver(视图解析器)解析这个特定的view。对于view technologies(视图技术?),象JSP(JSP由servlet或者JSP引擎解析),Spring MVC中的内部解决方案是将InternalResourceViewResolver和InternalResourceView组合起来使用,这种组合采用一个内部定向(forward)或者通过Servlet自身API提供的RequestDispatcher.forward(..)方法或者RequestDispatcher.include()方法。对于其它的view technologies,如Velocity,XSLT,等等,view本身就将内容直接写到response的输出流里了。
有时我们想要在view渲染前就将HTTP重定向回客户端,这是有可能的,比如,当使用POST方式提交数据到一个Controller时,response实际上是另外一个controller的委托(比如一个成功的form表单提交)。在这种情况下,一个正常的内部定向意味着其它controller将也会看到相同的POST数据,如果将它和其它期望的数据弄混了,这就是一个潜在的问题了。在显示结果之前进行重定向的另一个原因就是排除用户多次提交表单数据的可能性。在这种场景下,浏览器会先发送一个初始POST;然后接受一个response来重定向到一个不同的URL;最后浏览器的地址栏会体现在重定向response中的GET方式的URL。因此,从浏览器的角度看,当前页显示的不是POST而是GET的结果。最后一个影响就是用户不能通过“意外地”点击了刷新,从而重复POST提交了相同的数据。刷新会到一个GET的结果页面,而不是重复以POST方式提交数据。(说实话,这一段我没怎么看懂 =;=)
16.5.3.1 RedirectView
对controller来说,作为controller的response的结果来重定向的一个方式就是创建并返回一个Spring的RedirectView的实例。在这种情况下,DispatcherServlet不使用通用的view解决机制。这是由于依然重定向的view已经有了,DispatcherServlet只要简单得让这个view工作即可。
RedirectView通过HttpServletResponse.sendRedirect()实现,它作为一个HTTP重定向返回给客户端浏览器。默认所有得model attribute会以URI模板变量得形式暴露在重定向的URL里。保留的attribute中那些primitive types或者collections/arrays的primitive types会自动地以查询参数的形式添加上。
如果一个model实例是为重定向特殊准备的,以查询参数添加primitive type attributes就是我们想要的结果。然而,在加上了注解的controller中,model可能包含额外的作为渲染目的的(rendering purposes)attribute(比如:drop-down field values)。为了避免这样的attribute出现在URL里,一个带有注解的controller可以声明一个RedirectAttributes类型的参数,并使用它指定明确的attribute来让RedirectView获取到。如果controller方法重定向了,RedirectAttributes的内容就可以使用了,否则使用的是model的内容。
注意来自当前请求的URI模板变量,在重定向到一个URL时,是自动可获得的,不需要额外添加,也不需要通过Model或者RedirectAttributes来添加,举个例子:
@RequestMapping(value = "/files/{path}", method = RequestMethod.POST)
public String upload(...) {
return "redirect:files/{path}";
如果你使用RedirectView,这个view是被controller自身创建的,推荐你配置重定向URL,让其注入到controller,从而it is not baked into the controller,而是在上下文中带着view名配置的。下一节我们继续讨论。
16.5.3.2 redirect:前缀
因为controller本身可以创建RedirectView,所以我们使用RedirectView可以工作得很好,不可避免的一个事实是controller得知道这个Redirect,这让事情紧紧得耦合在一起了,controller不应该知道response是如何处理的,通常它应该只关心注入进来的view名。
这个特殊的redirect:前缀可以达到这个目的,如果一个view名以前缀名redirect:方式返回,UrlBasedViewrResolver(以及它的子类)会识别出来这是一个特殊的indication,这个indication 是一个redirect需要的。剩下的view名将会作为重定向的URL来处理。
如果controller返回的是RedirectView,实际的效果是一样的,但现在controller自身可以操作逻辑意义上的view名,一个逻辑意义上的view名,如redirect:/myapp/some/resources会重定向关联到当前Servlet上下文,同时这样的redirect:/some/arbitrary/path的view名会重定向到一个绝对路径的URL上。
16.5.3.3 forward:前缀
也可以给view名使用一个特殊的forward:前缀,它会被UrlBasedViewResolver及其子类解析。它给view名创建一个InternalResourceView(实际使用RequestDispatcher.forward()),剩下的view名就是一个URL,然而,这个前缀对于InternalResourceViewResolver和InternalResourceView(比如JSP)是不可用的。但是这个前缀在你使用其它view technology时还是可以提供一些帮助的。但是仍然要强制forward到一个能被Servlet/JSP引擎处理的资源。(注意你也可以将多个view解析器串起来,替代)。(说实话,这段没怎么明白 译者)
16.5.4 ContentNegotiatingViewResolver (跟我们讲的关联不大,略去 译者)
浏览 15281
stephansun
浏览: 188595 次
来自: 上海
总结的不错。
那你也说一下spring-asm重新打包以后的源码怎么获取,尽 ...
谢谢啊~学习了~~
你好,能分享下demo吗?不慎感激。
is good Thanks.原文标题[ Spring mvc中@Requestmapping再探] 1) 普通path路径 @RequestMapping(value = &/foos&) @ResponseBody public String getFoosBySimplePath() { return &Get some Foos&; } 然后尝试用curl请求下 curl -i http://localhost:8080/spring-mvc/foos 2) 指定RequestMetho
在开发过程中,当这种场景: 新增完一个对象之后,需要从新建页面(/new)重定向到展示列表页面(/index)中去.当你提交数据到后台的时候,后台处理完数据之后,需要redirect:/index来重定向到展示列表页面,但又想传递个数据告诉用户你添加成功了. 推荐使用:RedirectAttributes import org.springframework.web.servlet.mvc.support.RedirectA 具体用法 如果想重定向传递数据的话,可以使用: a
从另一个模块中过来的url中携带了参数,但是不想在页面的url中显示,以免此参数被意外分享,所以进行了一次重定向,把此参数以cookie的形式保存,然后再跳转到同样的url中. 原因是我在model里面设置了属性. spring 版本是3.2 测试代码如下: 结果如下:model中put的 test test1 test2被redirect后 被拼在了url的后面.
本文主要记录一些作者在使用spring mvc过程中遇到的一些以及解决办法,以备日后查询或者供其他网友阅读,每个问题的解决办法肯定不止一种,如果你也遇到过类似问题,并且有独特的见解,我会很高兴你能留言给我,谢谢. :) 1. 前台提交form,tomcat返回 http status 400 The request sent by the client was syntactically incorrect,控制台无任何错误输出. 这是因为前台form表单中的某些参数 和 后台接受的参数类型不一
1. 需求背景 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示. 本来以为挺简单的一件事情,并且个人认为比较常用的一种方式,一百度全都有了,这些根本不是问题,但是一百度居然出乎我的意料,一堆都不是我想要的结果.无奈啊,自己写一篇比较全都供以后大家一百度吧,哈哈哈...是这些写的不是很全都人们给了我写这篇博客的动力. 2. 解决办法 需求有了肯定是解决办法了,一一解决,说明下spring的跳
转自:http://blog.csdn.net/lxf9601/article/details/5925810 刚开始用spring mvc 做web开发时,经常会不知道如何合适绑定页面数据.用惯struts2的朋友更认为spring mvc 绑定数据不如struts2方便(本人最开始也是这么认为),经过一段时间的应用和测试,总结出以下几种情况,希望对刚接触spring mvc 的朋友有所帮助. 示例程序下载 查看spring源码可以看出spring支持转换的数据类型已经很多了. org.spr
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理 现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过要想灵活运用S
目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 双亲上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css? 八.spring mvc 请求如何映射到具体的Action中的方法? 九.spring mvc 中的拦截器: 十.spring mvc 如何使用拦截器? 十一.sp
第一章 Spring更新到3.0之后,其MVC框架加入了一个非常不错的东西--那就是REST.它的开放式特性,与Spring的无缝集成,以及Spring框架的优秀表现,使得现在很多公司将其作为新的系统开发框架.大象根据实际的项目经验,以之前SSH2例子为基础,对其进行一次大改造,详细的为大家讲解如何实现SSM3全注解式的开发. 这次大象将采取两种构建方式,一是很多人喜欢用的MyEclipse,另一个,则是用Eclipse+Maven.这一篇,将主要讲解开发环境设置与Maven构建方式. 1.开发
首先log4j和视图解析viewResolvers在spring管理的项目中常用到,而且每次没有配置好log4j,IDE集成工具的控制台都不好看到输出日志.另外视图解析viewResolvers的运用可以帮我们过滤web项目访问的路径的前缀和后缀.所以,我想把这两个频繁的配置整理一下. (1)先小结log4j的配置.这里是spring3.1.2环境项目下的配置,我们先在项目中导入log4j.jar包,在项目的web.xml配置中 我加入上下文的配置文件的映入:代码如下: &context-par
Spring MVC,即 Spring Model-View-Controller,是一个实现了通用开发模式(模型-视图-控制器)的Web框架,它通过一个DispatcherServlet处理HTTP请求.完成资源映射.递交请求给控制器完成业务逻辑,相应数据则通过Model传递给视图解析器解析为相应的页面或数据流返回给客户端. 这里,我们可以通过Spring官方给出的图示大致了解其内部的工作机制: DispatcherServlet作为前端控制器(Front Controller)过滤所有客户端
目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css 八.spring mvc 请求如何映射到具体的Action中的方法 九. spring mvc 中的拦截器: 十. spring mvc 如何使用拦截器 十一. sp
spring mvc 如何请求转发和重定向呢?往下看: 由于这部分内容简单,一带而过了. 1.请求转发: (1)返回ModelAndView : @RequestMapping(value=&/model&,method=RequestMethod.GET) public ModelAndView testForward(ModelAndView model,@RequestParam(value=&id&,defaultValue=&1&,re
资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客: 目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如
一.前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀. 官方的下载网址是:http://www.springsource.org/download (本文使用是的Spring 3.0.5版本) Struts2也是比较优秀的MVC构架,优点非常多比如良好的结构.但这里想说的是缺点,Struts2由于采用了值栈.OGNL表达
现在主流的Web MVC框架除了Struts这个主力外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理. 下面是Spring MVC 流程: 可以看到重点是DispatcherServlet. 看下逻辑结构: 其工作流程大致是: 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt Dispatche
资源下载: Spring_MVC_教程_快速入门_深入分析V1.1.pdf SpringMVC核心配置文件示例.rar 作者:赵磊 博客: 目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如
参考资料 1. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/json/Jackson2ObjectMapperFactoryBean.html &mvc:annotation-driven& &mvc:message-converters register-defaults=&true&& &bean class=&quot
Ounce实验室近日提出了与Spring MVC相关的两个潜在安全问题.这两个问题会影响到使用Spring MVC构建的应用,其产生的原因都与服务器端对客户端参数的处理有关.InfoQ深入分析了这两个问题并与Ounce实验室展开了一番讨论. Ounce实验室的官方发布中这样描述这两个问题: 这些新发现的安全漏洞和一般被跨站点脚本(cross site scripting,即XSS)或SQL注入攻击利用的漏洞不同,它们并不是Spring框架内部的安全漏洞,而是应用设计上的问题.如果应用没有恰当的设
Spring MVC中基于自定义Editor的表单数据处理技巧.需要的朋友可以过来参考下,希望对大家有所帮助 面向对象的编程方式极大地方便了程序员在管理数据上所花费的精力.在基于Spring MVC的Web开发过程当中,可以通过对象映射的方式来管理表单提交上来的数据,而不用去一个一个地从request中提取出来.另外,这一功能还支持基本数据类型的映射.例如in.long.float等等.这样我们就能从传统单一的String类型中解脱出来.然而,应用是灵活的.我们对数据的需求是千变万化的.有些时候
前文回顾:&Spring2.5的新特性:第一部分& Spring框架从创建伊始就致力于为复杂问题提供强大的.非侵入性的解决方案.Spring 2.0当中为缩减XML配置文件数量引入定制命名空间功能,从此它便深深植根于核心Spring框架(aop.context.jee.jms. lang.tx和util命名空间).Spring Portfolio项目(例如Spring Security)和非Spring项目中(例如CXF). Spring 2.5推出了一整套注解,作为基于XML的配置的替换方案
参考文章:Spring MVC全注解配置 - 无web.xml 单元测试的目的,简单来说就是在我们增加或者改动一些代码以后对所有逻辑的一个检测,尤其是在我们后期修改后(不论是增加新功能,修改bug),都可以做到重新测试的工作.以减少我们在发布的时候出现更过甚至是出现之前解决了的问题再次重现. Spring MVC的测试往往看似比较复杂.其实他的不同在于,他需要一个ServletContext来模拟我们的请求和响应.但是Spring也针对Spring MVC 提供了请求和响应的模拟测试接口,以方便
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velocity.Tiles.iText 和 POI.Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术.Spring MVC 分离了控制器.
病理特征:Errors/BindingResult argument declared without preceding model attribute. Check your handler method signature 堆栈信息:忘了^_^... 自从使用Spring框架以后,笔者再也没有用EJB了,当然更不会用落后的Struts.Spring与Struts为两种不同功能的框架,没有可比 性,但Spring框架中有个子模块Spring MVC与Struts功能是一样的,如果项目中选用S
不再有页面刷新:使用jQuery 相关厂商内容 免费迷你书下载:Flex入门指南--PHP开发者 Flash Builder 4 Beta和FlexUnit下的测试驱动开发 下载Flex 4 SDK,构建超级棒的Flex应用 使用Pixel Bender Toolkit制作特效--创建vintage tone过滤器(Part 2) 在Flash Builder4 beta中使用网络监测器跟踪网络流量 相关赞助商 汇集最新RIA技术相关资源,提供Flash开发平台相关工具高速下载,免费获得Adobe软件的产
1.创建Java Web项目,然后下载spring的jar包放到lib下 2.修改web.xml,和配置struts2差不多 &?xml version=&1.0& encoding=&UTF-8&?& &web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xmlns=&/xml/ns/javaee&
作者 Joel Confino译者 张凯峰 发布于 日 上午12时1分 社区 Java 主题 Web 2.0, JavaScript 标签 jQuery, XStream 不再有页面刷新:使用jQuery 在我参与创建的一些Web网站应用中,一直存在有对用户理所当然的抱歉:&哦,对不起,我不得不让你经受一些不必要的页面刷新.&哈,这就是我在今年年初听说jQuery后,我的脑子里一下闪过的念头. jQuery是个强大而非侵入式的JavaScript库,但它的名字起得很
Spring MVC启动过程 以Tomcat为例,想在Web容器中使用Spirng MVC,必须进行四项的配置: 修改web.xml,添加servlet定义.编写servletname-servlet.xml( servletname是在web.xm中配置DispactherServlet时使servlet-name的值) .配置contextConfigLocation初始化参数.配置ContextLoaderListerner. &!-- servlet定义 --& &servlet
首先,配置web.xml文件来启动spring &?xml version=&1.0& encoding=&UTF-8&?& &web-app version=&2.5& xmlns=&/xml/ns/javaee& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xsi:schemaLoca
23.1 第一个Spring MVC例子 在讲解Spring的MVC框架的各个组件之前,先通过一个例子来体会一下其流程. [示例23-1]该示例先讲解如何在Eclipse环境下实现Spring MVC框架,然后讲解如何在Ant环境下实现. 说明:首先按照22.3.3节所讲的步骤在Eclipse中创建一个工程ch23,然后按照下面的步骤添加文件. 23.1.1 配置web.xml文件 在ch23的WEB-INF目录下创建web.xml.在使用Struts 2时,需要在web.xml文件配置Filt
由于项目需要用到向导式的跳转页面效果,本项目又是用spring mvc实现的,刚开始想到用spring 的webflow,不过webflow太过笨重,对于我们不是很复杂的跳转来说好像有种&杀鸡焉用牛刀&的感觉,于是就网上搜索看有没有类似的解决方案,网上的答案一般都是叫你继承AbstractWizardFormContoller这个类来实现,但对于spring mvc3.0.x这个类将不再使用,转而推荐使用注解的方式来实现,于是参考官方文档,用注解方式实现了向导式页面. 下面是代码示例:
Spring MVC 框架 Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velocity.Tiles.iText 和 POI.Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术.Spri
昨天买了本淘宝大牛写的书-&深入分析java web 技术内幕&,从今天开始,记录下自己的总结. 由于本人是使用spring MVC开发的,所有就先看了下spring MVC 工作机制与设计模式这章,感觉看了之后受益匪浅啊!!! 小结一:spring MVC的总体设计 在一个工程中如果想要使用 spring MVC的话,只需要两个步骤 在web.xml中配置一个DispatcherServlet. 需要配置一个org.springframework.web.servlet.Dispatcher
小结下spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: Java代码 @RequestMapping(value=&/departments&) public String simplePattern(){ System.out.println(&simplePattern method was called&); return &someResult&; } 则访问http://localho
用spring mvc有一段时间了,今天有时间对这个框架的一些使用进行一些总结. 官网上面对spring mvc有一个很详细的demo,地址: /SpringSource/spring-mvc-showcase 就拿这个例子作为总结的代码. 1.首先介绍一下WebApplicationInitializer,可以通过下面的代码来实现对spring servlet的配置 public class MyWebApplicationInitializer imple
缓存与饼干,spring mvc使用ehcache 需要用到的jar包 ehcache-2.7.5.jar(主程序) ehcache-spring-annotations-1.2.0.jar(注解) guava-r09.jar(依赖) slf4j-api-1.6.6.jar(依赖) 配置文件 spring配置中需要添加如下内容 头部 xmlns:cache=&http://www.springframework.org/schema/cache& xsi:schemaLocation
文件上传应该大部分人都接触过,一般都是基于commons-fileupload组件来实现,SpringMVC的文件上传功能也是在commons-fileupload组件提供的功能上面做了一些包装功能,使文件上传开发更容易方便. 看下上传效果图: 项目运行效果: 项目源码地址,发布即可用:/wuskyfantasy/fileupload.sys 项目使用spring mvc+mybatis实现,数据库采用mysql,具体参考README就可以发布起来. 一.实现
本文章知道简单的能够搭建Sping MVC环境进行代码基础开发. 根据Spring的体系结构图画出Spring开发过程中涉及的文件和交流细节: Spring MVC流程说明: 用户请求http://127.0.0.1:8080/user/login 根据org.springframework.web.servlet.DispatcherServlet配置的xml文件找到相应处理器 根据映射到Contorller处理器的用户请求访问业务Service和数据访问DAO层处理得出返回结果到前端JSP页
Spring MVC 解读--@Autowired 一.@Autowired 作为一个Spring开发者对@Autowired注解必定是非常了解了, 顾名思义自动装配,应该是Spring会自动将我们标记为@Autowired的元素装配好,与其猜测不如看看它的定义: @Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE}) @Retention(Ret
Spring MVC 解读--&mvc:annotation-driven/& 一.AnnotationDrivenBeanDefinitionParser 通常如果我们希望通过注解的方式来进行Spring MVC开发,我们都会在***-servlet.xml中加入&mvc:annotation-driven/&标签来告诉Spring我们的目的.但是我们为什么这么做呢?这个标签是什么意思呢?它做了什么呢? 同样为了弄清楚这些问题, 像&context:component-sc
Spring MVC 解读--@RequestMapping 为了降低文章篇幅,使得文章更目标化,简洁化,我们就不例举各种@RequestMapping的用法等内容了. 文章主要说明以下问题: Spring怎样处理@RequestMapping(怎样将请求路径映射到控制器类或方法) Spring怎样将请求分派给正确的控制器类或方法 Spring如何实现灵活的控制器方法的 在Spring MVC 3.1 之前的版本中,Spring默认使用 DefaultAnnotationHandlerMappi
Spring MVC 解读--@RequestMapping 上一篇文章中我们了解了Spring如何处理@RequestMapping注解,并将请求映射信息保存到系统中以处理客户端发送来的请求,但是Spring是怎样接受请求,并根据请求URL来匹配正确的处理器方法呢,更重要的是Spring允许我们定义签名灵活的处理器方法,也就是说你的参数类型,顺序,返回类型都可以自定义,只要你方便就好.真的很棒,但是他怎样做到的呢? 这篇文章我们就研究这个问题. 一.重要的类和接口 HandlerMethodA
Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置.spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外). Spring MVC和Struts2的区别: 1. 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的.以前认为filter是servlet的一种特殊),这样就导致了二者的机制不同,这里就
上一篇文章(1)(2)分析了Spring是如何调用和执行控制器方法,以及处理返回结果的,现在我们就分析下Spring如何解析返回的结果生成响应的视图. 一.概念理解 View ---View接口表示一个响应给用户的视图,例如jsp文件,pdf文件,html文件等,它的定义如下 public interface View { //HttpServletRequest中的属性名,其值为响应状态码 String RESPONSE_STATUS_ATTRIBUTE = View.class.getNam
这个主题已经想了好久,拖拉的我终于准备动手来做这件事了,希望自己能坚持下去. 现在系统之间的交互越来越多,为实现跨语言访问,之前使用SOAP格式的webService,但接口开发比较复杂,且使用XML作中间语言,对XML的掌握也要求较高,最近这几年兴起了rest风格的webService调用,使用HTTP协议,接口不需要wsdl定义,数据传输格式既可以用JSON也可以用XML,简单了很多,它已经飞入寻常开发人员身边了,而且框架的选择也很多,甚至用原生的sevlet都能实现. 从spring MV
在前一节说到,如果在控制器中使用@ResponseBody或@RequestBody,spring MVC就会自动帮我们做&java对象&---&对应格式数据&的转换,用到的就是message converter. 消息转换的最上层是HttpMessageConverter,这是一个接口,它定义了消息转换实现类需要提供的方法: 根据方法名我们可以猜测其功能,canRead确定是否可以将数据转换为java对象,read则负责将数据转换为java对象:反之,canWrite确定
在上一节我们说,message converter可以处理相应MediaType对应的格式的数据与java对象间实现转换.例如Jaxb2RootElementHttpMessageConverter可以实现XML数据与java对象间的转换,可以实现JSON数据与java对象间的转换.那么,spring MVC的处理流程是怎样的呢?这就需要我们了解Content-Type.Accept头信息和内容协商的知识. 一.Content-Type头信息 Content-Type:内容类型,即请求/响应的内
一.maven pom.xml &project xmlns=&http://maven.apache.org/POM/4.0.0& xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance& xsi:schemaLocation=&http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&&gt
参考博文:http://tzwzero-163-/blog/1697184 ----------------------------------------以下是该文引用,红色部分是我添加了一句话--------------------------------- 必须明确告诉DispatcherServlet如何处理MultipartRequest. SpringMVC中提供了文件上传使用方式如下 配置xxx-servlet.xml,添加如下代码: Xml代码 &bea
(1)简单交互: &table style=&width: 100%& class=&table& cellspacing=&1& cellpadding=&1& border=&0&& &tr&&td class=&ti1& colSpan=&2&&请选择审讯室&/td&&/tr& &tr&&l
Copyright (C) , All Rights Reserved.
版权所有 闽ICP备号
processed in 0.088 (s). 11 q(s)}

我要回帖

更多关于 springmvc 重定向外网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信