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