Spring MVC

MVC

Spring Web MVC框架提供了模型-视图-控制器(MVC)架构和现成的组件,可用于开发灵活且松散耦合的Web应用程序。MVC模式导致分离应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑),同时在这些元素之间提供松散的耦合。

  • 模型(M)封装了应用程序数据,通常它们将由POJO组成。
  • 视图(V)负责呈现模型数据,并在总体上产生HTML输出,客户端的浏览器可以解析。
  • 控制器(C)负责处理用户请求,并且建立一个合适的模型,并将其传递到用于渲染的图。

所需配置

您需要通过使用web.xml文件中的URL映射来映射希望DispatcherServlet处理的请求。以下是显示HelloWeb DispatcherServlet示例的声明和映射的示例

<web-app id = "WebApp_ID" version = "2.4"
   xmlns = "http://java.sun.com/xml/ns/j2ee" 
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee 
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    
   <display-name>Spring MVC Application</display-name>
   
   <servlet>
      <servlet-name>HelloWeb</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

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

</web-app>

在web.xml中的文件将被保存在你的Web应用程序的WebContent/WEB-INF目录下。初始化HelloWeb DispatcherServlet时,框架将尝试从位于应用程序的WebContent/WEB-INF 目录中的[servlet-name]-servlet.xml文件中加载应用程序上下文。在这种情况下,我们的文件将是HelloWebservlet.xml。接下来,<servlet-mapping>标记指示哪个DispatcherServlet将处理哪些URL。在这里,所有以.jsp结尾的HTTP请求都将由HelloWeb DispatcherServlet 处理。如果不想使用默认文件名[servlet-name]-servlet.xml和默认位置WebContent/ WEB-INF,则可以通过在web.xml文件中添加servlet侦听器ContextLoaderListener来自定义此文件名和位置。如下-

<web-app...>

   <!-------- DispatcherServlet definition goes here----->
   ....
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/HelloWeb-servlet.xml</param-value>
   </context-param>

   <listener>
      <listener-class>
         org.springframework.web.context.ContextLoaderListener
      </listener-class>
   </listener>
   
</web-app>

现在,让我们检查位于Web应用程序的WebContent/WEB-INF目录中的HelloWeb-servlet.xml文件的必需配置

<beans xmlns = "http://www.springframework.org/schema/beans"
   xmlns:context = "http://www.springframework.org/schema/context"
   xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation = "http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <context:component-scan base-package = "com.jc2182" />

   <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name = "prefix" value = "/WEB-INF/jsp/" />
      <property name = "suffix" value = ".jsp" />
   </bean>

</beans>

以下是关于HelloWeb-servlet.xml文件的要点

  • [servlet的名称]-servlet.xml后缀的文件将被用来创建定义的Bean类,覆盖全局作用域内名字相同的Bean的定义。
  • <context:component-scan>标签将使用以激活Spring MVC注解扫描功能,其允许使用像@Controller和@RequestMapping等注解
  • InternalResourceViewResolver 这个将定义解析视图名称规则。根据上述定义的规则,名为hello的逻辑视图被委托给位于/WEB-INF/jsp/hello.jsp的视图实现。
下一节将向您展示如何创建实际的组件,即Controller,Model和View。

资料

定义控制器

MVC 示例

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值