spring3_MVC实战总结

合集下载

springMVC学习笔记

springMVC学习笔记

SpringMVC的主要组件?前端控制器dispatcherServlet:接收请求,响应结果,减少其他组件之间的耦合度处理器映射器HandlerMapping:根据请求的url来查找Handler处理适配器HandlerAdapter:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

(4)处理器Handler(需要程序员开发)(5)视图解析器ViewResolver(不需要程序员开发)作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view)(6)视图View(需要程序员开发jsp)View是一个接口,它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)什么是DispatcherServletSpring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应。

MVC是什么?MVC设计模式的好处有哪些mvc是一种设计模式(设计模式就是日常开发中编写代码的一种好的方法和经验的总结)。

模型(model)-视图(view)-控制器(controller),三层架构的设计模式。

用于实现前端页面的展现与后端业务数据处理的分离。

mvc设计模式的好处1.分层设计,实现了业务系统各个组件之间的解耦,有利于业务系统的可扩展性,可维护性。

2.有利于系统的并行开发,提升开发效率。

常用注解注解原理是什么注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类。

我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象。

通过代理对象调用自定义注解的方法,会最终调用AnnotationInvocationHandler的invoke方法。

该方法会从memberValues这个Map中索引出对应的值。

而memberValues的来源是Java常量池。

SpringMVC学习笔记

SpringMVC学习笔记

配置web.xml第二种配置spring配置文件,自动扫描视图资源在扫描的包下创建类,加注解为控制层,@RequestMapping注解添加1. @RequestMapping 除了修饰方法, 还可来修饰类2. 1). 类定义处: 提供初步的请求映射信息。

相对于WEB 应用的根目录2. 方法处: 提供进一步的细分映射信息。

相对于类定义处的URL。

若类定义处未标注@RequestMapping,则方法处标记的URL,相对于WEB 应用的根目录常用: 使用method 属性来指定请求方式可以使用params 和headers 来更加精确的映射请求. params 和headers 支持简单的表达式.,匹配多个资源地址格式可以来映射URL 中的占位符到目标方法的参数中.@PathVariable注解REST架构请求添加HiddenHttpMethodFilter过滤器配置org.springframework.web.filter.HiddenHttpMethodFilter: 可以把POST 请求转为DELETE 或POST 请求在jsp中发送DELETE和PUT请求Rest 风格的URL. 以CRUD 为例:新增: /order POST修改: /order/1 PUT update?id=1获取: /order/1 GET get?id=1删除: /order/1 DELETE delete?id=1如何发送PUT 请求和DELETE 请求呢?1.需要配置HiddenHttpMethodFilter2. 需要发送POST 请求3. 需要在发送POST 请求时携带一个name="_method" 的隐藏域, 值为DELETE 或PUT在SpringMVC 的目标方法中如何得到id 呢? 使用@PathVariable 注解@RequestParam注解@RequestHeader注解@CookieValue注解Spring MVC 会按请求参数名和POJO 属性名进行自动匹配,自动为该对象填充属性值。

最全最经典spring_mvc教程

最全最经典spring_mvc教程

spring mvc学习教程(一)-入门实例引言1.MVC:Model-View-Control框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、返回处理数据结果及相应的视图给用户。

2.简要概述springmvcSpring C 层框架的核心是DispatcherServlet,它的作用是将请求分发给不同的后端处理器,也即使用了一种被称为Front Controller 的模式(后面对此模式有简要说明)。

Spring 的C 层框架使用了后端控制器来、映射处理器和视图解析器来共同完成C 层框架的主要工作。

并且spring 的C 层框架还真正地把业务层处理的数据结果和相应的视图拼成一个对象,即我们后面会经常用到的ModelAndView 对象。

一、入门实例1. 搭建环境在spring的官方API文档中,给出所有包的作用概述,现列举常用的包及相关作用:org.springframework.aop-3.0.5.RELEASE.jar:与Aop编程相关的包org.springframework.beans-3.0.5.RELEASE.jar:提供了简捷操作bean的接口org.springframework.context-3.0.5.RELEASE.jar:构建在beans包基础上,用来处理资源文件及国际化。

org.springframework.core-3.0.5.RELEASE.jar:spring核心包org.springframework.web-3.0.5.RELEASE.jar:web核心包,提供了web层接口org.springframework.web.servlet-3.0.5.RELEASE.jar:web 层的一个具体实包,DispatcherServlet也位于此包中。

后文全部在spring3.0 版本中进行,为了方便,建议在搭建环境中导入spring3.0 的所有jar 包(所有jar 包位于dist 目录下)。

springMVC例子

springMVC例子

同Struts 2框架一样,Spring也可以给Web开发者提供一个MVC框架。

虽然Web框架只是Spring的一个模块,但是它却应用的非常广泛。

本章结合实例分析Spring Web框架的使用方法、各个组件的作用通过本章的学习,相信读者会对如何使用Spring进行MVC开发有很深入的了解。

第一个Spring MVC例子【示例】该示例先讲解如何在Eclipse环境下实现Spring MVC框架,然后讲解如何在Ant环境下实现。

在Eclipse中创建一个工程SpringMVC,然后按照下面的步骤添加文件。

1配置web.xml文件在Spring MVC的WEB-INF目录下创建web.xml。

在使用Struts 2时,需要在web.xml文件配置FilterDispatcher,在使用Spring的MVC框架时,也需要配置web.xml文件,代码如下。

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><!--配置Sring MVC的核心控制器DispatcherServlet --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class></servlet><!--为DispatcherServlet建立映射--><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>上面的代码对DispatcherServlet类进行配置,所有后缀名为.do的请求都会被DispatcherServlet处理。

SpringMVC+Hibernate4+Spring3整合开发

SpringMVC+Hibernate4+Spring3整合开发

SpringMVC+Hibernate4+Spring3整合开发·使用开发工具Myeclipse2014 、Subversion、·首先新建立一个项目SHSpringMVC ,组织好文件结构·将所建立的简单的项目发布到SVN服务器上,(如果你仅仅是想在本机搭建一个开发环境的话,不必要用SVN的,下面关于svn的发布,可以略过)选择SVN 点击Next;找到你的SVN服务资源库,如果没有的话,可以选择创建新的资源库位置;默认点击finish,然后把项目提交上去,就OK了,开始配置三个框架的开发,严谨来说是两个框架;看到如下图所示的界面说明你的项目就发布到SVN服务器上了;·接下来,就要配置开发包,也就是支持的JAR包,首先添加Spring支持,同时呢SpringMVC也是添加上了,我们要做的就是配置MVC框架;配置过程分为手动配置和自动配置,现在大部分工具都支持了自动配置,很少人再去手动配置编写配置文件了,那我们就采用自动配置的方式配置这两大框架的整合开发环境;在项目上右键→Myeclipse→Project Facets→Install Spring Facet持,点击Finish;右键空白处→new 按照下图所示配置,添加Hibernate支持,项目右键→myeclipse→project facets→install hibernate facet选择你刚刚创建的一个数据源,也就是下图显示的DB Driver,下面的一些信息就自动生成了;就选择默认核心包,没必要增加其他插件,OK 了;·增加完成之后,Hibernate 在applicationContext.xml 文件之中增加了如下的几个配置; <bean id ="sessionFactory" 这个bean 是用来连接数据库的,但是缺少了数据库的连接属性,连接属性,我们刚刚放到hibernate.cfg.xml文件之中了,但是为了项目的方便移植和可维护方便,我们就要把配置写到一个配置文件之中,所以需要在applicationContext.xml文件的sessionFactory这个bean之中增加priperty属性;class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml"></property>→当我们将c3p0的数据库配置添加好之后,这个配置也就可以删掉了;</bean><bean id="transactionManager"→这个bean用来配置事务提交的,不过还不完善,还需要配置很多东西,class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory"ref="sessionFactory"/> </bean>·下面我们新建立一个db.properties的资源文件,用来编写数据库连接信息;db.driverClass=org.gjt.mm.mysql.Driverdb.url=jdbc:mysql://localhost:3306/mysqlername=rootdb.password=mysqladmin我们怎么用这个配置文件呢,当然是需要在applicationContext.xml文件之中配置了;要想知道怎么配置使用这个database.properties这个资源文件,我们必须要了解的当然是ComboPooledDataSource这个类了,ng.Objectcom.mchange.v2.c3p0.impl.AbstractIdentityTokenizedcom.mchange.v2.c3p0.impl.IdentityTokenResolvablecom.mchange.v2.c3p0.impl.PoolBackedDataSourceBasecom.mchange.v2.c3p0.impl.AbstractPoolBackedDataSourcecom.mchange.v2.c3p0.AbstractComboPooledDataSourceboPooledDataSource我们看到ComboPooledDataSource这个类本身仅仅定义了几个构造方法而已,我们需要从他的父类中查找看看;我们能从文档中查到,有很多的setter、getter方法,这意味着什么呢,通过反射调用可以设置内容;也就是说,配置的dataSource这个bean的property的name值都是一定的,也就是不能自己定义,需要用提供好的那些属性名称,值也是有范围的;<bean id="dataSource"class="boPooledDataSource"destroy-method="close"><property name="driverClass"value="${db.driverClass}"/><property name="jdbcUrl"value="${db.url}"/><property name="user"value="${ername}"/><property name="password"value="${db.password}"/><property name="maxPoolSize"value="10000"/><property name="minPoolSize"value="1"/><property name="initialPoolSize"value="1"/><property name="maxIdleTime"value="20"/></bean>配置完成此bean就可与修改sessionFactory这个bean了,我们需要做的就是将其中的property修改为<bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"/></bean>配置好这里,那hibernate.cfg.xml文件之中的数据库连接信息也就不需要了,我们就可以直接删掉了,hibernate.cfg.xml文件就编程如下的配置了,可以添加show_sql 、format_sql<?xml version='1.0'encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/dtd/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="myeclipse.connection.profile">mysql</property><property name="show_sql">true</property><property name="format_sql">true</property></session-factory></hibernate-configuration>下面还是需要配置applicationContext.xml文件,配置事务通知属性,这个我也不是很了解怎么配置的,在网上找了一份,可以按照这个配置;<tx:advice id="txAdvice"transaction-manager="transactionManager"> <tx:attributes><tx:method name="update*"propagation="REQUIRED"/><tx:method name="insert*"propagation="REQUIRED"/><tx:method name="edit*"propagation="REQUIRED"/><tx:method name="save*"propagation="REQUIRED"/><tx:method name="add*"propagation="REQUIRED"/><tx:method name="new*"propagation="REQUIRED"/><tx:method name="set*"propagation="REQUIRED"/><tx:method name="remove*"propagation="REQUIRED"/><tx:method name="delete*"propagation="REQUIRED"/><tx:method name="change*"propagation="REQUIRED"/><tx:method name="get*"propagation="REQUIRED"read-only="true"/><tx:method name="list*"propagation="REQUIRED"read-only="true"/><tx:method name="find*"propagation="REQUIRED"read-only="true"/><tx:method name="load*"propagation="REQUIRED"read-only="true"/><tx:method name="*"propagation="REQUIRED"read-only="true"/> </tx:attributes></tx:advice>然后需要找一个log4j.properties的组件,在hibernate的开发文件包之中有一个,应该可以用,你从网上下载好hibernate的文件解压之后,从下面的这个目录可以找到一个log4j.properties文件;\hibernate-release-4.3.8.Final\hibernate-release-4.3.8.Final\project\etc最后要为项目添加annotation、aop、mvc开发支持,最重要的不要忘了,添加database.properties文件的位置,放到dataSource的bean上面就可以了;<context:property-placeholder location="classpath:database.properties"/>配置Annotation<context:annotation-config/><context:component-scan base-package="cn.oracle"/><mvc:annotation-driven/><mvc:default-servlet-handler/>接下来配置web.xml文件,配置Spring MVC的默认servlet处理用户请求;<servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet -class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value> </init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping>此时你把项目部署到tomcat 或者weblogic上,看会不会报错,不报错误应该可开发使用了;如果你还要配置Springmvc的资源文件的话,还需要在applicationContext.xml文件之中配置另外一个bean <bean id="messageSource"class="org.springframework.context.support.ResourceBundleMessageSource"> <property name="basenames"><array><value>Message</value><value>Pages</value></array></property></bean>这上面的配置其实就是配置了ResourceBundleMessageSource 这个类下的basenames属性;private String[] basenames = new String[0];。

Spring3MVC搭建全过程

Spring3MVC搭建全过程

用了大半年的Spring MVC3.0,用着感觉不错。

简单写一个搭建Spring MVC3.0的流程(以Spring3.0.5为列),数据库交互使用spring JDBC Template,附件有项目(没有jar包)。

整个项目架构如下图所示:1、去官网下载3.0.5所有jar包,所需jar包,见附件图片,每个jar包得用处如下:org.springframework.aop- 3.0.0.RELEASE--------------------Spring的面向切面编程,提供AOP(面向切面编程)实现org.springframework.asm- 3.0.0.RELEASE--------------------Spring独立的asm程序,相遇Spring2.5.6的时候需要asmJar 包.3.0开始提供他自己独立的asmJarorg.springframework.aspects- 3.0.0.RELEASE----------------Spring提供对AspectJ框架的整合\org.springframework.beans- 3.0.0.RELEASE------------------SpringIoC(依赖注入)的基础实现org.springframework.context.support- 3.0.0.RELEASE--------Spring-context的扩展支持,用于MVC方面org.springframework.context- 3.0.0.RELEASE----------------Spring提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等org.springframework.core- 3.0.0.RELEASE-------------------Spring3.0的核心工具包org.springframework.expression- 3.0.0.RELEASE-------------Spring表达式语言org.springframework.instrument.tomcat- 3.0.0.RELEASE------Spring3.0对Tomcat的连接池的集成org.springframework.instrument- 3.0.0.RELEASE-------------Spring3.0对服务器的代理接口org.springframework.jdbc- 3.0.0.RELEASE-------------------对JDBC的简单封装org.springframework.jms- 3.0.0.RELEASE--------------------为简化JMS API的使用而作的简单封装org.springframework.orm- 3.0.0.RELEASE--------------------整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA实现org.springframework.oxm-3.0.0.RELEASE--------------------Spring 对Object/XMl的映射支持,可以让Java与XML之间来回切换org.springframework.test- 3.0.0.RELEASE--------------------对Junit等测试框架的简单封装org.springframework.transaction- 3.0.0.RELEASE-------------为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理org.springframework.web.portlet- 3.0.0.RELEASE-------------SpringMVC的增强org.springframework.web.servlet- 3.0.0.RELEASE-------------对JEE6.0 Servlet3.0的支持org.springframework.web.struts- 3.0.0.RELEASE--------------整合Struts的时候的支持org.springframework.web- 3.0.0.RELEASE--------------------SpringWeb下的工具包2、借鉴spring官网写法,建立一个src-resources Source Folder,再新建目录META-INF,存放springmvc-servlet.xml和jdbc-context.xml文件(事务和数据库连接池的管理);以及database.properties和log4j.properties。

Spring3.0 MVC 中文教程

Spring3 MVC - 3到Spring MVC框架简介Spring3 MVC框架简介Spring MVC是Spring的框架的Web组件。

它提供了丰富的功能,为建设强大的Web应用程序。

Spring MVC框架的架构,并在这样的高度可配置的方式,每一块的逻辑和功能设计。

此外Spring可以毫不费力地与其他流行的Web框架,如Struts,WebWork的,的Java Server Faces和Tapestry集成。

这意味着,你甚至可以告诉Spring使用Web框架中的任何一个。

比Spring更不紧耦合的servlet或JSP 向客户端呈现视图。

喜欢速度与其他视图技术集成,Freemarker的,Excel或PDF现在也有可能。

Spring3.0 MVC系列∙第1部分:到Spring 3.0 MVC框架简介∙第2部分:在Spring 3.0 MVC创建Hello World应用程序∙第3部分:在Spring 3.0 MVC的形式处理∙第4部分:Spring3 MVC的Tiles Support与Eclipse中的例子插件教程∙第5部分:Spring3 MVC的国际化及本地化教程与范例在Eclipse∙第6部分:Spring3 MVC示例教程Spring主题∙第7部分:创建Spring3 MVC Hibernate 3的示例在Eclipse中使用Maven的在Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。

Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。

因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。

相反,它往往是最好直接绑定到业务对象。

请求处理生命周期Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。

黑马程序员springmvc教程第一天:程序小结

源码分析(了解)通过前端控制器源码分析springmvc的执行过程。

第一步:前端控制器接收请求调用doDiapatch第二步:前端控制器调用处理器映射器查找 Handler第三步:调用处理器适配器执行Handler,得到执行结果ModelAndView第四步:视图渲染,将model数据填充到request域。

视图解析,得到view:调用view的渲染方法,将model数据填充到request域渲染方法:入门程序小结通过入门程序理解springmvc前端控制器、处理器映射器、处理器适配器、视图解析器用法。

前端控制器配置:第一种:*.action,访问以.action结尾由DispatcherServlet进行解析第二种:/,所以访问的地址都由DispatcherServlet进行解析,对于静态文件的解析需要配置不让DispatcherServlet进行解析使用此种方式可以实现 RESTful风格的url处理器映射器:非注解处理器映射器(了解)注解的处理器映射器(掌握)对标记@Controller类中标识有@RequestMapping的方法进行映射。

在@RequestMapping里边定义映射的url。

使用注解的映射器不用在xml中配置url和Handler的映射关系。

处理器适配器:非注解处理器适配器(了解)注解的处理器适配器(掌握)注解处理器适配器和注解的处理器映射器是配对使用。

理解为不能使用非注解映射器进行映射。

<mvc:annotation-driven></mvc:annotation-driven>可以代替下边的配置:<!--注解映射器 --><beanclass="org.springframework.web.servlet.mvc.method.annotation.R equestMappingHandlerMapping"/><!--注解适配器 --><beanclass="org.springframework.web.servlet.mvc.method.annotation.R equestMappingHandlerAdapter"/>实际开发使用:mvc:annotation-driven视图解析器配置前缀和后缀:程序中不用指定前缀和后缀:出师表两汉:诸葛亮先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。

spring mvc3.0

添加所需要的jar包我用的是spring3.0.5 release版的常用包aop、asm、core、context、web都添加进去。

配置web.xml,放置在WEB-INFO目录下将我的配置贴下来:配置springmvc-servlet.xml,放置在WEB-INFO目录下配置controller函数//默认将student.do的请求都转到这个函数来进行处理@RequestMapping(value="/student.do")public ModelAndView helloWorld(HttpServletRequest request) { String idString = request.getParameter("id");System.out.println("id: " + idString);request.setAttribute("result", "weichao");String nameString = request.getParameter("name");//这个函数执行后会转到helloWorld.jsp来显示结果,并将"result"属性的值置为map//这样在jsp显示页面中可以这样调用:Map map =(Map)request.getAttribute("result")ModelMap map = new ModelMap();map.put("one", "one");map.put("two", "two");map.put("three", "two");ModelAndView mAndView = new ModelAndView("helloWorld");mAndView.addObject("result", map);mAndView.addObject("answer","weichao");return mAndView;}helloWorld.jsp如下<%!Map map;String answer;%><body>my name: <%<!—获取属性result的值 -->map = (Map)request.getAttribute("result");<!—获取属性answer的值 -->answer = (String)request.getAttribute("answer");%><%=request.getParameterMap().size() %><%out.print("<br>" + map.get("two"));out.print("<br>" + answer);%></body>请求的url地址http://localhost/Spring3.0MVC/exam/student.do。

SpringMVC知识点总结

本文为Word版本,下载可任意编辑 第 1 页 共 5 页 SpringMVC知识点总结

1. .Springmvc是spring的web框架围绕DispatcherServlet设计的。DispatchServlet的作用是将恳求分发到不同的处理器。Spring的web框架可以包括可配置的处理器(Handlder)映射,视图(view)解析,本地化(local)解析,主题(theme)解析以及对文件上传的支持等 2. springmvc的恳求模式: 3. 其实,每个MVC 框架的执行过程都是大同小异的; ①当一个request过来时,它通过一个servelet来响应request; ②再依据request的路径名和配置将这个request dispatch 给一个controller执行; ③最末将之返回配置文件里对应的页面。 在springmvc中,这个servelet的名字叫:Dispatchservlet。

4. Spring 的Controller是singleton的,或者是线程担心全的说明。 分析:和Struts一样,Spring的Controller是singleton的!这意味着每个request过来,系统都会用原来的instance去处理,这样就导致了两个结果:①我们不用每次创建Controller,减削了对象创建和垃圾回收的时间。②由于只有一个Controller的instance,当多个线程调用它的时候,它里面的'instance变量不是线程安全的。 这也是webworks吹嘘的地方,它的每个Action都是线程安全的。由于每过来一个request,它就会创建一个Action对象。由于现代JDK垃圾收集动能的效率已经不成问题了,所以这种创建完一个对象就扔掉的模式也得到许多人的认可。 二:简约的配置了解 1.导入需要的jar包 【去网上搜一下】 本文为Word版本,下载可任意编辑 第 2 页 共 5 页 2.配置web.*ml 3.配置springmvc-servlet.*ml 说明,可以放在WEB-INF下面就行。有些配置是临时不需要的,一并拷贝过来了。 4.在WebRoot下面建立一个文件夹static用于放静态的文件, static下面再建立三个静态文件夹:images[用于放图片],script[用于放js文件],style[用于放css文件]。 5.在WEB-INF下面建立一个文件夹views,用于放jsp文件。 可以先建立一个工程引用的jsp文件,base.jsp。 三:基本功能的学习 建立一个inde*.jsp,引入base.jsp → %@ include= file=base.jsp 1.简约的恳求 考前须知: ①红色部分的@Controller , ②对于公共的URL,我们可以说明到类的头部,比如对于user对象的操作,。 我们可以再action的头部说明:@RequestMapping(/user)。 ③对于某些恳求我们可以限制提交方式,比如用户登录,我们只允许POST提交, 我们可以在方法上面加上:@RequestMapping(/login,method=RequestMethod.POST)。 篇二:SpringMVC知识点总结 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,是一个前端web框架。 springMVC的处理流程 Controller跳转到另一个Controller 1. 需求背景 需求:spring MVC框架controller间跳转,需本文为Word版本,下载可任意编辑 第 3 页 共 5 页 重定向。有几种状况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示。 2. 解决方法 需求有了确定是解决方法了,一一解决,说明下spring的跳转方式许多许多,我这里只是说一些自我认为好用的,常用的,spring分装的一些类和方法。 不带参数的跳转 〔1〕我在后台一个controller跳转到另一个controller,为什么有这种需求呢,是这样的。我有一个列表页面,然后我会进行新增操作,新增在后台完成之后我要跳转到列表页面,不需要传递参数,列表页面默认查询全部的。 方式一:运用ModelAndView return new ModelAndView(redirect:/toList); 这样可以重定向到toList这个方法。 方式二:返回String return redirect:/ toList ; 其它方式: 其它方式还有许多,这里不再做介绍了,比如说response等等。这是不带参数的重定向。 带参数拼接url的跳转 第二种状况,列表页面有查询条件,跳转后我的查询条件不能丢掉,这样就需要带参数的了,带参数可以拼接url 方式一:自己手动拼接url new ModelAndView(redirect:/toList?param1=+value1+m2=+value2); 这样有个弊端,就是传中文可能会有乱码问题。 方式二:用RedirectAttributes, 这个是发觉的一个比较好用的一个类 这里用它的addAttribute方法,这个事实上重定向过去以后你看url,是它自动本文为Word版本,下载可任意编辑 第 4 页 共 5 页 给你拼了你的url。这种方式就相当于重定向之后,在url后面拼接参数,这样在重定向之后的页面或者掌握器再去猎取url后面的参数就可以了,但这个方式由于是在url后面添加参数的方式,所以暴露了参数,有风险。 运用方法:attr.addAttribute(param, value); return redirect:/namespace/toController; 这样在toController这个方法中就可以通过获得参数的方式获得这个参数,再传递到页面。过去的url还是和方式一一样的。 带参数不拼接参数跳转 带参数不拼接url页面也能拿到值〔重点是这个〕一般我估量重定向到都想用这种方式: @RequestMapping(/save) public String save(@ModelAttribute(form) Bean form,RedirectAttributes attr)throws E*ception { String code = service.save(form); if(code.equals(000)){ attr.addFlashAttribute(name, form.getName()); 这种方式也能达到重新向带参, 而且能隐蔽参数,其原理就是放到session中,session在跳到页面后立刻移除对象。所以你刷新一下后这个值就会丢掉 attr.addFlashAttribute(success, 添加胜利!); return redirect:/inde*;}else{ attr.addAttribute(projectName, form.getProjectName()); attr.addAttribute(enviroment, form.getEnviroment());attr.addFlashAttribute(msg, 添加出错!错误码为: +rsp.getCode().getCode()+,错误为:+rsp.getCode().getName());return redirect:/maintenance/toAddConfigCenter; }} 本文为Word版本,下载可任意编辑 第 5 页 共 5 页 @RequestMapping(/inde*) Public String save(@ModelAttribute(form) Bean form,RedirectAttributes attr) throws E*ception { return redirect:/main/list;} 页面取值径直用el表达式就能获得到(例如:${projectName }),这里的原理是放到session中,session在跳到页面后立刻移除对象。所以你刷新一下后这个值就会丢掉。${projectName }的值,这要想用在js中需要先放在页面的。 <script type="te*t/javascript"> Var projectName= ${projectName};</script>

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

spring3 MVC实战,手工搭建Spring3项目demo 最近的项目在用Spring3,涉及到了基于注解的MVC,事务管理,与hibernate的整合开发等内容,我打算写一个系列出来,记录下这个痛苦但又充满成就感的过程----网上实在太难找能让新手快速理解掌握的文章了

这篇文章专门针对使用Spring3进行开发的新手,高手就请绕道吧,也欢迎拍个砖再走...

我打算从这几个方面写:1.开发环境确认 2.Spring3的jar包 3.Spring3项目配置 4.其他

一、开发环境确认 1.工具及版本 jdk我用的是1.6的;jdk的下载安装和配置就不讲了,如果这个还搞不定还谈什么spring啊

myeclipse用的是6.0(实在太落后啦,还是8.X舒服)不过这里是手工搭建不使用自动生成工具,所以版本无所谓的;使用eclipse for javaEE也ok,不过跟myeclipse可能在项目目录上会有少许的不同,eclipse的web跟目录是WebContent,而myeclipse通常是WebRoot

tomcat是6的,666,大顺哈 2.确认 为了保证开发环境正常请做一下确认,在运行里输入cmd打开命令行,输入java -version命令,显示类似如下内容:

java version "1.6.0_23" Java(TM) SE Runtime Environment (build 1.6.0_23-b05) Java HotSpot(TM) Client VM (build 19.0-b09, mixed mode, sharing)

然后,启动tomcat6,请确认控制台没有报错信息,控制台输出类似如下: 2011-1-19 14:58:27 org.apache.coyote.http11.Http11Protocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 2011-1-19 14:58:27 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 255 ms 2011-1-19 14:58:27 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 2011-1-19 14:58:28 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/6.0.20 2011-1-19 14:58:29 org.apache.coyote.http11.Http11Protocol start 信息: Starting Coyote HTTP/1.1 on http-8080 2011-1-19 14:58:29 org.apache.jk.common.ChannelSocket init 信息: JK: ajp13 listening on /0.0.0.0:8009 2011-1-19 14:58:29 org.apache.jk.server.JkMain start 信息: Jk running ID=0 time=0/15 config=null 2011-1-19 14:58:29 org.apache.catalina.startup.Catalina start 信息: Server startup in 1401 ms

确认myeclipse或eclipse下server视图下有你的tomcat6且可以正常启动关闭,如果没有自行配置,如果不知道自己网上搜

确认你的myeclipse或eclipse下的java平台是刚才确认过的jdk1.6 这一部分最后一步,新建一个webProject,如果你用的是是eclipse for javaEE那么项目类型选择Static web project

注意,eclipse新建web项目需要选择target runtime,如果没有就配上你的tomcat6,myeclipse新建项目j2EE Specification Level项要选择javaEE5.0

二、Spring3的jar包 1.下载Spring3 先到官网现在吧,上网址:http://www.springsource.org/download 现在最新版本是3.0.5,看图,点圈住区域的链接

现在点击之后需要注册用户才能下载,那就注册一下吧,spring这么伟大的开源项目,能不支持吗?当然你也可以选择下图所示的链接跳过

之后跳转到文件下载选择页面,需要下载两个文件: spring-framework-3.0.5.RELEASE-with-docs.zip 和 spring-framework-3.0.5.RELEASE-dependencies.zip

但是现在官方已经没有了 spring-framework-3.0.5.RELEASE-dependencies.zip的下载链接(这些依赖我们都可以分别到各自相关的开源项目下载),不知为何,你可以分别网上搜

spring-framework-3.0.5.RELEASE-with-docs.zip 解压后目录结构如下: dependency的目录结构基本上全是以com.XX org.XX为名字的目录,太长了就不截图了。

下面就是导入了,导入前先说明白两点: 1. spring3开始jar包不再包含全能的spring.jar了,而是分成20多个jar包了,配置可以按需引入了

2. 项目中使用spring除了引入dist目录下的jar包,还需要dependencies下的一些依赖包,下面再具体说。

2.引入dist目录下除了下面三个其余所有包 org.springframework.web.struts-3.0.5.RELEASE.jar org.springframework.spring-library-3.0.5.RELEASE.libd org.springframework.web.portlet-3.0.5.RELEASE.jar 如何引入jar包,对项目鼠标右键选择【Build Path】,选择【Add Extenal Archives】,浏览到jar包的位置,打开即可

3.接下来,还必须导入日志相关的一个jar包---commons logging和一个名为

com.springsource.org.aopalliance-1.0.0.jar的jar包

分别在spring-framework-3.0.5.RELEASE-dependencies\org.apache.commons\com.springsource.org.apache.commons.logging\1.1.1

及spring-framework-3.0.5.RELEASE-dependencies\org.aopalliance\com.springsource.org.aopalliance\1.0.0下

目录下。如果不引入部署项目tomcat会报如下错误:严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 三、spring3配置 1.web.xml配置 web.xml内容如下: xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> contextConfigLocation /WEB-INF/spring-servlet.xml org.springframework.web.context.ContextLoaderListener

spring org.springframework.web.servlet.DispatcherServletervlet-class> 1 spring /

相关文档
最新文档