APP下载

基于Spring MVC的Web应用开发

2013-10-15舒礼莲

计算机与现代化 2013年11期
关键词:视图应用程序页面

舒礼莲

(江西省计算技术研究所,江西 南昌 330002)

0 引言

Spring框架是当前流行的轻量级一站式企业应用程序解决方案,它为应用程序开发提供了许多基础结构,例如:事务处理、远程方法、消息处理等,使开发人员能够专注于程序业务逻辑的实现。MVC模式是近年来流行的应用程序架构,它将应用程序分为模型(Model)、视图(View)、控制器(Controller)3个部分。其中,模型负责存储数据,视图负责显示用户界面,控制器负责控制模型和视图。MVC模式使得程序结构更加清晰,利于维护。目前已经有许多流行的MVC框架,如Struts、WebWork等。Spring框架也包含了一个MVC框架,它与Spring能够更加有机地结合。

1 Spring MCV框架工作原理

Spring MVC框架支持 XML配置和 Java注解(Annotation)配置。Spring MVC框架围绕DispatcherServlet设计。DispatcherServlet是一个 Java Servlet,它根据用户提交的HTTP请求指派不同的处理程序。DispatcherServlet是一个前端控制器,它负责接收用户的HTTP请求,并分配给其他控制器进行处理。其他控制器接收用户请求,提取其中的参数信息,并提取模型中存储的数据,进行处理,然后再传递给DispatcherServlet。DispatcherServlet将结果数据传递给一个视图模板,例如JSP页面,JSP页面将数据显示在页面上返回给用户。这样就较好地实现了数据、程序逻辑和用户界面的分离。Spring框架结构图如图1所示。

图1 Spring MVC框架结构图

2 控制器配置方法

Spring MVC框架充分利用了Spring框架的非侵入性编程的优点。开发人员无需实现任何Spring框架有关的接口。

DispatcherServlet在web.xml中的配置如下:

类BusinessController的定义前面加上了Java注解@Controller,表示它是一个控制器类,该类中的方法用于处理用户请求。该类前面的@RequestMapping("/myurl")注解表示该类用于处理 URL路径“/myurl”的用户请求。例如应用程序名为myapp,则用户在浏览器输入http://localhost/myapp/myurl的请求地址,该请求将转到类BusinessController中的方法进行处理。

该类中的方法doGet前面加上了@RequestMapping(method=RequestMethod.GET),则表示对于用户HTTP请求为GET类型的,将调用doGet方法进行处理。如果要处理POST类型的HTTP请求,则将method属性值改为RequestMethod.POST。

RequestMapping可将参数值传入业务方法,例如:

表示用户请求URL中的一部分可以作为参数传入该业务方法的personId参数。personId参数前面的@PathVariable注解表示该参数从URL路径中获取。例如:用户输入 http://localhost/myapp/102405,则“102405”被作为参数传递给doBusiness方法。

HTTP请求参数也可直接传入业务方法参数,例如:

则HTTP请求中的personId查询参数被传入business-Method的personId参数。用户输入http://localhost/myapp?personId=102405,则“102405”被作为参数传递给businessMethod方法。方法参数不一定要求是String类型,int、long、Date均可从查询字符串解析得到,如果解析失败将抛出异常。

HTTP请求参数可直接绑定到模型数据,例如:

在调用这个方法之前,Spring MVC会创建一个Person类型的person对象,该对象有诸如 personId、name等属性,Spring MVC会将请求页面上的person-Id、name等参数值赋值给这些属性,然后将person对象加入到模型中,再将person对象传递给processRequest方法的person参数。

3 视图与控制器的接口

最常用的视图是JSP,此外,Spring MVC还支持Velocity、Freemarker、XML、JSON 等多种视图形式。

在Spring MVC中,除了原来的ApplicationContext配置环境之外,还专门针对Web应用设置了一个WebApplicationContext,它包含了Web应用中使用的bean配置。其中视图解析器的配置如下:

表示使用JSP视图,JSP的URL路径前缀为“/WEBINF/jsp/”,后缀为“.jsp”。例如,控制器业务方法最后return“myview”,则表示将 myapp/WEB-INF/jsp/myview.jsp页面返回给用户。

可以重定向视图如下:

表示将用户路径的URL中的 path部分重定向到files/目录下。例如,用户输入 http://localhost/myapp/mypath/mypage.jsp,则将重定向到 http://localhost/myapp/files/mypath/mypage.jsp 页面。

4 结束语

在Web开发中使用MVC模式将降低用户界面和合同数据的耦合,提高代码的可维护性。Spring MVC框架可以较好地实现企业应用程序的MVC模式,并不会对原有业务逻辑代码产生侵入。它支持XML配置和Java注解配置,为设计提供了较大的灵活性。Spring MVC框架是一种较好的设计方法,可以在企业应用开发中广泛应用。

[1]SpringSource.Web MVC Framework[EB/OL].http://static.springsource.org/spring/docs/3.2.x/spring-frameworkreference/html/mvc.html,2012-12-05.

[2]Colin Sampaleanu.Green Beans:Getting Started with Spring MVC[EB/OL].http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/,2011-01-04.

[3]陈雄华,林开雄.Spring 3.x企业应用开发实战[M].北京:电子工业出版社,2012.

[4][美]Gary Mark,Daniel Rubio,Josh Long.Spring攻略(第2版)[M].陈宗恒,姚军,蒋亮译.北京:人民邮电出版社,2012.

[5][美]Craig Walls,Ryan Breidenbach.Spring in Action(第2版)[M].毕庆红,王军译.北京:人民邮电出版社,2008.

[6]王坤.基于J2EE平台Spring MVC框架开发的MIS系统设计与实现[D].上海:华东师范大学,2008.

[7]邵刚.基于Spring框架的MVC控制器的优化与改进[D].济南:山东大学,2011.

[8]邹存洁.基于MVC模式的Spring框架的应用与研究[D].大连:大连海事大学,2006.

[9]欧勤坪.基于Spring MVC+iBATIS框架的生物信息数据库系统的设计与实现[D].重庆:西南大学,2009.

[10]郭俊卿.基于MVC框架的上海财税征管系统的设计与实现[D].北京:北京邮电大学,2007.

[11]刘军,戴金山.基于 Spring MVC与iBATIS的轻量级Web应用研究[J].计算机应用,2006,26(4):840-843.

[12]张宇,王映辉,张翔南.基于Spring的MVC框架设计与实现[J].计算机工程,2010,36(4):59-62.

[13]符培炯,杜忠军.Spring在实现MVC构架中的应用[J].计算机技术与发展,2006,16(6):236-238.

[14]刘星沙,罗昔军.基于MVC模式的Struts和Spring整合框架的研究与应用[J].湘潭大学自然科学学报,2007,29(1):92-95.

猜你喜欢

视图应用程序页面
刷新生活的页面
删除Win10中自带的应用程序
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
关闭应用程序更新提醒
同一Word文档 纵横页面并存
浅析ASP.NET页面导航技术
三星电子将开设应用程序下载商店