从
Struts
转到
Spring MVC
的应用
之前的项目比较简单,多是用
JSP
、
Servlet + JDBC
直接搞定,去年开始在项目中尝试用
Struts(Spring MVC)+Spring+Hibernate,
严格按照分层概念驱动项目开发,因项目需求一直不断变化,功能不断扩充、增强,技术构建也几经改变到目前有个稳定的应用,体会了很多感受,这次先对
MVC
层进行一些个人总结。
MVC
作为
WEB
项目开发的核心环节,正如三个单词的分解那样,
C(
控制器
)
将
V(
视图、用户客户端
)
与
M
(模块,业务)分开构成了
MVC
,这边不去是否应用
MVC
,或
MVC
的更多原理进行讨论,而是将实践中如何从应用
SSH,
到
Spring MVC + Spring+Hibernate
进行演化
先看
Struts
如何与
Spring
结合处理一次简单的请求响应代码,前台可以设为用
AJAX
调用:
1. 在
struts-config.xml
文件中加入
<!--用于声明GetPersonList.do请求委托Spring处理-->
<action path="/GetPersonList" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
</action>
2.在
applicationContext.xml
文件中加入
<!— 指定GetPersonList.do处理的代码,和注入实现业务的代码 -->
<bean name="/GetPersonList" class="cn.base.GetPersonListAction">
<property name="getPersonList" ref=" getPersonListServices"></property>
</bean>
3.cn.base.GetPersonListAction
实现请求响应代码
可以看出一次请求需求如此多的步骤,在加上一个项目下来有很多这样的请求响应,将给配置文件管理带来很大的麻烦。
经过对
Spring
的深入应用,
Spring
本身提供的
URL
请求控制,对其天然支持可以让我们不需要
applicationContext.xml
再次声明一次
URL
请求
Bean
,即减少了
Struts
的声明
URL
,达到减少些繁琐的配置。但只是少了一些而已,同样也会面临着配置文件的管理问题。
<bean id="beanNameUrlHandlerMapping" class="org.springframework.web.servlet.handler.BeanNameHandlerMapping" />
<bean name="/a.html" class="example.chapter7.ControllerA" />
<bean name="/a.html" class="example.chapter7.ControllerB" />
Spring
注解将给我们的工作带来些轻松,利用反射机制原理出现的注解就是为了解决配置大量的配置问题。请看下处理一次简单的请求响应代码
@Controller --声明控制器
@RequestMapping("/person.do") –声明URL
public class PersonControl extends BaseController {
@Autowired –业务接口注入
private personServices personServices;
/**
* 获得人员列表
* @param request
* @param response
* @throws Exception
*/
@RequestMapping(params = "method=geList") --即处理/person.do? method=geList方法
public void getnodeList(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//处理请求
//处理响应
}
}
可以看出,在代码上加入注解可以省去我们上面说的多个配置文件的工作,达到简便的
MVC
处理请求响应。
在配上简单的配置文件声明,即可轻松处理项目的全部请求控制工作。
- 大小: 24.1 KB
分享到:
相关推荐
【作品名称】:基于Python的蓝桥杯竞赛平台的设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】:基于Python的蓝桥杯竞赛平台的设计与实现
python实现基于深度学习TensorFlow框架的花朵识别项目源码.zip
3-9
郊狼优化算法COA MATLAB源码, 应用案例为函数极值求解以及优化svm进行分类,代码注释详细,可结合自身需求进行应用
5635356
客户培训课程–金字塔式写作方法.ppt
工具与方法工作手册.ppt
Image_1715565894150.jpg
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
快速排序 C语言快速排序.doc C语言快速排序.doc C语言快速排序.doc C语言快速排序.doc C语言快速排序.doc C语言快速排序.doc
【作品名称】:基于Python+MobileFaceNet的静默活体检测系统的设计与实现 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 2、实验环境 Windows 10(64位) CPU:AMD Ryzen 7 5800H RAM:16G GPU:NVIDIA RTX3060 开发工具:IntelliJ IDEA以及PyCharm 相关配置及版本: Chrome 90.0.4430.212 SpringBoot 2.2.6 Java JDK8 MyBatis 2.1.1 Mysql 8.0.25 Python 3.8 pytorch 1.7.1 torchvision 0.8.2 numpy 1.18.5 tensorboard 2.4.1 pandas 1.2.3 cuda 11.0.2 cudnn 11.2 torch 1.8.1 torchvision 0.9.1 3、模型训练命令 python train.py 4、模型测试命令
基于JavaScript的交通时空大数据分析挖掘系统源码+运行说明 项目描述 项目核心是百度地图 AMap和 echarts,用百度地图提供的API搭建的地图,项目中用到的有热力图、散点图和连线图,图表类型是由echarts提供的图表进行展示,包括饼图、柱状图 安装依赖 javascript
麦肯锡—xx集团战略咨询项目建议书.ppt
文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
麦肯锡--战略咨询培训手册.ppt
graspnet-pybullet
xx电器品牌战略和营销组织架构-SHA----d.ppt
麦肯锡-战略规划模板.ppt
短视频拍摄-课程网盘链接提取码下载 .txt
Ruby是一种为简单快捷面向对象编程而创建的脚本语言,由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号matz)开发,遵守GPL协议和Ruby License。Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言。 Ruby以7月的诞生石ruby(红宝石)命名,是因为Perl的发音与6月的诞生石pearl(珍珠)相同。Ruby明显比其他类似的编程语言(如Perl或Python)年轻,又因为Ruby是日本人发明的,所以早期的非日文资料和程序都比较贫乏。