使用Spring MVC3构建Web应用详细教程
【IT168 应用】本文将指导大家如何使用Spring MVC3去构建一个Web应用。在Spring MVC中,所有的用户请求都会被派发到控制器模块,控制器然后再根据业务逻辑去调用数据访问层获得数据,最后通过JSP视图返回。
在动手之前,我们先准备好我们的环境,需要的是JDK 1.5以上以及Eclipse IDE,当然还要下载最新版本的Spring 3,本文还要下载最新版本的ant,以便我们学习如何通过ant去构建应用。
Spring MVC3构建Web应用第一步
首先在Eclipse中利用新建菜单,建立一个Dynamic Web Project(动态Web工程),命名为SampleSpringMVC,接下来,我们要建立一个ant.xml的文件,这个文件会方便我们把做好的程序打包成war文件,这个可以有如下几步去实现:
1、点文件—新建—文件,如下图:

2、输入ant.xml作为文件名,并点完成。如下图:

3、打开ant.xml文件,编辑内容如下:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1
<?xml version="1.0"?>
??
<!-- Copyright : adobocode.com , 2010 -->
??
<project name="SampleSpringMVC" basedir="." default="build">
????<property file="ant.properties"/>
????<property name="src.dir" value="src"/>
????<property name="war.dir" value="war"/>
????<property name="build.dir" value="${war.dir}/WEB-INF/classes"/>
????<property name="deploy.path" value="${tomcat.home}/webapps"/>
????<property name="name" value="SampleSpringMVC"/>
??
????<path id="master-classpath">
????????<fileset dir="${war.dir}/WEB-INF/lib">
????????????????????<include name="*.jar"/>
????????????????</fileset>
??
????????<fileset dir="${tomcat.home}/lib">
????????????<include name="servlet*.jar"/>
????????</fileset>
????????<pathelement path="${build.dir}"/>
????</path>
??
????<target name="build" description="Compile main source tree java files">
????????<echo>Building...</echo>
????????<mkdir dir="${build.dir}"/>
????????<javac destdir="${build.dir}" failonerror="true">
????????????<src path="${src.dir}"/>
????????????<classpath refid="master-classpath"/>
????????</javac>
????</target>
??
????<target name="war-archiving">
????????<echo>Archiving...</echo>
????????<war destfile="${name}.war" webxml="${war.dir}/WEB-INF/web.xml">
????????????<fileset dir="${war.dir}">
????????????????<include name="**/*.*"/>
????????????</fileset>
????????</war>
????</target>
??
????<target name="deploy" depends="build">
????????<echo>Deploying...</echo>
????????<copy todir="${deploy.path}">
????????????<fileset dir=".">
????????????????<include name="*.war"/>
????????????</fileset>
????????</copy>
????</target>
??
</project>?
Spring MVC3构建Web应用第二步
建立一个ant.properties文件,该文件会存放一些值的属性,并且这些值也会是ant.xml中用到的。请按如下步骤实现:
1)点文件—新建-文件
2) 将文件命名为ant.properties,并点完成,如下图:

3)打开ant.properties,修改tomcat.home的目录为你安装tomcat的实际目录。
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1
tomcat.home=C:/Tools/apache-tomcat-6.0.2
tomcat.lib=$...{tomcat.home}/lib?
下载下面列表的.jar文件,并放到SampleSpringMVC/war/WEB-INF/lib下。
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1
commons-logging.jar
jstl-api-1.2.jar
jstl.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
org.springframework.web.servlet-3.0.5.RELEASE.jar
standard.jar?
按如下修改web.xml:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1
?? <!-- Copyright : adobocode.com , 2010 -->
??
<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>SampleSpringMVC</display-name>
??
????<servlet>
????????<servlet-name>SampleSpringMVC</servlet-name>
????????<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
????????<load-on-startup>1</load-on-startup>
????</servlet>
??
????<servlet-mapping>
????????????????<servlet-name>SampleSpringMVC</servlet-name>
????????????????<url-pattern>*.htm</url-pattern>
????????</servlet-mapping>????
??
????<welcome-file-list>
????????<welcome-file>index.jsp</welcome-file>
????</welcome-file-list>
??
</web-app>?
创建index.jsp,这个只需要在war/WEB-INF下建立即可,并且将内容设置为如下:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1
<%@ page language="java" session="false" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
????<head>
????????<title>Adobocode : Sample Spring MVC</title>
????</head>
????<body>
????????<h2>Adobocode : Hello World</h2>
????????<br/>
????????<a href="<c:url value="personDisplay.htm"/>">Person List</a>
????</body>
</html>?
Spring MVC3构建Web应用第三步
在SampleSpringMVC/war/WEB-INF中建立文件SampleSpringMVC-servlet.xml,并将内容修改如下:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->1
<?xml version="1.0" encoding="UTF-8"?>
??
<!-- Copyright : adobocode.com , 2010 -->
??
<beans xmlns="http://www.springframework.org/schema/beans"
????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
????xmlns:p="http://www.springframework.org/schema/p"
????xmlns:context="http://www.springframework.org/schema/context"
????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">
??
????<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
??
????<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
??
????<context:component-scan base-package="paul.sydney.controller"/>
??
????<context:component-scan base-package="paul.sydney.service"/>
??
????<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
????????<property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
????????<property name="prefix"><value>/WEB-INF/jsp/</value></property>