GIT: https://github.com/yangyxd/Maven.SpringMVC.Web

1. 建立 WebApp 工程

下一步:

下一步: 选择 maven-archetype-webapp

下一步,设置 Group ID, Artifact Id 以及 package 包名。

点击 Finish 完成。

可以看到有一些错误。

解决办法:

1. 在 Project Explorer 中的项目上点击右键,在弹出菜单上点击 "Properties" , 在属性对话框中,定位到 Java Build Path 中,切换到 Source 页,删除不需要项。

2. 修改 pom.xml 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>yangyxd</groupId><artifactId>maven.springmvc.web</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>maven.springmvc.web Maven Webapp</name><url>http://maven.apache.org</url><!-- 定义依赖库的版本变量 --><properties><commons-lang.version>2.6</commons-lang.version><slf4j.version>1.7.6</slf4j.version><!-- spring 版本号 --><spring.version>4.3.3.RELEASE</spring.version></properties><!-- 依赖库定义 --><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>${commons-lang.version}</version></dependency><!-- 防止 jsp 报错  --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><!-- JSTL 定制标签库  --><dependency>  <groupId>javax.servlet</groupId>  <artifactId>jstl</artifactId>  <version>1.2</version>  <type>jar</type>  <scope>compile</scope>  </dependency>    <!-- Jakarta Taglibs JSP定制标签库  --><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency><!-- 各种集合类和集合工具类 --><dependency>  <groupId>commons-collections</groupId>  <artifactId>commons-collections</artifactId>  <version>3.2.1</version>  </dependency><!-- Spring Begin --><dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-aop</artifactId>  <version>${spring.version}</version>  <type>jar</type>  <scope>compile</scope>  </dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency>  <dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency>  <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-expression</artifactId>  <version>${spring.version}</version>  <type>jar</type>  <scope>compile</scope>  </dependency>  <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency>    <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency>    <dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-messaging</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!-- Spring End --><!-- Maven Compiler Plugins --><!-- <dependency><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.5.1</version><type>maven-plugin</type></dependency>--></dependencies>    <build><plugins><!-- maven 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.5.1</version><configuration><!-- 源代码使用的开发版本 --><source>1.8</source><!-- 需要生成的目标class文件的编译版本 --><target>1.8</target><!-- 一般而言,target与source是保持一致的,但是,有时候为了让程序能在其他版本的jdk中运行(对于低版本目标jdk,源代码中需要没有使用低版本jdk中不支持的语法),会存在target不同于source的情况 --><!-- 默认字符集编码 --><encoding>UTF-8</encoding><!-- 这下面的是可选项 --><meminitial>128m</meminitial><maxmem>512m</maxmem><fork>true</fork> <!-- fork is enable,用于明确表示编译版本配置的可用 --> <compilerVersion>1.3</compilerVersion><!-- 这个选项用来传递编译器自身不包含但是却支持的参数选项 --><compilerArgument>-verbose -bootclasspath ${java.home}\lib\rt.jar</compilerArgument></configuration></plugin></plugins><!-- 最终的项目名称 --><finalName>maven.springmvc.web</finalName></build>
</project>

3. 修改 web.xml ,加入 spring servlet 。

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><!-- Spring MVC Config Begin --><servlet><servlet-name>springServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/configs/spring-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springServlet</servlet-name><!-- mvc-dispathcer 拦截 html 访问请求 --><!-- <url-pattern>*.html</url-pattern>  --><!-- mvc-dispathcer 拦截所有的请求 --><url-pattern>/</url-pattern></servlet-mapping><!-- Spring MVC Config End --><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list></web-app>

在 WEB-INF 下新建 configs 目录,建立 spring-servlet.xml :

<?xml version="1.0" encoding="UTF-8"?>
<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"xmlns:util="http://www.springframework.org/schema/util"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util-3.0.xsdhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd" ><!--开启注解处理器--><context:annotation-config /> <!-- 开启组件扫描 --><!-- 只搜索 @Controller 标注的类,不搜索其它标注的类 --><!-- base-package: 我们将来扫描的包名(后面会建立) --><context:component-scan base-package="yxd.maven.springmvc.web"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>   <!-- 让dispertcher servlet 启用基于 annotation 的 HandlerMapping --><mvc:annotation-driven /><!-- 指定使用 JstlView 来获取 View --><bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="3"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="contentType" value="text/html"/> <!-- spring mvc 指定存放 jsp 的目录 -->     <property name="prefix" value="/WEB-INF/jsps/"/><!-- 后缀名为 .jsp --><property name="suffix" value=".jsp"/></bean></beans>

在 WEB-INF 下建立文件夹 jsps,用来存放 spring mvc 中用来显示 view 的 jsp文件。

现在我们的项目变成了这样:

在我们的项目上右键,在弹出菜单中点击 "Run As" -> "Maven install",让 Maven 来初始化所有依赖库,这个时候如果某个库不存在,会自动下载。

如果执行成功,会在 Console 显示如下信息:

如果失败, 请确认环境变量(%JAVA_HOME%)设置是否正确,然后检查Eclipse设置("Preferences"\"Java"\"Installed JREs")与项目Java Build Path 中 Libraries 里面所指定的 JRE System Library 是不是一致,参考maven环境建立的文章。

如果提示下载失败,可以在 maven 的配置中指定镜像站。

如果出现类似下面的错误,一般是maven-compiler-plugin配置有问题。

如果出现类似下面的错误,检测环境变量,这种一般就是上面说的 jre 不一致造成。

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project maven.demo: Compilation failure
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre1.8.0_101\..\lib\tools.jar
[ERROR] Please ensure you are using JDK 1.4 or above and
[ERROR] not a JRE (the com.sun.tools.javac.Main class is required).
[ERROR] In most cases you can change the location of your Java
[ERROR] installation by setting the JAVA_HOME environment variable.
[ERROR] -> [Help 1]

如果出现类似下面的错误,直接将manen仓库中的 (.m2\repository\) 下对应目录删除(比如我直接将 .m2\repository\org 目录删除了),用 Alt + F5,更新工程 (Manen -> Update Project),然后重新 "Run As" -> "Maven install" 。

[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project maven.demo: Compilation failure
[ERROR] Failure executing javac, but could not parse the error:
[ERROR] 错误: 读取E:\Documents\My Documents\My Projects\Java Project\Workspace\JEE\.m2\repository\org\springframework\spring-context-support\4.3.3.RELEASE\spring-context-support-4.3.3.RELEASE.jar时出错; invalid LOC header (bad signature)
[ERROR] 错误: 读取E:\Documents\My Documents\My Projects\Java Project\Workspace\JEE\.m2\repository\org\springframework\spring-aspects\4.3.3.RELEASE\spring-aspects-4.3.3.RELEASE.jar时出错; invalid LOC header (bad signature)
[ERROR] 错误: 读取E:\Documents\My Documents\My Projects\Java Project\Workspace\JEE\.m2\repository\org\aspectj\aspectjweaver\1.8.9\aspectjweaver-1.8.9.jar时出错; invalid LOC header (bad signature)
[ERROR] 错误: 读取E:\Documents\My Documents\My Projects\Java Project\Workspace\JEE\.m2\repository\org\springframework\spring-oxm\4.3.3.RELEASE\spring-oxm-4.3.3.RELEASE.jar时出错; invalid LOC header (bad signature)
[ERROR] 错误: 读取E:\Documents\My Documents\My Projects\Java Project\Workspace\JEE\.m2\repository\org\springframework\spring-jms\4.3.3.RELEASE\spring-jms-4.3.3.RELEASE.jar时出错; invalid LOC header (bad signature)
[ERROR] 错误: 读取E:\Documents\My Documents\My Projects\Java Project\Workspace\JEE\.m2\repository\org\springframework\spring-messaging\4.3.3.RELEASE\spring-messaging-4.3.3.RELEASE.jar时出错; invalid CEN header (bad signature)
[ERROR] 6 个错误
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

在 "Maven install" 成功后,我们可以试着启动一下 Tomcat 服务器。

如果出现类似下面的错误,请检查 <url-pattern> 是否少了 "/"。

如果 url-pattern 正确,检查下如图所示地方,看是否缺少 Maven。

如果不存在,点击 "add" 添加进去。

Next...

点击 Finish.

4. 建立第一个 Spring MVC 控制器

package yxd.maven.springmvc.web;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class MyFirstSpringMvcController {@RequestMapping("mvc")public String HelloSpringMvc() {return "home"; // 返回 jsp 文件名称
    }
}

在 jsps 目录中新建一个 home.jsp 文件

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
HelloSpringMvc
</body>
</html>

重启 Tomcat 服务器,在浏览器中输入 http://localhost:8080/maven.springmvc.web/mvc ,可以看到成功的显示了 home.jsp 的内容。

如果还有错误,检查一下 Packaging, 确认是 war。

感谢: 上上千up、小布布、小不点

转载于:https://www.cnblogs.com/yangyxd/p/5955630.html

[Java] Maven 建立 Spring MVC 工程相关推荐

  1. Spring MVC工程搭建

    SpringMVC请求映射注解请求映射注解 请求映射注解 说明 @RequestMapping 通用的请求处理 @GetMapping 处理 HTTP GET 请求 @PostMapping 处理 H ...

  2. Java中级篇——Spring MVC 是什么(附加响应状态代码列举)

    1.关于springMVC 基于Spring框架,主要解决后端服务器接受客户端服务器接受客户提交的请求,并给予响应相关的问题.的框架 目录 1.关于springMVC 基于Spring框架,主要解决后 ...

  3. Idea 七步建立Spring Mvc 的web项目,极其简单

     Idea 7步建立Spring Mvc 的web项目   1.新建项目 新建的结构是这样的 2. 添加controller的包.文件:添加jsp的文件夹和jsp文件 文件名为HelloWorldCo ...

  4. 用maven创建Spring MVC项目

    用maven创建Spring MVC项目 mvn archetype:generate -DgroupId=fry-arthur -DartifactId=spring-mvc-study -Darc ...

  5. 如何用Java类配置Spring MVC(不通过web.xml和XML方式)

    DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...

  6. Spring Boot(一) 建立spring boot工程

    第一次写博客... 不知不觉已经大二下学期了, 大学被自己浪了一年半, 所以决定认真学点东西了. 在以为学长的帮助下, 开始学习spring boot 同时想把自己学到的东西记录下来, 就想到了写博客 ...

  7. Eclipse Maven构建Spring MVC项目

    工作中项目开发使用Maven管理项目的构建.打包.编译,框架採用的是Spring MVC框架,而且实现了多模块.多项目的管理.自己也简单的參与了架构的设计.对于刚開始学习的人来说,使用Maven构建项 ...

  8. Java Web(11) Spring MVC 返回Json

    2019独角兽企业重金招聘Python工程师标准>>> 1. 首先是对Spring mvc 进行xml配置 <?xml version="1.0" enco ...

  9. Java面试题--spring mvc

    什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来 ...

最新文章

  1. backtrack笔记本无法用Fn调亮度
  2. python3 list 列表 倒序
  3. android ondestroy service,android – 在onDestroy()之后仍然运行的IntentService onHandleIntent()...
  4. Spring Session源码解析
  5. java数据跑不出来,6000条数据,java下跑了20多分钟了还没跑完,求教怎么改进
  6. python 定义数组
  7. ctypes安装_用python amp; bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本
  8. centos7新机器需要安装的。。。。。。
  9. 美团暑期日常实习前端面试
  10. 无心剑中译阿齐姆·普雷姆吉《苦干加巧干》
  11. java 字符界面 curses_[C++]Linux之图形界面编程库[curses库]之入门教程
  12. 网关信息认证服务器不可达,网关消息认证服务器不可达
  13. EF6学习笔记十:原始查询,在EF中使用SQL语句
  14. C++语音识别接口快速入门(Microsoft Speech SDK)
  15. Android Binder实战开发指南之开篇
  16. 如何通过linux的终端命令远程登陆windows主机
  17. 如何解决笔记本电脑不接电源自动断网的问题?
  18. python解法:【PAT520砖石争霸赛】7-2真的恭喜你(10)
  19. 高级转录组调控分析和R语言数据可视化第十三期 (线上线下同时开课)
  20. emucheat,emucheat下载

热门文章

  1. python 原理 pdf_《深入浅出深度学习:原理剖析与Python实践》.pdf
  2. mac 强制退出程序_Mac OS系统如何强制退出应用程序
  3. 规则引擎 drools_网易考拉规则引擎平台架构设计与实践
  4. hbase安装包_HBase集群搭建
  5. vbreport8.wpf.viewer 个别电脑不显示_【电脑手机小技巧】新买的电脑,第一次开机最好要这样设置...
  6. 电脑硬件知识学习_计算机的发展史,你对硬件知识了解多少,带大家了解一下....
  7. python第四周测试答案_Python程序开发第四周作业
  8. md5后得到的32位字符串存储到mysql中太占空间了_面试官:你对MySQL高性能优化有什么规范建议?...
  9. c# 程序员学习android(1)引导界面--viewpager的使用
  10. window.open ()的用法