`

一步步开发 Spring MVC 应用

    博客分类:
  • Java
阅读更多

Spring MVC 框架

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

Spring 的 Web MVC 框架是围绕 DispatcherServlet 设计的,它把请求分派给处理程序,同时带有可配置的处理程序映射、视图解析、本地语言、主题解析以及上载文件支持。默认的处理程序是非常简单的 Controller 接口,只有一个方法 ModelAndView handleRequest(request, response)。Spring 提供了一个控制器层次结构,可以派生子类。如果应用程序需要处理用户输入表单,那么可以继承 AbstractFormController。如果需要把多页输入处理到一个表单,那么可以继承 AbstractWizardFormController。

示例应用程序有助于直观地学习这些特性。银行应用程序允许用户检索他们的帐户信息。在构建银行应用程序的过程中,可以学到如何配置 Spring MVC 框架和实现框架的视图层,视图层包括 JSTL 标记(用于显示输出的数据)和JavaServer Pages 技术。

配置 Spring MVC

要开始构建示例应用程序,请配置 Spring MVC 的 DispatcherServlet。请在 web.xml 文件中注册所有配置。清单 1 显示了如何配置 sampleBankingServlet。

清单 1. 配置 Spring MVC DispatcherServlet

<servlet>
   <servlet-name>sampleBankingServlet</servlet-name>  
   <servlet-class>
      org.springframework.we.servlet.DispatcherServlet
   <servlet-class>
   <load-on-startup>1<load-on-startup>
<servlet>        

DispatcherServlet 从一个 XML 文件装入 Spring 应用程序上下文,XML 文件的名称是 servlet 的名称后面加上 -servlet 。在这个示例中,DispatcherServlet 会从 sampleBankingServlet-servlet.xml 文件装入应用程序上下文。

配置应用程序的 URL

下一步是配置想让 sampleBankingServlet 处理的 URL。同样,还是要在 web.xml 中注册所有这些信息。

清单 2. 配置想要处理的 URL

<servlet-mapping>
<servlet-name> sampleBankingServlet<servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>

装入配置文件

下面,装入配置文件。为了做到这点,请为 Servlet 2.3 规范注册 ContextLoaderListener 或为 Servlet 2.2 及以下的容器注册 ContextLoaderServlet。为了保障后向兼容性,请用 ContextLoaderServlet。在启动 Web 应用程序时,ContextLoaderServlet 会装入 Spring 配置文件。清单 3 注册了 ContextLoaderServlet。

清单 3. 注册 ContextLoaderServlet

context>servlet-name> org.springframework.web.context.ContextLoaderServlet 1

contextConfigLocation 参数定义了要装入的 Spring 配置文件,如下面的 servlet 上下文所示。

contextConfigLocation /WEB-INF/sampleBanking-services.xml

sampleBanking-services.xml 文件代表示例银行应用程序服务的配置和 bean 配置。如果想装入多个配置文件,可以在 标记中用逗号作分隔符。

Spring MVC 示例

示例银行应用程序允许用户根据惟一的 ID 和口令查看帐户信息。虽然 Spring MVC 提供了其他选项,但是我将采用 JSP 技术作为视图页面。这个简单的应用程序包含一个视图页用于用户输入(ID 和口令),另一页显示用户的帐户信息。

我从 LoginBankController 开始,它扩展了 Spring MVC 的 SimpleFormController。SimpleFormContoller 提供了显示从 HTTP GET 请求接收到的表单的功能,以及处理从 HTTP POST 接收到的相同表单数据的功能。LoginBankController 用 AuthenticationService 和 AccountServices 服务进行验证,并执行帐户活动。“ 配置视图属性 ”一节中的 清单 5 描述了如何把 AuthenticationService 和 AccountServices 连接到 LoginBankController。 清单 4 显示了 LoginBankController 的代码。

配置视图属性

下面,我必须注册在接收到 HTTP GET 请求时显示的页面。我在 Spring 配置中用 formView 属性注册这个页面,如清单 5 所示。sucessView 属性代表表单数据提交而且 doSubmitAction() 方法中的逻辑成功执行之后显示的页面。formView 和 sucessView 属性都代表被定义的视图的逻辑名称,逻辑名称映射到实际的视图页面。

清单 5. 注册 LoginBankController

<bean id="loginBankController"
     class="springexample.controller.LoginBankController">
  <property name="sessionForm"><value>true</value></property>
<property name="commandName"><value>loginCommand</value></property>
<property name="commandClass">
  <value>springexample.commands.LoginCommand</value>
</property>
  <property name="authenticationService">
     <ref bean="authenticationService" />
  </property>
  <property name="accountServices">
     <ref bean="accountServices" />
  </property>
  <property name="formView">
     <value>login</value>
  </property>
  <property name="successView">
     <value>accountdetail</value>
  </property>
</bean>

commandClass 和 commandName 标记决定将在视图页面中活动的 bean。例如,可以通过 login.jsp 页面访问 loginCommand bean,这个页面是应用程序的登录页面。一旦用户提交了登录页面,应用程序就可以从 LoginBankController 的 onSubmit() 方法中的命令对象检索出表单数据。

视图解析器

Spring MVC 的 视图解析器 把每个逻辑名称解析成实际的资源,即包含帐户信息的 JSP 文件。我用的是 Spring 的 InternalResourceViewResolver,如 清单 6 所示。

因为我在 JSP 页面中使用了 JSTL 标记,所以用户的登录名称解析成资源 /jsp/login.jsp,而 viewClass 成为 JstlView。

验证和帐户服务

就像前面提到的,LoginBankController 内部连接了 Spring 的 AccountServices 和 AuthenticationService。AuthenticationService 类处理银行应用程序的验证。AccountServices 类处理典型的银行服务,例如查找交易和电汇。清单 7 显示了银行应用程序的验证和帐户服务的配置。

清单 7. 配置验证和帐户服务

<beans>
   <bean id="accountServices" 
      class="springexample.services.AccountServices">
   </bean>
   <bean id="authenticationService" 
      class="springexample.services.AuthenticationService">
   </bean>
</beans>

以上服务在 sampleBanking-services.xml 中注册,然后装入 web.xml 文件中,就像 前面讨论的那样。控制器和服务配置好后,这个简单的应用程序就完成了。现在我们来看看部署和测试它时会发生什么!

部署应用程序

我把示例应用程序部署在 Tomcat servlet 容器中。Tomcat 是 Java Servlet 和 Java ServerPagest 技术的官方参考实现中使用的 servlet 容器。如果以前没这么做过,请下载 jakarta-tomcat-5.0.28.exe 并运行它把 Tomcat 安装到自己喜欢的任何位置,例如 c:\tomcat5.0。

接下来,下载示例代码 并释放到驱动器(例如 c:\ )上。创建了 Spring 项目的文件夹之后,打开它并把 spring-banking 子文件夹拷贝到 c:\tomvat5.0\webapps。spring-banking 文件夹是一个 Web 档案,里面包含 Spring MVC 示例应用程序。lib 文件夹包含应用程序需要的 Spring 框架、与Spring 相关的 MVC 库以及 JSTL 标记库和 jar 文件。

要启动 Tomcat 服务器,请使用以下命令:

cd bin C:\Tomcat 5.0\bin> catalina.bat start

Tomcat 应当启动并部署 Spring MVC 示例应用程序。

测试应用程序

要测试应用程序,请打开 Web 浏览器,指向 http://localhost:tomcatport/springbanking 并用 Tomcat 服务器实际运行的端口替换 tomcatport。应当看到图 1 所示的登录屏幕。输入用户 ID “admin”和口令“password”,并按下登录按钮。其他用户 ID 或口令会造成来自验证服务的错误。

图 1. Spring MVC 示例登录屏幕

登录屏幕

登录成功之后,会看到图 2 所示的帐户细节页面。

图 2. Spring MVC 示例帐户细节页面

帐户细节页面

结束语

我演示了如何配置和开发 Spring MVC 应用程序、如何配置 Spring MVC 控制器和向其中插入依赖项、如何用 JavaServer Pages 技术开发应用程序视图,以及如何把自己的页面与 Spring MVC 的视图层集成。总结这篇文章时,我演示了如何在 Tomcat servlet 容器中部署应用程序以及如何在浏览器中测试它。

 

下载示例代码

75
5
分享到:
评论
2 楼 一剑飘红007 2013-03-08  
正在学习使用SpringMVC,收藏一下。谢谢了
1 楼 artdialog 2013-02-23  
学习了,希望jjc哥多写点儿实用的,《代码之谜》太深奥了。

相关推荐

    搭建Spring+Spring MVC+Hibernate开发框架

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而Spring、Spring MVC和Hibernate是Java领域中广泛使用的三大框架,它们各自负责不同的职责,共同构建了一个强大的开发环境。本篇文章将深入探讨如何利用这三大...

    spring mvc step by step,例子

    这篇博文通过一步步的教程,将引导我们深入了解如何使用Spring MVC构建一个简单的Web应用。 首先,我们需要了解Spring MVC的基本组件和它们的作用: 1. **DispatcherServlet**:这是Spring MVC的前端控制器,负责...

    Spring-MVC-step-by-step.zip_Java MVC spring_Java spring mvc_sp

    本教程中的"Spring-MVC-step-by-step.pdf"文件将详细介绍上述概念,并通过实例代码演示如何配置和使用Spring MVC,帮助你一步步实践每个知识点。 总之,Spring MVC是Java Web开发的强大工具,理解并掌握其工作原理...

    开涛spring mvc教程

    总的来说,开涛的Spring MVC教程将带领初学者一步步探索这个框架,从基本概念到高级特性,包括但不限于注解驱动、数据绑定、视图解析、异常处理以及测试策略。通过学习,开发者能够熟练地运用Spring MVC构建高效、可...

    spring mvc入门书籍

    Spring MVC 是一款强大的Java web应用程序框架,用于构建高效、模块化的Web应用。它基于Spring框架,专注于处理HTTP请求和响应,...《Spring MVC入门》这本书将帮助你深入了解这一框架,并引导你一步步掌握其使用技巧。

    spring MVC step-by-step

    这个名为"spring MVC step-by-step"的压缩包文件很可能包含了一步步教你如何使用Spring MVC进行开发的教程或者源代码示例。在这个过程中,Ant被用作构建工具,而Tomcat则作为应用服务器,用于部署和运行Spring MVC...

    spring_mvc(一)环境搭建

    在本教程中,我们将深入探讨如何搭建Spring MVC的开发环境,这是Java Web应用程序的一个核心框架。Spring MVC提供了模型-视图-控制器(MVC)架构,使得开发人员能够轻松地构建可扩展且易于维护的Web应用。让我们一...

    Spring MVC 详细入门教程(含jar包)

    本教程将带你一步步了解并掌握Spring MVC的基础知识。 一、Spring MVC 概述 Spring MVC 提供了丰富的控制器、数据绑定、视图解析、本地化、主题等功能,使得开发者可以更加专注于业务逻辑,而非底层实现。通过...

    Spring MVC MyBatis

    所有代码完全基于Eclipse IDE来完成,一步步带领读者深入两个框架的核心。阅读本书之前,建议先阅读疯狂软件教育的《疯狂Java讲义》一书。本书适合有较好的Java编程基础,JSP、Servlet、JDB C基础,Spring框架基础...

    Spring MVC

    **Spring MVC 框架详解** Spring MVC 是 Spring 框架的一个重要模块,它是一个基于 Model-View-Controller(MVC)设计模式的轻量级...在实践中,你可以创建一个名为 `mySpringMVC` 的项目,一步步体验这些功能的实现。

    Spring-MVC-step-by-step2.rar

    《Spring MVC 深入浅出教程》 Spring MVC 是 Spring 框架的一个核心模块,主要用于构建...这个教程“Spring-MVC-step-by-step2.pdf”将引导你一步步掌握 Spring MVC 的核心概念和实战技巧,为你的 IT 事业添砖加瓦。

    跟我一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate

    根据提供的文件信息,本文将详细介绍如何一步步搭建PureMVC+Flex+BlazeDS+Spring+Hibernate的技术栈。这个过程涉及到了多个技术领域的整合,包括前端的Flex开发、后端的Java开发以及数据库交互等多个方面。 ### 一...

    Spring+3.x企业应用开发实战光盘源码(全)

     第2章:通过一个简单的例子展现开发Spring Web应用的整体过程,通过这个实例,读者可以快速跨入Spring Web应用的世界。  第3章:讲解Spring IoC容器的知识,通过具体的实例详细地讲解IoC概念。同时,对Spring框架...

    Eclipse中spring mvc配置实例

    让我们一步步了解这个过程。 首先,我们需要设置Eclipse环境。确保你已经安装了Eclipse IDE for Java EE Developers版本,因为这个版本包含了Web项目开发所需的所有工具。接下来,创建一个新的Dynamic Web Project...

    spring-mvc-step-by-step

    《Spring MVC Step by ...这个PDF教程会一步步引导你探索Spring MVC的各个方面,无论你是初学者还是有一定经验的开发者,都能从中获益。通过实践和学习,你将能够熟练地运用Spring MVC构建高效、稳定的Web应用程序。

    跟我一步步搭建 PureMVC+Flex+BlazeDS+Spring+Hibernate

    本文将带你逐步构建一个基于PureMVC、Flex、BlazeDS、Spring和Hibernate的完整应用程序。这是一个典型的 Rich Internet Application (RIA) 解决方案,旨在实现前后端的数据交互和业务逻辑处理。 首先,你需要准备和...

    简单-利用Spring-MVC框架开发项目实例

    在这个简单的项目实例中,我们将一步步地实践这些概念,从而加深对Spring-MVC的理解。在提供的"springmvctest"文件中,可能包含了完成上述步骤的具体代码和配置文件,通过研究这些内容,你将能够更好地学习和应用...

    Netbeans下spring web MVC例子.docx

    总结一下,NetBeans中的Spring Web MVC实例展示了如何利用IDE的便利性来构建MVC应用程序。通过配置`web.xml`和`dispatcher-servlet.xml`,以及编写控制器类和视图,我们可以轻松地处理HTTP请求,实现用户交互。对于...

    精通Spring4.x企业应用开发实战

    本书通过实例演示和详细解释,将带领读者一步步掌握Spring4.x的各项功能,无论你是初学者还是有经验的开发者,都能从中受益。通过阅读,你可以提升自己的企业级应用开发能力,更好地利用Spring框架解决实际问题。

    跟我一步步搭建+PureMVC+Flex+BlazeDS+Spring+Hibernate

    根据提供的标题、描述以及部分内容,本文将详细解析如何一步步搭建基于PureMVC、Flex、BlazeDS、Spring和Hibernate的技术栈。此技术栈通常用于构建复杂的富互联网应用(RIA)。 ### 一、安装软件与配置 #### 1. 安装...

Global site tag (gtag.js) - Google Analytics