spring,mvc,教程
来源:学生作业帮助网 编辑:作业帮 时间:2024/09/24 17:15:20 体裁作文
篇一:spring mvc经典自学教程
spring mvc学习教程(一)-入门实例
引言
1.MVC:Model-View-Control
框架性质的C层要完成的主要工作:封装web请求为一个数据对象、调用业务逻辑层来处理数据对象、
返回处理数据结果及相应的视图给用户。
2.简要概述springmvc
Spring 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 目录下)。
2.编写HelloWorld实例
步骤一、建立名为springMVC_01_helloword,并导入上面列出的jar 包。
步骤二、编写web.xml配置文件,代码如下:
1.
2. 3. xmlns:xsi="/xml/ns/javaee 5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 6. 7. 8. rServlet 9. 10. 11. 12. 13. 14. 15.
16.
17.
复制代码
步骤三、建立spring-servlet.xml文件,它的命名规则:servlet-name-servlet.xml。它的主要代码如下:
1.
2.
3. 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 5. xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" 6. xmlns:util="http://www.springframework.org/schema/util" 7. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 9. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 10. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> 11. 12. 13. class="org.springframework.web.servlet.handler.SimpleUrl HandlerMapping"> 14. 15. 16. key="/hello.do">helloControl 17. 18. 19. 20. 21.
22.
复制代码
步骤四、完成HelloWord.java的编写,代码如下:
1. package controller;
2.
3. import javax.servlet.http.HttpServletRequest;
4. import javax.servlet.http.HttpServletResponse;
5.
6. import org.springframework.web.servlet.ModelAndView;
7. import org.springframework.web.servlet.mvc.Controller;
8.
9. public class HelloWord implements Controller {
10. public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response)
11. throws Exception {
12. ModelAndView mav = new ModelAndView("hello.jsp");
13. mav.addObject("message", "Hello World!");
14. return mav;
15. }
16. }
17. /*
18. * 说明:ModelAndView对象是包含视图和业务数据的混合对象,即是说通过此对象,我们
可以知道所
19. 返回的相应页面(比如这里返回hello.jsp页面),也可以在相应的页面中获取此对象所
包含的业务数据
20. (比如这里message-hello worrld)。*/
21.
复制代码
步骤五、在当前项目web根目录下编写hello.jsp,主要代码如下:
1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2. <%
3. String path = request.getContextPath();
4. String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServer
Port()+path+"/";
5. %>
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
22.
23.
24.
25.
26. 获取值:${message}
27.
28.
29.
复制代码
步骤六:输入.../hello.do 进行测试。
如http://localhost/springmvc/hello.do
运行的结果是:获取值:Hello World!
4.简析spring mvc工作原理
(1)启动服务器,根据web.xml的配置加载前端控制器(也称总控制器)DispatcherServlet。在加载
时、会完成一系列的初始化动作。
(2)根据servlet的映射请求(上面的helloWorld实例中针对.do 请求),并参照“控制器
篇二:SpringMVC教程
目录
项目目录结构图:............................................................................................................ 2
第一步:准备................................................................................................................... 2
Sprng中的jar包........................................................................................................ 2
Hibernate中的jar包.................................................................................................. 3
其它jar包................................................................................................................. 4
第二步:配置文件............................................................................................................ 5
从hibernate中复制并修改文件.................................................................................. 5
修改hibernate.properties文件 ............................................................................ 6
修改log4j.properties文件 ................................................................................... 6
编写spring配置文件 ................................................................................................. 7
新建applicationContext.xml文件 ......................................................................... 7
新建spring-servlet.xml文件 ................................................................................ 9
修改web.xml文件 ..................................................................................................... 9
第三步:业务逻辑.......................................................................................................... 10
Model层 ................................................................................................................. 10
Dao层..................................................................................................................... 11
Service层 ................................................................................................................ 12
Controller层(Action层) ....................................................................................... 13
View层 ................................................................................................................... 14
第四步:测试................................................................................................................. 15
开启服务器 ............................................................................................................. 15
在浏览器中浏览 ...................................................................................................... 16
运行结果: ............................................................................................................. 16
项目目录结构图:
项目结构图
第一步:准备
Sprng中的jar包
首先从spring官网/retype/zoom/a0cbe2cfaa00b52acfc7ca08?pn=2&x=0&y=7&raww=893&rawh=632&o=png_6_0_0_0_0_0_0_893.25_1263.375&type=pic&aimh=339.7088465845465&md5sum=79fddb2749607507a0c5cad862e0b46f&sign=e523ddd546&zoom=&png=0-15862&jpg=0-0" target="_blank">点此查看
解压得到文件夹:
打开文件夹:
选择如下jar包:
将以上jar包复制到你的/web-INF下的/lib中(以下简称lib)。
Hibernate中的jar包
准备hibernate的jar包,从hibernate官网/retype/zoom/a0cbe2cfaa00b52acfc7ca08?pn=3&x=0&y=7&raww=893&rawh=32&o=png_6_0_0_0_0_0_0_893.25_1263.375&type=pic&aimh=17.200447928331467&md5sum=79fddb2749607507a0c5cad862e0b46f&sign=e523ddd546&zoom=&png=15863-46671&jpg=0-0" target="_blank">点此查看
将此文件夹的jar包全部复制到web项目的lib目录中并将jpa中的jar也复制到lib中。将bytecode中的cglib复制到lib中。分别如图:
其它jar包
以上是hibernate和spring中所要加入的包,除些之外还要加入如下包:
以上是所有的springMVC+hibernate的所需jar包。
将所有jar包复制到web项目的lib目录中。
第二步:配置文件
从hibernate中复制并修改文件
首先从hibernate中的project文件夹中打到etc文件夹,复制其中如图所示的两个文件到classpath下,如图:
图
2-1
篇三: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框架中的任?a href="http://www.zw2.cn/zhuanti/guanyuwozuowen/" target="_blank" class="keylink">我桓觥?比Spring更不紧耦合的servlet或JSP向客户端呈现视图。 喜欢速度与其他视图技术集成,Freemarker的,Excel或PDF现在也有可能。 Spring3.0 MVC系列
?
?
?
?
?
?
? 处理 教程 第5部分:Spring3 MVC的国际化及本地化教程与范例在 Eclipse 的
在Spring Web MVC,你可以使用任何对象作为命令或表单支持对象,你不需要实现框架特定的接口或基类。 Spring的数据绑定是高度灵活的:例如,将验证错误类型不作为应用系统错误,可以通过评估的不匹配。 因此,你不必重复你的业务对象的属性,简单的无类型的字符串,在表单对象仅仅是为了处理无效的意见,或正确转换的字符串。 相反,它往往是最好直接绑定到业务对象。
请求处理生命周期
Spring的Web MVC框架是,像许多其他Web MVC框架,要求为导向,围绕一个中心的servlet,它把请求分派给控制器,提供其他功能,有利于开发Web应用而设计的。 Spring DispatcherServlet DispatcherServlet是Spring IoC容器完全集成,并允许我们使用的每一个Spring的其他功能。
以下是Spring3.0 MVC请求流程的生命周期:
客户端将请求发送到Web容器中的HTTP请求的形式。
这个传入的请求被截获由前端控制器 (DispatcherServlet的),然后它会试图找出相应的处理程序映射 。
帮助处理程序映射,DispatcherServlet将请求派遣适当的控制器。
控制器尝试处理请求和ModelAndView实例的形式返回到前端控制器模型和视图对象。
前端控制器,然后试图解决咨询视图解析器对象的视图(可以是JSP,FreeMarker的,速度等) 。 选定的视图,然后返回到客户端呈现。
Spring3.0的特点
?
?
?
?
? Spring3.0框架支持Java 5。 它提供了注释的配置支持。 Java 5的功能,例如泛型,注解,可以使用可变参数等在Spring。 正在引进一种新的表达语言The Spring 的表达语言规划环境地政局局长。 Spring的表达式语言可以使用,同时定义了基于XML和注释的bean定义。 Spring3.0框架支持REST Web服务。 数据格式可从来没有那么容易。 Spring 3.0支持了注释的格式。 现在,我们可以使用@ DateFimeFormat(ISO = ISO.DATE)和@NumberFormat(样式= Spring.CURRENCY)标注日期和货币格式转换。 Spring3.0已经开始支持JPA 2.0的。
配置Spring 3.0的MVC
切入点的Spring 3.0 MVC DispatcherServlet 。 DispatcherServlet的是正常的servlet的类,它是HttpServlet的的基类。 因此,我们需要在它web.xml配置。
在上面的代码片断中,我们必须在web.xml中配置DispatcherServlet的。 请注意,我们已经映射*. HTML URL模式,例如DispatcherServlet的。 因此,任何与*. HTML模式的URL将调用Spring MVC的前端控制器。
一旦DispatcherServlet的初始化,它会查找一个文件名[servlet-name]-servlet.xml Web应用程序的WEB - INF文件夹中。 在上面的例子中,将寻找所谓example-servlet.xml servlet.xml的框架。 请注意上面的架构图。 WebApplicationContext上图中指定ApplicationContext平原扩展Web应用程序所需的一些额外的功能。 在WebApplicationContext是能够解决的主题,它也与相应的servlet相关。 在WebApplicationContext在ServletContext中的约束,并通过对RequestContextUtils类的静态方法,您可以随时查找在WebApplicationContext。
继续
现在,我们有关的Spring 3.0 MVC框架,其生命周期架构的想法, 在接下来的部分中,我们将创建一个工作Spring3.0的 Hello World应用程序从头。
Spring3 MVC:在Spring 3.0 MVC创建Hello World应用程序
Spring3.0 MVC系列的第2部分。 在以前的文章中,我们经历介绍的Spring MVC 3.0框架,其请求处理生命周期和体系结构图。 在这篇文章中,让我们在Spring MVC 3.0创建一个简单的的Hello World应用程序。
对于创建的Hello World演示应用程序,我们将使用Eclipse IDE中。
我们需要的东西
之前,我们与我们的第一个Hello World Struts 2的示例开始,我们将需要一些工具。
1. JDK 1.5以上( 下载 )
2. 以上的Tomcat 5.x的或任何其他容器(Glassfish的中,WebSphere,JBoss的,在Weblogic
等)( 下载 )
3. Eclipse的3.2.x中,它上面的( 下载 )
4. Spring3.0 MVC JAR文件:( 下载 )。 以下是此应用程序所需的JAR文件的清单。
o commons-logging-1.0.4.jar
o jstl-1.2.jar
o org.springframework.asm - 3.0.1.RELEASE - A.jar
o org.springframework.beans - 3.0.1.RELEASE - A.jar
o org.springframework.context - 3.0.1.RELEASE - A.jar
o org.springframework.core - 3.0.1.RELEASE - A.jar
o org.springframework.expression - 3.0.1.RELEASE - A.jar
o org.springframework.web.servlet - 3.0.1.RELEASE - A.jar
o org.springframework.web - 3.0.1.RELEASE - A.jar
请注意,根据Spring MVC的当前版本,上述jar文件的版本号可能会改变。
我们的目标
我们的目标是创建一个基本的Spring MVC应用中使用最新的3.0版本。 将会有一个索引页,它会显示一个链接”打招呼”给用户。 点击此链接,用户将被重定向到另一页打招呼 ,它会显示一条消息的”Hello World,Spring3.0!”。
入门
让我们开始我们的第一个Spring3.0基于MVC的应用程序。
打开Eclipse转到文件- >新建- >项目,然后选择动态Web项目中的新建项目向导屏幕。
选择动态Web项目后,按” 下一步”“ 。
篇四:springMVC教程
目录
SpringMvc教程 ......................................................................................................................... 1
初识springMVC ........................................................................................................................ 1
背景 ....................................................................................................................................... 1
常见MVC框架比较 ......................................................................................................... 2
基于spring3.2的 采用annotation方式搭建springMVC环境......................................... 2
springMVC的RequestMapping的基本设置 ....................................................................... 7
在controller中获取前台传递的参数 ................................................................................. 9
在controller中获取web元素 .......................................................................................... 10
将controller中数据传递到jsp页面................................................................................. 11
设置跳转方式为重定向或者转发 ..................................................................................... 15
视图解析器的配置和使用 ................................................................................................. 15
controller中方法的返回值类型 ........................................................................................ 16
springMVC的文件上传于下载 .......................................................................................... 19
springMVC和jQuery的Ajax结合 .................................................................................... 23
SpringMvc教程
作者:DK
初识springMVC
背景
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
常见MVC框架比较
运行性能上:
Jsp+servlet>struts1>spring mvc>struts2+freemarker>>struts2,ognl,值栈。
Struts2的性能低的原因是因为OGNL和值栈造成的。所以,如果你的系统并发量高,可以使用freemaker进行显示,而不是采用OGNL和值栈。这样,在性能上会有相当大得提高。
(转载于:www.smhaida.com 海 达 范 文网:spring,mvc,教程)开发效率上,基本正好相反。值得强调的是,spring mvc开发效率和struts2不相上下。
基于spring3.2的 采用annotation方式搭建springMVC环境
1、 上官网下载对应的zip包
下载地址为:
http://repo.spring.io/webapp/home.html?0
2、 解压之后得到目录: 当然该zip并非最新的。
打开libs会看到会多jar
这里边包括了所有的jar和source和doc。当然我们只是需要使用jar就可以了。
3、创建空的web项目 目录结构如下:
其中user实体类为:
public class User {
public void setAge(Integer age) { }
this.age = age; public Integer getAge() { } return age; public User(String name, Integer age, Date birth) { } super(); this.name = name; this.age = age; this.birth = birth; public void setName(String name) { } this.name = name; public String getName() { } return name; private String name; private Integer age; private Date birth;
} public Date getBirth() { } public void setBirth(Date birth) { } public User() { } public User(String name) { } @Override public String toString() { } // TODO Auto-generated method stub return "["+name+"]"; super(); this.name = name; super(); // TODO Auto-generated constructor stub this.birth = birth; return birth;
4、在项目中添加如下jar文件: spring-webmvc-3.2.0.RELEASE.jar spring-core-3.2.0.RELEASE.jar spring-context-3.2.0.RELEASE.jar spring-beans-3.2.0.RELEASE.jar spring-web-3.2.0.RELEASE.jar commons-logging.jar
spring-expression-3.2.0.RELEASE.jar 其中commons-logging.jar请单独下载。
5、在web.xml中添加过滤器的配置。
篇五:Spring MVC 实战教程
Spring MVC 实战教程
对于现有较成熟的Model-View-Control(MVC)框架而言,其解决的主要问题无外乎下面几部分:
1.将Web页面中的输入元素封装为一个(请求)数据对象。
2.根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。
3.逻辑处理单元完成运算后,返回一个结果数据对象。
4.将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。
各个MVC 实现固然存在差异,但其中的关键流程大致如上。结合一个实例,我们来看看这几个关键流程在Spring MVC框架中的处理手法。
下面的实例,实现了一个常见的用户登录逻辑,即用户通过用户名和密码登录,系统对用户名和密码进行检测,如果正确,则在页面上显示几条通知信息。如果登录失败,则返回失败界面。
新建web工程
引入所需要的jar包,此处我采用的spring的版本为spring-framework-2.5.6。解压后在
dist/modules目录下所有的jar包,另外还需要apache的日志包commons-logging.jar,将这些jar包放于工程下WEB-INF/lib目录下,如图示:
首先来看登录界面
对应的index.html
用户名:
密码:
很简单的一个登录界面,其中包含了一个用以输入用户名密码的form,针对此form的提交将被发送到 "login.do" 接下来在web.xml中做如下配置 Servlet定义 这里我们定义了请求分发Servlet,即: org.springframework.web.servlet.DispatcherServlet,DispatcherServlet是 Spring MVC 中负责请求调度的核心引擎,所有的请求将由此Servlet 根据配置分发至各个逻辑处理单元。其内部同时也维护了一个ApplicationContext实例。我们在 节点中配 置了名为“contextConfigLocation”的Servlet参数,此参数指定了Spring配置文件的位置“/WEB-INF/Config.xml”。如果忽略此设定, 则默认为“/WEB-INF/ 等。 通过以上设定,Web 服务器将把登录界面提交的请求转交给Dispatcher 处理,Dispatcher将提取请求 (HttpServletRequest)中的输入数据,分发给对应的处理单元,各单元处理完毕后,将输出页面返回给Web服务器,再由Web服务器返回给用户浏览器。Dispatcher 根据什么分发这些请求?显然,我们还需要一个配置文件加以设定。这也就是上面提及的Config.xml,此文件包含了所有的“请求/处理单元”关系映射设定,以及返回时表现层的一些属性设置。 请求映射 我们将所有以.do结尾的请求交给Spring MVC进行处理。当然,也可以设为其他值,如.action、.action Resolver将把输出结果与输出界面相融合,为表现层提供呈现资源。 View Resolver的viewClass参数这里我们使用JSP页面作为输出,因此,设定为: org.springframework.web.servlet.view.JstlView其余可选的viewClass还有: ? org.springframework.web.servlet.view.freemarker.FreeMarkerView (用于基于FreeMarker模板的表现层实现) ? org.springframework.web.servlet.view.velocity.VelocityView (用于基于velocity模板的表现层实现) View Resolver的prefix和suffix参数指定了表现层资源的前缀和后缀,运行时,Spring 将为指定的表现层资源自动追加前缀和后缀,以形成一个完整的资源路径 “请求/处理单元”关系映射可以看到,这里我们将“/login.do”请求映射到处理单元 LoginAction。 LoginAction定义这里定义了逻辑处理单元LoginAction的具体实现,这里,LoginAction的实现 类为org.nacl.action.LoginAction。 LoginAction的请求数据对象commandClass参数源于LoginAction的基类 BaseCommandController,BaseCommandControlle包含了请求数据封装和验证方法 (BaseCommandController.bindAndValidate),它将根据传入的HttpServletRequest构造请求数据对象。这里我们指定commandClass为org.nacl.action.LoginInfo,这是一个非常普通的Java Bean,它封装了登录请求所需的数据内容: Spring会根据LoginAction的commandClass定义自动加载对应的LoginInfo实例。之后,对Http 请求中的参数进行遍历,并查找LoginInfo对象中是否存在与之同名的属性,如果找到,则将此参数值复制到LoginInfo对象的同名属性中.请求数据转换完成之后,我们得到了一个封装了所有请求参数的Java 对象,并将此对象作为输入参数传递给LoginAction。 返回视图定义 对于这里的LoginAction而言,有两种返回结果,即登录失败时返回错误界面,登录成功时进入系统主界面。对应我们配置了fail_view、success_view两个自定义参数。参数值将由Resolver进行处理,为其加上前缀后缀,如对于fail_view而言,实际的视图路径为/WEB-INF/view/loginfail.jsp。之后,Resolver 会将LoginAction的返回数据与视图相融合,返回最终的显示界面 业务逻辑处理单元:LoginAction.java onSubmit方法 我们在子类中覆盖了父类的onSubmit方法;而onSubmit方法用于处理业务请求。负责数据封装和请求分发的Dispatcher,将对传入的HttpServletRequest进行封装,形成请求数据对象,之后根据配置文件,调用对应业务逻辑类的入口方法(这里就是LoginAction)的onSubmit()方法,并将请求数据对象及其他相关资源引用传入。 onSubmit方法包含了两个参数:Object cmd和BindException ex 。前面曾经多次提到请求数据对象,