`
xiaophai
  • 浏览: 9355 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

进入 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 的 DispatcherServlet。请在 web.xml 文件中注册所有配置。清单 1 显示了如何配置 sampleBankingServlet。




<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 文件装入应用程序上下文。

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



<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。




<servlet>
  <servlet-name>context>servlet-name>
  <servlet-class>
     org.springframework.web.context.ContextLoaderServlet
  </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

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




<context-param>
<param-value>contextConfigLocation</param-value>
<param-value>/WEB-INF/sampleBanking-services.xml</param-value>
</context-param>

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

示例银行应用程序允许用户根据惟一的 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 属性都代表被定义的视图的逻辑名称,逻辑名称映射到实际的视图页面。



<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 显示了银行应用程序的验证和帐户服务的配置。


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

以上服务在 sampleBanking-services.xml 中注册,然后装入 web.xml 文件中,就像 前面讨论的那样。控制器和服务配置好后,这个简单的应用程序就完成了。
0
1
分享到:
评论

相关推荐

    spring MVC测试实例

    首先,DispatcherServlet是Spring MVC的前端控制器,它是所有请求进入Spring MVC应用的入口点。DispatcherServlet负责拦截来自客户端的HTTP请求,然后根据请求信息(如URL、请求方法等)进行调度,将请求分发到合适...

    spring mvc

    ### Spring MVC 教程知识点详解 #### 一、Spring MVC 概述 Spring MVC 是 Spring 框架的一部分,主要用于构建基于 Java 的 Web 应用程序。它是一种模型-视图-控制器(Model-View-Controller,MVC)设计模式的实现...

    Spring MVC 4 Quickstart Maven Archetype

    Spring MVC 4 Quickstart Maven Archetype 是一个快速启动模板,专为构建基于Spring MVC 4的无XML(no-xml)Web应用程序而设计。这个模板简化了开发过程,通过Maven构建工具帮助开发者快速搭建一个功能完备的Web应用...

    spring MVC 配置文档

    所有进入Spring Web 的 Request 都经过 DispatcherServlet 需要在 web.xml 中注册 DispatcherServlet &lt;servlet&gt; &lt;servlet-name&gt;dispatherContext&lt;/servlet-name&gt; &lt;servlet-class&gt; org.springframework.web....

    IDEA 搭建Spring MVC环境示例1

    在本文中,我们将详细探讨如何使用IntelliJ IDEA(简称IDEA)搭建Spring MVC环境,以便开始进行Web应用程序开发。Spring MVC是Spring框架的一部分,它为构建基于模型-视图-控制器(MVC)架构的Web应用提供了强大的...

    【BAT必备】spring面试题,spring MVC面试题,spring boot面试题,spring cloud面试题

    对于准备进入BAT等大厂的开发者来说,掌握Spring框架的核心知识是非常必要的。不仅需要了解基本的概念,还需要深入学习其实现原理,这样才能在实际项目中更加灵活地运用这些技术。希望本文能够帮助大家更好地理解和...

    学生籍贯管理系统,基于Java SSM框架开发(spring、 spring mvc、 mybatis)

    本文将深入探讨一个基于Java SSM框架(Spring、Spring MVC、MyBatis)开发的学生籍贯管理系统,理解其设计原理、核心功能及实现技术。 首先,SSM框架是Java Web开发中的主流选择,它由Spring、Spring MVC和MyBatis...

    spring mvc的配置文件详解

    Spring MVC 的核心组件之一就是 DispatcherServlet,它作为整个框架的入口,负责处理所有进入 Spring Web 应用程序的请求。为了使 DispatcherServlet 正常工作,我们需要在 web.xml 文件中对其进行注册。 ##### ...

    Spring-MVC处理XSS、SQL注入攻击的方法总结

    ### Spring MVC 处理 XSS 和 SQL 注入攻击的方法总结 #### 一、引言 在 Web 开发领域,特别是基于 Java 的应用开发中,Spring MVC 框架因其灵活高效的特点而被广泛采用。然而,随着互联网技术的发展,网络安全问题...

    图书管理系统(Spring + Spring MVC + MyBatis).zip

    基于Spring Spring MVC MyBatis的图书馆管理系统,使用Maven进行包管理。主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。 环境配置 开发环境:Windows 10,IntelliJ ...

    Spring MVC基本概念

    对于初学者而言,了解Spring MVC的基本概念是进入Java Web开发领域的第一步。 #### Spring MVC框架简介 Spring MVC框架是Spring框架的一个模块,它提供了处理HTTP请求的标准方法。通过将业务逻辑与用户界面分离,...

    spring mvc中文教程

    ### Spring MVC中文教程知识点解析 #### 一、Spring MVC简介 Spring MVC 是 Spring 框架的一个重要组成部分,主要用于构建 Web 应用程序。它遵循 Model-View-Controller(MVC)架构模式,有助于分离业务逻辑和用户...

    spring mvc 自学教程

    1. **DispatcherServlet**:它是整个 Spring MVC 框架的核心,作为前端控制器,它负责拦截所有进入的 HTTP 请求,根据请求信息调用对应的处理器方法。 2. **HandlerMapping**:处理器映射器,用于将请求映射到具体的...

    Spring Mvc(1)Spring MVC 校验

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要负责处理 HTTP 请求和响应,实现模型-视图-控制器(MVC)的设计模式。在实际开发中,数据校验是必不可少的一个环节,用于确保...

    Spring mvc with Web Flow

    ### Spring MVC 与 Web Flow 技术详解 #### 引言 随着软件开发技术的不断发展,Web 应用程序的需求日益复杂。为了更好地管理和控制这些应用程序的流程,Spring 框架提供了强大的支持。其中,Spring MVC 和 Spring ...

    Spring-mvc+mybatis+shiro学习demo

    具体实现时,通常会在Spring MVC的配置文件中添加Shiro的Filter,如DelegatingFilterProxy,以便在请求进入控制器之前进行安全检查。同时,会创建一个Shiro配置类,定义Realm(域),将用户、角色和权限关联起来。...

    Spring MVC 到 Spring Boot 的简化之路.docx

    Spring MVC 到 Spring Boot 的简化之路,这是一段旨在提高开发效率和降低复杂性的旅程。...在这条简化之路上,Spring Boot成为了一种高效且现代化的开发工具,引领着开发者进入更加高效和便捷的开发时代。

    spring getting started

    Spring框架是Java企业级应用程序开发的事实上的标准,尤其在构建基于Web的应用程序时。...通过阅读优秀的入门文章和实践,初学者可以迅速地进入Spring MVC的开发世界,并掌握构建现代化Web应用程序的技能。

    兼容IE6的spring mvc框架

    Spring MVC是一个流行的Java web开发框架,它主要用于构建RESTful服务和MVC模式的应用。在这个场景中,"兼容IE6的spring mvc框架"意味着我们需要确保在使用Spring MVC 3.2版本开发的Web应用能够在IE6上正常运行。 *...

Global site tag (gtag.js) - Google Analytics