这是一个spring3.0 mvc的简单demo程序。本文旨在实现最简单易懂的mvc demo,理论知识请自行百度。
1、新建一个web工程;
2、将spring3.0相关的库添加到工程classpath路径;
3、修改web.xml 的配置
在web.xml中配置如下内容:
(1)、需要加载的配置文件;
(2)、配置监听器实现启动时对配置文件进行加载;
(3)、配置DispatcherServlet;
(4)、配置servlet-mapping,将相应的请求截获交给spring mvc去处理。
如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<!-- Spring 配置文件位置,默认位置时可省略 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml,
/WEB-INF/classes/spring-servlet.xml
</param-value>
</context-param>
<!-- 使用 Listener 加载 Spring 配置文件 -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/spring-servlet.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 将所有以mvc结尾的请求交给spring处理 -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.mvc</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4、spring配置文件
在src目录下新建一个spring的配置文件,如本文使用 spring-servlet.xml,配置文件中配置spring的view层、bean和mapping关系。主要有:
(1)、配置java Bean类;
(2)、配置视图层的jsp前后缀;
(3)、配置请求和controller的对应关系。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 配置视图层的jsp前缀和后缀 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<bean id="urlHandlerMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!--
<property name="interceptors">
<list>
<ref local="loginInterceptor" />
</list>
</property>
-->
<property name="mappings">
<props>
<prop key="cat.mvc">catController</prop>
<prop key="dog.mvc">dogController</prop>
</props>
</property>
</bean>
<bean id="catController"
class="com.landsem.demo.mvc.CatController">
</bean>
<bean id="dogController"
class="com.landsem.demo.mvc.DogController">
</bean>
</beans>
5、实现相应Controller
本文实现了两个Controller,分别时DogController和CatController。并配置收到cat.mvc请求时调用CatController,收到dog.mvc时调用DogController进行处理,两个处理类都很简单,只是输出输出一句调试语句,并进行一个简单的jsp页面跳转。
package com.landsem.demo.mvc;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class DogController extends AbstractController{
@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("DogController ModelAndView.");
// TODO Auto-generated method stub
return new ModelAndView("hello");
}
}
6、测试
打开浏览器,根据实际的工程地址进行修改后访问测试,注意查看log输出。
http://pc201410272116/SpringMvcDemo1/dog.mvc
http://pc201410272116/SpringMvcDemo1/cat.mvc
7、源码地址
http://download.youkuaiyun.com/detail/yxtouch/9107883