没有合适的资源?快使用搜索试试~ 我知道了~
首页最全最经典spring_mvc教程
最全最经典spring_mvc教程
需积分: 10 84 浏览量
更新于2023-05-30
评论
收藏 488KB PDF 举报
spring_mvc是现在比较流行常用的框架,此文档为最全最经典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 配置文件,代码如下:
!"#$%&'()*+,-./012/&(-3,4+-5./6789:/";&
!<(=9>??&'()*+,-./@1A/&
#$%-*./BCC?DEEF>'>1*G-13,$E#$%E-*EF>'>((/&
&#$%-*D#*+./BCC?DEE<<<1<H1,)5E@220EIJKL3B($>9+-*C>-3(/&
&&#*+D*3B($>K,3>C+,-./BCC?DEEF>'>1*G-13,$E#$%E-*EF>'>((&&
&&&BCC?DEEF>'>1*G-13,$E#$%E-*EF>'>((E<(=9>??M@MA1#*4/;&
&!*()'%(C;&
&&&!*()'%(C9->$(;*?)+-5!E*()'%(C9->$(;&

!
!
&&&&&&&&&&&&&&&&!*()'%(C93%>**;,)51*?)+-5N)>$(<,)O1<(=1*()'%(C1P+*?>C
3B()L()'%(C!E*()'%(C93%>**;&
&&&&&&&&&&&&&&&!%,>49,-9*C>)CG?;0!E%,>49,-9*C>)CG?;&
&&&&&&&!E*()'%(C;&
&&&&&&&!*()'%(C9$>??+-5;&
&&&&&&&&&&&&&&&!*()'%(C9->$(;*?)+-5!E*()'%(C9->$(;&
&&&&&&&&&&&&&&&&!G)%9?>CC()-;Q14,!EG)%9?>CC()-;&
&&&&&&&!E*()'%(C9$>??+-5;&
!E<(=9>??;&
&
!R99&所有请求都要由 P+*?>C3B()L()'%(C 来处理,因此映射到/E/上面
S包括静态页面),&!%,>49,-9*C>)CG?;不加经测试也未见出错,而且如
果要修改 *?)+-59*()'%(C1#$% 的配置位置或名字,&&
&&&&&&&&可以加&!+-+C9?>)>$;&
!?>)>$9->$(;3,-C(#CT,-N+5K,3>C+,-!E?>)>$9->$(;&
!?>)>$9'>%G(;EUVW9XY8E*?)+-59*()'%(C1#$%!E?>)>$9'>%G(;&&
&&&&&&&&!E+-+C9?>)>$;&但一定要放到!%,>49,-9*C>)CG?;前面,否则
#$% 校验出错(经测试)。&
&&&&&&&&
&&&&&&&&简要说明:P+*?>C3B()L()'%(C 就是一个 L()'%(C,也是对请
求进行转发的核心 L()'%(C。在这里即所&
有14,&的请求将首先被 P+*?>C3B()L()'%(C 处理,而
P+*?>C3B()L()'%(C 它要作的工作就是对请求进行分&
发(也即是说把请求转发给具体的 T,-C),%%())。可以简单地认为,它就
是一个总控处理器,但事实上&
它除了具备总控处理理器对请求进行分发的能力外,还与 *?)+-5 的 XZT&
容器完全集成在一起,从而可以&
更好地使用 *?)+-5 的其它功能。在这里还需留意
!*()'%(C9->$(;*?)+-5!E*()'%(C9->$(;,下面&
步骤三会用到。&
&&&&&&&&&99;&

!
!
步骤三、建立 spring-servlet.xml 文件,它的命名规则:servlet-name-servlet.xml。
它的主要代码如下:
01 !"#$%&'()*+,-./012/&(-3,4+-5./6789:/";&
@1 &
H1 !=(>-*&#$%-*./BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E=(>-*/&
[1 &&&&&&&&#$%-*D#*+./BCC?DEE<<<1<H1,)5E@220EIJKL3B($>9+-*C>-
3(/&#$%-*D?./BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E?/&
A1 &&&&&&&&#$%-*D$'3./BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E$
'3/&
#$%-*D3,-C(#C./BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E3,-C(
#C/&
\1 &&&&&&&&#$%-*DGC+%./BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E
GC+%/&
]1 &&&&&&&&#*+D*3B($>K,3>C+,-./BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5
E*3B($>E=(>-*&
BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E=(>-*E*?)+-59=(>-*9H
121#*4&&&
:1 &&&&&&&&&&&&BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E3,-C(#C&
BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E3,-C(#CE*?)+-593,-C(
#C9H121#*4&&&
^1 &&&&&&&&&&&&BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E$'3&
BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>E$'3E*?)+-59$'39H121#
*4&&&
021 &&&&&&&&&&&&BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>EGC+%&
BCC?DEE<<<1*?)+-5N)>$(<,)O1,)5E*3B($>EGC+%E*?)+-59GC+%9H12
1#*4/;&
001 &
0@1 &&&&&&&&!=(>-&+4./*+$?%(6)%_>-4%()J>??+-5/&
0H1 &&&&&&&&&&&&&&&&3%>**./,)51*?)+-5N)>$(<,)O1<(=1*()'%(C1B>-
4%()1L+$?%(6)%_>-4%()J>??+-5/;&
0[1 &&&&&&&&&&&&&&&&!?),?()C`&->$(./$>??+-5*/;&
0A1 &&&&&&&&&&&&&&&&&&&&&&&&!?),?*;&

!
!
0\1 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&!?),?&
O(`./EB(%%,14,/;B(%%,T,-C),%!E?),?;!R99&说明:B(%%,14, 的请求
将给名为 B(%%,T,-C),% 的 =(>- 进行处理。&99;&
0]1 &&&&&&&&&&&&&&&&&&&&&&&&!E?),?*;&
0:1 &&&&&&&&&&&&&&&&!E?),?()C`;&
0^1 &&&&&&&&!E=(>-;&
@21 &&&&&&&&!=(>-&+4./B(%%,T,-C),%/&
3%>**./3,-C),%%()1_(%%,U,)4/;!E=(>-;&
@01 !E=(>-*;&
@@1 &
复制代码
步骤四、完成 HelloWord.java 的编写,代码如下:
01 ?>3O>5(&3,-C),%%()a&
@1 &
H1 +$?,)C&F>'>#1*()'%(C1BCC?1_CC?L()'%(Cb(cG(*Ca&
[1 +$?,)C&F>'>#1*()'%(C1BCC?1_CC?L()'%(Cb(*?,-*(a&
A1 &
\1 +$?,)C&,)51*?)+-5N)>$(<,)O1<(=1*()'%(C1J,4(%d-4e+(<a&
]1 +$?,)C&,)51*?)+-5N)>$(<,)O1<(=1*()'%(C1$'31T,-C),%%()a&
:1 &
^1 ?G=%+3&3%>**&_(%%,U,)4&+$?%($(-C*&T,-C),%%()&f&
021 &&&&&&&&?G=%+3&J,4(%d-4e+(<&
B>-4%(b(cG(*CS_CC?L()'%(Cb(cG(*C&)(cG(*Cg&
_CC?L()'%(Cb(*?,-*(&)(*?,-*(h&
001 &&&&&&&&CB),<*&V#3(?C+,-&f&
0@1 &&&&&&&&J,4(%d-4e+(<&$>'&.&-(<&J,4(%d-4e+(<S/B(%%,1F*?/ha&
0H1 &&&&&&&&$>'1>44Z=F(3CS/$(**>5(/g&/_(%%,&U,)%4R/ha&
0[1 &&&&&&&&)(CG)-&$>'a&
0A1 &&&&&&&&i&
0\1 &&&&&&&&i&
0]1 EQ&

!
!
0:1 Q&说明:J,4(%d-4e+(< 对象是包含视图和业务数据的混合对象,即是说
通过此对象,我们可以知道所&
0^1 返回的相应页面(比如这里返回 B(%%,1F*? 页面),也可以在相应的页面
中获取此对象所包含的业务数据&
@21 (比如这里 $(**>5(9B(%%,&<,))%4)。QE&
@01 &
复制代码
步骤五、在当前项目 web 根目录下编写 hello.jsp,主要代码如下:
01 !jk&?>5(&%>-5G>5(./F>'>/&+$?,)C./F>'>1GC+%1Q/&
?>5(V-3,4+-5./6789:/j;&
@1 !j&
H1 LC)+-5&?>CB&.&)(cG(*C15(CT,-C(#Cl>CBSha&
[1 LC)+-5&=>*(l>CB&.&
)(cG(*C15(CL3B($(Shm/DEE/m)(cG(*C15(CL()'()Y>$(Shm/D/m)(cG
(*C15(CL()'()l,)CShm?>CBm/E/a&
A1 j;&
\1 &
]1 !RPZT7nlV&_7JK&l6WKXT&/9EEUHTEEP7P&_7JK&[120&
7)>-*+C+,->%EEVY/;&
:1 !BC$%;&
^1 &&!B(>4;&
021 &&&&!=>*(&B)(N./!j.=>*(l>CBj;/;&
001 &&&&&
0@1 &&&&!C+C%(;J`&oLl&pB(%%,1F*?p&*C>)C+-5&?>5(!EC+C%(;&
0H1 &&&&&
0[1 &&&&&&&&!$(C>&BCC?9(cG+'./?)>5$>/&3,-C(-C./-,93>3B(/;&
0A1 &&&&&&&&!$(C>&BCC?9(cG+'./3>3B(93,-C),%/&
3,-C(-C./-,93>3B(/;&
0\1 &&&&&&&&!$(C>&BCC?9(cG+'./(#?+)(*/&3,-C(-C./2/;&&&&&
0]1 &&&&&&&&!$(C>&BCC?9(cG+'./O(`<,)4*/&
3,-C(-C./O(`<,)40gO(`<,)4@gO(`<,)4H/;&
剩余43页未读,继续阅读



















YaoLoong
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0