作者各必备工具的版本如下:

  1. Tomcat:apache-tomcat-7.0.63 (下载链接)
  2. Java EE - Eclipse:Luna Service Release 1 v4.4.1 (下载链接)
  3. Spring:4.2.0.RELEASE (无须下载)
  4. JDK:1.7.0_67 (下载链接)

步骤 1

使用 Java EE - Eclipse 新建一 Dynamic Web Project。

步骤 2

输入项目名 bdp。

Target Runtime 选 Apache Tomcat 7.0(不要选 Apache Tomcat 6.0,7 以后才支持 Servlet 3.0)。
点击 Next > 按钮。

步骤 3

编辑默认的 Source folders。
默认的 Source folders 配置如下:

删除默认的,增加以下四个并修改默认的输出目录为 WebContent\WEB-INF\classes:

  • src/main/java
  • src/main/resources
  • src/test/java
  • src/test/resources


点击 Next > 按钮。

步骤 4

Configure web module settings 对话框勾选 Generate web.xml deployment descriptor 选项:

点击 Finish 按钮。

步骤 5

将新建好的项目转换为 Maven 项目以管理项目依赖。
Package Explorer 视图下右击 bdp 项目名 -> Configure -> Convert to Maven project。

步骤 6

添加以下 jar 依赖到项目:

我的 pom.xml 文件如下:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>bdp</groupId>
  5. <artifactId>bdp</artifactId>
  6. <version>1.0.0</version>
  7. <packaging>war</packaging>
  8. <name>bdp</name>
  9. <description>Basic Data Platform</description>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. <spring.version>4.2.0.RELEASE</spring.version>
  13. </properties>
  14. <dependencies>
  15. <dependency>
  16. <groupId>org.springframework</groupId>
  17. <artifactId>spring-context</artifactId>
  18. <version>${spring.version}</version>
  19. </dependency>
  20. <dependency>
  21. <groupId>org.springframework</groupId>
  22. <artifactId>spring-aop</artifactId>
  23. <version>${spring.version}</version>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-webmvc</artifactId>
  28. <version>${spring.version}</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-web</artifactId>
  33. <version>${spring.version}</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>javax.servlet</groupId>
  37. <artifactId>jstl</artifactId>
  38. <version>1.2</version>
  39. </dependency>
  40. <dependency>
  41. <groupId>commons-logging</groupId>
  42. <artifactId>commons-logging</artifactId>
  43. <version>1.1.3</version>
  44. </dependency>
  45. </dependencies>
  46. <build>
  47. <plugins>
  48. <plugin>
  49. <artifactId>maven-compiler-plugin</artifactId>
  50. <version>3.1</version>
  51. <configuration>
  52. <source>1.7</source>
  53. <target>1.7</target>
  54. </configuration>
  55. </plugin>
  56. <plugin>
  57. <artifactId>maven-war-plugin</artifactId>
  58. <version>2.4</version>
  59. <configuration>
  60. <warSourceDirectory>WebContent</warSourceDirectory>
  61. <failOnMissingWebXml>false</failOnMissingWebXml>
  62. </configuration>
  63. </plugin>
  64. </plugins>
  65. </build>
  66. </project>

步骤 7

在 src/main/resources 目录下创建 Spring MVC Bean 配置文件 bdpmvc-servlet.xml。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/context
  8. http://www.springframework.org/schema/context/spring-context-4.0.xsd">
  9. <context:component-scan base-package="com.defonds.bdp.city.controller" />
  10. <bean id="viewResolver"
  11. class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  12. <property name="viewClass"
  13. value="org.springframework.web.servlet.view.JstlView" />
  14. <property name="prefix" value="/WEB-INF/jsp/" />
  15. <property name="suffix" value=".jsp" />
  16. </bean>
  17. </beans>

以上 bdpmvc-servlet.xml 配置文件里,我们定义了一个 <context:component-scan> 标签。这一配置将使 Spring 去加载 com.defonds.bdp.city.controller 及其子包下的所有 @Component、@Controller、@Service、@Repository 等注解了的类。
此外,我们还定义了一个 viewResolver bean,它将给 ModelAndView 的视图加上 /WEB-INF/jsp/ 前缀以及 .jsp 后缀。比如我们的 CityController 类里返回了一个视图名为 welcome 的 ModelAndView 对象,它将被解析至路径 /WEB-INF/jsp/welcome.jsp。

步骤 8

将 Spring MVC 映射到 /WEB-INF/web.xml 文件。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  3. <display-name>bdp</display-name>
  4. <welcome-file-list>
  5. <welcome-file>index.jsp</welcome-file>
  6. </welcome-file-list>
  7. <servlet>
  8. <servlet-name>bdpmvc</servlet-name>
  9. <servlet-class>
  10. org.springframework.web.servlet.DispatcherServlet
  11. </servlet-class>
  12. <init-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>/WEB-INF/classes/bdpmvc-servlet.xml</param-value>
  15. </init-param>
  16. <load-on-startup>1</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>bdpmvc</servlet-name>
  20. <url-pattern>*.json</url-pattern>
  21. <url-pattern>*.html</url-pattern>
  22. </servlet-mapping>
  23. </web-app>

DispatcherServlet 初始化的时候将会读取 /WEB-INF/classes/ 下的 bdpmvc-servlet.xml 文件。

步骤 9

创建 Controller 类。

  • 包:com.defonds.bdp.city.controller
  • 类名:CityController.java
  1. /**
  2. * File Name:CityController.java
  3. *
  4. * Copyright Defonds Corporation 2015
  5. * All Rights Reserved
  6. *
  7. */
  8. package com.defonds.bdp.city.controller;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.servlet.ModelAndView;
  12. /**
  13. *
  14. * Project Name:bdp
  15. * Type Name:CityController
  16. * Type Description:
  17. * Author:Defonds
  18. * Create Date:2015-8-27
  19. * @version
  20. *
  21. */
  22. @Controller
  23. @RequestMapping("/city")
  24. public class CityController {
  25. @RequestMapping("/welcome")
  26. public ModelAndView helloWorld() {
  27. String message = "<br><div style='text-align:center;'>"
  28. + "<h3>********** Hello World, Spring MVC Tutorial</h3>This message is coming from CityController.java **********</div><br><br>";
  29. return new ModelAndView("welcome", "message", message);
  30. }
  31. }

步骤 10

创建 /WebContent/index.jsp 和 /WebContent/WEB-INF/jsp/welcome.jsp 视图文件。

/WebContent/index.jsp

  1. <html>
  2. <head>
  3. <title>Spring MVC Tutorial Series by defonds.com</title>
  4. <style type="text/css">
  5. body {
  6. background-image: url('http://img.blog.csdn.net/20150827184458936');
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <br>
  12. <div style="text-align:center">
  13. <h2>
  14. Hey You..!! This is your 1st Spring MCV Tutorial..<br> <br>
  15. </h2>
  16. <h3>
  17. <a href="city/welcome.html">Click here to See Welcome Message... </a>(to
  18. check Spring MVC Controller... @RequestMapping("/city/welcome"))
  19. </h3>
  20. </div>
  21. </body>
  22. </html>

/WebContent/WEB-INF/jsp/welcome.jsp

  1. <html>
  2. <head>
  3. <title>Spring MVC Tutorial by Defonds - Hello World Spring MVC
  4. Example</title>
  5. <style type="text/css">
  6. body {
  7. background-image: url('http://img.blog.csdn.net/20150827184458936');
  8. }
  9. </style>
  10. </head>
  11. <body>${message}
  12. <br>
  13. <br>
  14. </body>
  15. </html>

万事俱备,项目各要素如下图:

步骤 11

右击项目名 -> Run As -> Maven Build...
Goals 添加 clean install,点击 Apply 和 Run 按钮。

步骤 12

将项目部署到 Tomcat 并启动:

步骤 13

访问 http://localhost:8080/bdp

点击 Click here to See Welcome Message... 

零基础搭建 spring mvc 4 项目成功。

后记

本文侧重讲 spring mvc 的相关配置,也就是 controller 层的相关功能演示,关于 spring ioc、orm 和 mybatis 的事务集成,请参考另一篇博客《零基础整合 spring 4(包括mvc、context、orm) + mybatis 3 示例》,该文就是在本文基础上进行进一步添加了 service 和 dao 层的扩展。

参考资料

零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)的更多相关文章

  1. MAC OS X El CAPITAN 搭建SPRING MVC (1)- 目录、包名、创建web.xml

    一. 下载STS(Spring Tool Suite) 官方地址:http://spring.io/tools/sts 下载spring tool suite for mac 最新版本.这个IDE是很 ...

  2. 从零开始学 Java - 搭建 Spring MVC 框架

    没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

  3. 一、Spring MVC起步——IntelliJ IDEA 搭建Spring MVC环境(手把手搭建)

    本机环境: JDK 1.7 IntelliJ IDEA 2017.2 1.新建项目 Create New Project ​ 选择Spring MVC ​ 填写项目名和项目存放位置 ​ 然后点击Fin ...

  4. Web基础之Spring MVC

    Spring MVC Spring MVC 说是框架,对Tomcat来说其实就是一个Servlet,关于如何从上古时期的Servlet演化到如今的SpringMVC的,可以看看这篇博文:Spring ...

  5. Spring mvc源码分析系列--Servlet的前世今生

    Spring mvc源码分析系列--Servlet的前世今生 概述 上一篇文章Spring mvc源码分析系列--前言挖了坑,但是由于最近需求繁忙,一直没有时间填坑.今天暂且来填一个小坑,这篇文章我们 ...

  6. (4.1)Spring MVC执行原理和基于Java的配置过程

    一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...

  7. Spring MVC执行原理和基于Java的配置过程

    一.Spring MVC执行原理和基于Java配置的配置过程 (一)Spring MVC执行过程,大致为7步. 所有的请求都会经过Spring的一个单例的DispacherServlet. Dispa ...

  8. Spring 注解驱动(二)Servlet 3.0 注解驱动在 Spring MVC 中的应用

    Spring 注解驱动(二)Servlet 3.0 注解驱动在 Spring MVC 中的应用 Spring 系列目录(https://www.cnblogs.com/binarylei/p/1019 ...

  9. [转] Spring MVC 4.1.3 + MyBatis 零基础搭建Web开发框架

    首先感谢一下润和软件,指引我走上了Spring MVC Web开发的道路. 下面进入正题 搭建开发环境: Netbeans8.0.2 + MySql5.6 + JDK1.7 + tomcat8.0.1 ...

随机推荐

  1. Mr_matcher的细节2

    1.参数服务器 ROS参数服务器能保存数据类型包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, a ...

  2. Python 函数习题

    #encoding=utf-8 from urllib.request import urlopen import random import os ''' 1. 定义一个fuc(url, folde ...

  3. [GO]变量内存和变量地址

    package main import "fmt" func main() { //每个变量都有两层含义,变量的内存和变量的地址 fmt.Printf("a = %d\n ...

  4. python核心编程第2章课后题答案(第二版36页)

    2-5 Loops and Numbers a) i = 0    while i <11:     print i    i += 1 b) for i in range(0,11): pri ...

  5. 将DataTable进行分页并生成新的DataTable

    /// <summary> /// 将DataTable进行分页并生成新的DataTable /// </summary> /// <param name="d ...

  6. 【学习】CodeUi

    关于这个,博客园里有很多初级的教程,我是看这篇: http://www.cnblogs.com/luminji/archive/2010/11/18/1880452.html 初学的可以跟着这个做一边 ...

  7. access denied for user 'root'@'localhost'

    编辑mysql配置文件my.ini(在mysql的安装目录下,我的在D:\Program Files\MySQL\MySQL Server 5.0\my.ini),在[mysqld]这个条目下加入 s ...

  8. 新增扩展程序功能打包提交新版 WARNING ITMS-90473 警告问题

    1.问题描述 自从在主应用中加入SiriShortCut功能之后,打包程序上传至 iTunes Connect 就会出现警告,看其原因描述是CFBundleVersion主应用与子应用的不一致导致的 ...

  9. jsonp的原理及其使用

    原理: 1.创建script标签 2.src远程地址 3.返回的数据必须为js格式 1.因为浏览器处于安全原因不允许跨域请求,但是允许跨域倒入js文件,所以需要创建script标签 2.src远程地址 ...

  10. Balance(Stack)

    栈的运用 mooc视频连接 #include <iostream> using namespace std; ]; ; void Push(char c) { ) { Top = ; S[ ...