Skip to content

Instantly share code, notes, and snippets.

@hongyangqin
Last active December 6, 2017 08:12
Show Gist options
  • Save hongyangqin/44b7cff66beac989317e3c4948b3d146 to your computer and use it in GitHub Desktop.
Save hongyangqin/44b7cff66beac989317e3c4948b3d146 to your computer and use it in GitHub Desktop.

Eclipse + SpringMvc + Maven + Tomcat配置入门图文教程

Eclipse springmvc maven Tomcat


安装JDK

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
我的版本1.8.0_131

安装Tomcat Server

下载地址:http://tomcat.apache.org/download-80.cgi
这里我选择的是8.5.14版本,apache-tomcat-8.5.14.tar.gz,下载完之后解压到随意目录,如D:/Tomcat

安装Eclipse

下载地址:https://www.eclipse.org/downloads/eclipse-packages/
选择 Eclipse IDE for Java EE Developers,主要做web开发用。

下载完后在安装过程中也选择Jave EE Develops(如果选择第一个,你会发现创建project中没有Dynamic Web Project工程等选项,所以务必要选对版本), 如图:

此处输入图片的描述

新建maven web工程

1.新建Maven Project

File -> New -> Maven Project

此处输入图片的描述

选择默认的工作空间目录就好

此处输入图片的描述

选择webapp项目骨架

此处输入图片的描述

设置项目名称及包名

此处输入图片的描述

2.配置工程项目属性

新建工程完之后,出现错误提示:
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
根据提示是还没配置http服务器,先创建一个Tomcat服务器

此处输入图片的描述

点击错误提示选项卡中的Servers, 点击创建新服务链接

此处输入图片的描述

搜索Tomcat,选择Tomcat 8.5 Server,Next下一步

此处输入图片的描述

选择Tomcat解压目录,如上面提到的D:/Tomcat。下面是我本机Tomcat的目录,JRE选择自己安装的。一般先安装Java,后安装eclipse,这里会列出已安装的Java版本。如果没有可选择的JRE,则点击installed JREs...手动添加Java安装目录。

此处输入图片的描述

选择自己创建的项目mvc,finish完成Server创建

此处输入图片的描述

接下来配置Java build path,右键点击项目 -> Build Path -> Configuire Build Path...

此处输入图片的描述

在Java build path窗口,选择Libraries选项卡,添加刚才创建的Tomcat Server,点击Add Library -> Server Runtime -> 选择Apache Tomcat v8.5, finish完成。

此处输入图片的描述

JRE System Library默认不是我们自己安装的JDK,需要编辑修改,点击右边Edit,选择第三个Workspace default JRE,Finish完成退出

此处输入图片的描述

最后点击Apply -> OK,完成配置更改。

这时候再看项目目录,错误红叉消失,Java Resources目录自动增加了src/main/java,src/test/java包的默认资源目录。运行Run,熟悉的Hello World。Maven Project配置第一步成功!

此处输入图片的描述

3.配置spring框架依赖

3.1 配置pom.xml

maven通过pom.xml管理着各种包的依赖,相当于php的composer.json
配置spring的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/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>cn.mark</groupId>
  5. <artifactId>mvc</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>mvc Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <dependencies>
  11. <dependency>
  12. <groupId>junit</groupId>
  13. <artifactId>junit</artifactId>
  14. <version>3.8.1</version>
  15. <scope>test</scope>
  16. </dependency>
  17. <dependency>
  18. <groupId>org.springframework</groupId>
  19. <artifactId>spring-web</artifactId>
  20. <version>3.0.5.RELEASE</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>org.springframework</groupId>
  24. <artifactId>spring-webmvc</artifactId>
  25. <version>3.0.5.RELEASE</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.apache.geronimo.specs</groupId>
  29. <artifactId>geronimo-servlet_2.5_spec</artifactId>
  30. <version>1.2</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>javax.servlet</groupId>
  34. <artifactId>jstl</artifactId>
  35. <version>1.2</version>
  36. </dependency>
  37. <dependency>
  38. <groupId>taglibs</groupId>
  39. <artifactId>standard</artifactId>
  40. <version>1.1.2</version>
  41. </dependency>
  42. </dependencies>
  43. <build>
  44. <finalName>mvc</finalName>
  45. </build>
  46. </project>

3.2 配置web.xml

这里主要指定Tomcat的URL拦截规则,指定使用springmvc的DispatcherServlet。同时装入spring配置文件/WEB-INF/mvc-servlet.xml

DispatcherServlet是前置控制器,拦截匹配的请求,Servlet拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理。

位置:/src/main/webapp/WEB-INF/web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  5. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  6. version="2.5" >
  7. <!-- 区分项目名称,防止默认重名 -->
  8. <context-param>
  9. <param-name>webAppRootKey</param-name>
  10. <param-value>mvc</param-value>
  11. </context-param>
  12. <!-- Spring的log4j监听器 -->
  13. <listener>
  14. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  15. </listener>
  16. <!-- 默认配置文件/WEB-INF/applicationContext.xml -->
  17. <listener>
  18. <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  19. </listener>
  20. <!-- 字符集 过滤器 -->
  21. <filter>
  22. <filter-name>CharacterEncodingFilter</filter-name>
  23. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  24. <init-param>
  25. <param-name>encoding</param-name>
  26. <param-value>UTF-8</param-value>
  27. </init-param>
  28. <init-param>
  29. <param-name>forceEncoding</param-name>
  30. <param-value>true</param-value>
  31. </init-param>
  32. </filter>
  33. <filter-mapping>
  34. <filter-name>CharacterEncodingFilter</filter-name>
  35. <url-pattern>/*</url-pattern>
  36. </filter-mapping>
  37. <!-- Spring view分发器 -->
  38. <servlet>
  39. <servlet-name>mvc</servlet-name>
  40. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  41. <init-param>
  42. <param-name>contextConfigLocation</param-name>
  43. <param-value>/WEB-INF/mvc-servlet.xml</param-value>
  44. </init-param>
  45. <load-on-startup>1</load-on-startup>
  46. </servlet>
  47. <servlet-mapping>
  48. <servlet-name>mvc</servlet-name>
  49. <url-pattern>/</url-pattern>
  50. </servlet-mapping>
  51. <welcome-file-list>
  52. <welcome-file>index.jsp</welcome-file>
  53. </welcome-file-list>
  54. </web-app>

3.3 配置mvc-servlet.xml

这是springmvc的配置文件。

  • <context:component-scan>主要指定了要遍历的package包名为cn.mark.mvc.controller,这个在新建controller文件时要对应这个package名称。
  • InternalResourceViewResolver是视图解析器,以下指定视图文件目录为/WEB-INF/views,后缀名.jsp
  • <mvc:annotation-driven />是注解配置,这个允许你在controller类里加上如@controller@RequestMapping注解来告诉springmvc这个类可以接收用户请求并指定URL地址映射。

位置:/src/main/webapp/WEB-INF/mvc-servlet.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:aop="http://www.springframework.org/schema/aop"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:tx="http://www.springframework.org/schema/tx"
  7. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8. xsi:schemaLocation="http://www.springframework.org/schema/aop
  9. http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
  10. http://www.springframework.org/schema/beans
  11. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  12. http://www.springframework.org/schema/context
  13. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  14. http://www.springframework.org/schema/mvc
  15. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
  16. http://www.springframework.org/schema/tx
  17. http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
  18. <mvc:annotation-driven />
  19. <context:component-scan base-package="cn.mark.mvc.controller" />
  20. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  21. <property name="prefix" value="/WEB-INF/views/" />
  22. <property name="suffix" value=".jsp" />
  23. </bean>
  24. </beans>

3.4 配置applicationContext.xml

在启动Web容器时,自动装配Spring applicationContext.xml的配置信息,这里可以初始化一些bean,如Hibernate、DataSource等。这里我们先什么也不做。

位置:/src/main/webapp/WEB-INF/applicationContext.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
  3. <beans>
  4. </beans>

3.5 编写第一个控制器类

3.5.1 创建controller包名cn.mark.mvc.controller

此处输入图片的描述

输入cn.mark.mvc.controller,这个是与mvc-servlet.xml配置中要扫描的package对应的。

此处输入图片的描述

3.5.2 创建TestController.java类

此处输入图片的描述

输入控制器名称TestController

此处输入图片的描述

创建完之后,复制以下示例代码到TestController.java

  1. package cn.mark.mvc.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.ui.Model;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. @Controller
  6. public class TestController {
  7. @RequestMapping(value="test")
  8. public void test(Model model){
  9. model.addAttribute("ddc", "邓莫尔, 你好! 我是Spring!");
  10. //System.out.println("test.jsp");
  11. }
  12. }
3.5.3 创建test.jsp视图文件

在/WEB-INF目录下新建文件夹views,新建/WEB-INF/views/test.jsp文件,文件名对应控制器上的RequestMapping的value值,复制示例代码:

  1. <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
  2. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>SpringMVC测试页面</title>
  8. </head>
  9. <body>
  10. <c:out value="${ddc}"></c:out>
  11. </body>
  12. </html>
3.5.4 测试运行结果

运行Run,访问URL:http://localhost:8080/mvc/test

此处输入图片的描述

后续会介绍如何配置数据库、Hibernate以及web前端框架,如GWT、SmartGWT、ExtGWT、Vaadin等,正在学习中,待我学成归来,与大家一起分享~

对于java 9 ,应该在porm.xml加入以语句

<project 
...
    <properties>
        <maven.compiler.source>1.6</maven.compiler.source>
        <maven.compiler.target>1.6</maven.compiler.target>
    </properties>
</project>

参考

配置完pom.xml之后,需要重新 maven install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment