标签:style blog class code java tar
在使用spring mvc 构建web应用程序之前,需要了解spring mvc 的请求过程是怎样的,然后记录下如何搭建一个超简单的spring
mvc例子。
1) spring mvc的请求经历
请求由DispatcherServlet分配给控制器(根据处理器映射),在控制器完成处理后,请求会被发送到一个视图(根据viewController解析逻辑视图)
来呈现输出结果。
整理成下图所示:
2)搭建一个简单的spring mvc例子
①创建一个maven工程,其中pom中要有spring相关的坐标:
②web.xml中需要配置DispatcherServlet,它是spring mvc前端控制器,请求时是通过它处理的:
DispatcherServlet是根据一个xml文件来加载其spring上下文的,文件名基于<servlet-name>,因为声明的servlet-name为dispatcher,因此需要有一个dispatcher-servlet.xml。
考虑这种情况:若存在多个xml文件,比如xxx-dao.xml,xx-service.xml这种分层的文件,如何将这些文件一同加载到spring的上下文中呢?这就要通过ContextLoaderListener,它是一个servlet监听器,除了DispatcherServlet创建的上下文外,它能将将其他文件加载到一个spring上下文中。需要在web.xml配置:
需要告诉ContextLoaderListener需要加载哪些配置文件,若没有指定的话,上下文加载器会查找/WEB-INF/applicationContext.xml配置文件;若正好声明的spring配置文件名字不是applicationContext.xml,运行的时候是会抛出一个ClassNotFound这个异常的。
所以,配置的web.xml为:
③ 配置文件spring-config.xml和dispatcher-servlet.xml
spring-config.xml:
dispatcher-servlet.xml:
<context:component-scan base-package="com.test.controller"/>
<!--
velocity 配置 -->
<bean id="velocityConfig"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/vm/" />
<property name="velocityProperties">
<props>
<prop key="input.encoding">UTF-8</prop>
<prop key="output.encoding">UTF-8</prop>
<prop key="velocimacro.library">macro/macros.vm</prop>
</props>
</property>
</bean>
<!-- 配置视图解析器,用于解析逻辑视图名-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="cache" value="false" />
<property name="prefix" value="" />
<property name="suffix" value=".vm" />
<property name="layoutUrl" value="layout/layout.vm" />
<property name="contentType" value="text/html;charset=UTF-8" />
<property name="exposeSpringMacroHelpers" value="true"/>
<property name="dateToolAttribute" value="dateTool" />
</bean>
④ Controller类:
showHomePage对应的请求为:localhost/项目名/home.html
整个项目工程图:
spring mvc构建WEB应用程序入门例子,布布扣,bubuko.com
标签:style blog class code java tar
原文地址:http://www.cnblogs.com/wmmang-blog/p/3703465.html