转载请注明出处:http://www.cnblogs.com/lidabnu/p/5657439.html

1 环境准备

  • 下载Eclipse:http://www.eclipse.org/downloads/packages/release/Neon/R,使用的是Neon,32位Windows版本,下载后解压;

  • 下载Maven:http://maven.apache.org/download.cgi,下载的是3.3.9版本,直接解压到某个目录

  • Spring不用下载
  • 下载Tomcat8.0并解压到某目录,不用安装

  • 配置Eclipse中的Maven:

  • 配置Eclipse中的Tomcat

2 创建工程

  • 新建Maven工程,archetype选择webapp,设置groupId和artifactId。

  建完后工程目录如下:

  • 可以看到,新建的工程尚有一些东西需要调整,步骤如下:

    • 增加对应源码及资源目录,添加/main/java目录的操作及添加完/main/java和/test/java修改后的结果如下:

    • 调整JDK版本,这里使用的是JDK1.8,关键在于不要选择JRE:

    首先要去Preference菜单调整一下JRE的目录,使之指向JDK目录,如下图

    调整工程的Libraries:

3 配置及代码编写

  1. 配置pom.xml:因为要使用springmvc、jstl等,所以需要加上对它的依赖,值得注意的是,不需要主动增加对springcore等的依赖,因为我们并不直接使用,Maven会自动将springmvc及其所依赖的springcore等jar包下载下来(这个过程会很慢,不过国内的Maven镜像好像有些问题,没搞明白怎么用)

  自动下载后,依赖的Maven包包括:

  • 修改web.xml:因为maven的webapp的archetype较老,默认使用的是jsp1.2标准,因此会引起jsp页面默认不能使用el表达式等问题,解决办法见http://www.2cto.com/kf/201404/293482.html,这里采用第二种办法,直接在web.xml中使用jsp2.0的头,修改后内容web.xml内容如下:

  • web.xml中配置Spring的servlet和servlet-mapping,完整的web.xml如下
  1. <web-app version="2.5"
  2. 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.  
  7. <display-name>Archetype Created Web Application</display-name>
  8. <servlet>
  9. <servlet-name>spring</servlet-name>
  10. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  11. <load-on-startup>1</load-on-startup>
  12. </servlet>
  13. <servlet-mapping>
  14. <servlet-name>spring</servlet-name>
  15. <url-pattern>/</url-pattern>
  16. </servlet-mapping>
  17. </web-app>
  • 新建并配置spring-servlet.xml内容,因web.xml中未指定路径,因此spring-servlet.xml需放置在/WEB-INF目录,内容如下,
  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"
  4. xmlns:p="http://www.springframework.org/schema/p"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:util="http://www.springframework.org/schema/util"
  7. xmlns:mvc="http://www.springframework.org/schema/mvc"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/util
  10. http://www.springframework.org/schema/util/spring-util-3.0.xsd
  11. http://www.springframework.org/schema/beans
  12. http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
  13. http://www.springframework.org/schema/context
  14. http://www.springframework.org/schema/context/spring-context-3.0.xsd
  15. http://www.springframework.org/schema/mvc
  16. http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" >
  17.  
  18. <!-- 配置支持注解 -->
  19. <mvc:annotation-driven/>
  20. <!-- 配置controller自动扫描包名称,便于spring自动加载controller -->
  21. <context:component-scan base-package="stock.controller"></context:component-scan>
  22.  
  23. <!-- 配置默认的viewResolver,因为要使用jstl,因此配置了viewClass为org.springframework.web.servlet.view.JstlView
  24. 另外,配置了view的前缀后后缀,前缀为/WEB-INF/views,所以后续的jsp页面需要放到/WEB-INF/views目录 -->
  25. <bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  26. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  27. <property name="contentType" value="text/html"/>
  28. <property name="prefix" value="/WEB-INF/views/"/>
  29. <property name="suffix" value=".jsp"/>
  30. </bean>
  31.  
  32. </beans>
  • 新建controller,代码如下:使用注解配置其匹配的URL为/或者/index,代码中在model中添加key为“Welcomewords”的字符串对象
  1. package stock.controller;
  2.  
  3. import java.util.Map;
  4.  
  5. import org.springframework.stereotype.Controller;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7.  
  8. @Controller
  9. public class HomeController {
  10.  
  11. @RequestMapping({"/","/index"})
  12. public String showHomePage(Map<String,Object> model)
  13. {
  14. model.put("WelcomeWords", "欢迎你,老大");
  15. //System.out.println("showHomepage executed, using stock");
  16.  
  17. return "index";
  18. }
  19. }
  • 修改index.jsp并移动至/WEB-INF/views目录,index.jsp内容如下:
  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>测试主页2</title>
  8. </head>
  9.  
  10. <body>
  11. <h1>${WelcomeWords}</h1>
  12. </body>
  13. </html>

4  测试

右键单击项目,选择Run as的Run On Server,因为未配置过Server,所以出现配置界面:

下一步:stock项目自动在右侧

开始运行,index.jsp页面的${WelcomeWords}被换成了HomeController中设置的“欢迎你,老大”。搞定!

Spring+Maven+Eclipse构建Web工程的更多相关文章

  1. eclipse+maven+tomcat构建web工程

    我们要利用Maven构建一个web应用,开发环境为eclipse+tomcat.构建过程如下: 1.工具准备 eclipse:版本为eclipse 4.2(Juno Service),maven插件的 ...

  2. IntelliJ IDEA——利用maven插件构建web工程

  3. eclipse 创建maven 项目 动态web工程完整示例

    需求表均同springmvc案例 此处只是使用maven 注意,以下所有需要建立在你的eclipse等已经集成配置好了maven了,说白了就是新建项目的时候已经可以找到maven了 没有的话需要安装m ...

  4. eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis

    接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...

  5. eclipse 创建maven 项目 动态web工程报错

    Eclipse 创建maven 项目 动态web工程 注:Eclipse版本为(Version: Mars.1 Release (4.5.1))maven版本为(apache-maven-3.3.9) ...

  6. Maven启动Java Web工程,8081和8086端口号被占用

    Maven启动Java Web工程, <!-- 配置tomcat插件 --> <build> <plugins> <plugin> <groupI ...

  7. 什么是maven与maven的使用过程(例如在idea创建maven工程(重点讲讲idea创建使用maven管理的web工程,并且部署到tomcat上))

    什么是maven与maven的使用过程(例如在idea创建maven工程) (重点讲讲idea创建使用maven管理的web工程项目,并且部署到tomcat服务器上) 一.什么是maven? 1, M ...

  8. maven创建的Web工程,Eclipse 内 tomcat容器不识别的处理方法

    相信很多人都遇到这个问题,简单的说明下处理方式 前提是maven配置都是ok的,这里不多说了 1.创建web工程 mvn archetype:create -DgroupId=com.XXX.YYY ...

  9. 转:Eclipse中创建Maven版的Web工程(详解)

    一.搭建步骤 ♦首先创建一个Maven的Project,如下图: ♦点击Next,勾选 Create a simple project ♦点击Next,注意Packing要选择war,因为我们创建的是 ...

随机推荐

  1. Android完全退出应用程序,完美解决方案

    最近公司工作不是很忙,就抽空研究了下Android的引导页,但是在写完引导页并且进入到住页面之后,在退出时,采用"再按一次退出"的方式去实现的,用的方式是杀掉进程跟exit,即:a ...

  2. bzoj3998 [TJOI2015]弦论(SAM)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3998 [题意] 询问排名第k的子串是谁,0代表相同子串不同位置算作相同,1代表相同子串 ...

  3. makefile for VCS from Syn@psys

    已调试通过 未来将修改成verdi的FSDB版本 下载后把 Makefile_VCS.txt 修改为 Makefile 就可以使用 链接地址: http://files.cnblogs.com/all ...

  4. unix时间戳和localtime

    今天看代码的时候看到这么一段 void user::setHelpday() { int time = ::getTickCount(); m_helpday = (time +( * ))/( * ...

  5. cocos2d-x 从onEnter、onExit、 引用计数 谈内存泄露问题

    /////////////////////////////////// //author : zhxfl //date   : 2013.8.29 //email  : 291221622@qq.co ...

  6. HW2.21

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  7. uva_12535 - Probability Through Experiments

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  8. Spring源码入门——DefaultBeanNameGenerator解析

    我们知道在spring中每个bean都要有一个id或者name标示每个唯一的bean,在xml中定义一个bean可以指定其id和name值,但那些没有指定的,或者注解的spring的beanname怎 ...

  9. Yii2 TimestampBehavior行为

    <?php /** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * ...

  10. redis缓存技术

    初学redis缓存技术,如果文章写得不好还请谅解 应用环境:win7 实现环境:cmd,eclipse redis缓存技术的特点就在于高效,因为目前涉及的数据量逐渐增多,在对于数据的存储上面和sql以 ...