[Java] Maven 建立 Spring MVC 工程
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 工程相关推荐
- Spring MVC工程搭建
SpringMVC请求映射注解请求映射注解 请求映射注解 说明 @RequestMapping 通用的请求处理 @GetMapping 处理 HTTP GET 请求 @PostMapping 处理 H ...
- Java中级篇——Spring MVC 是什么(附加响应状态代码列举)
1.关于springMVC 基于Spring框架,主要解决后端服务器接受客户端服务器接受客户提交的请求,并给予响应相关的问题.的框架 目录 1.关于springMVC 基于Spring框架,主要解决后 ...
- Idea 七步建立Spring Mvc 的web项目,极其简单
Idea 7步建立Spring Mvc 的web项目 1.新建项目 新建的结构是这样的 2. 添加controller的包.文件:添加jsp的文件夹和jsp文件 文件名为HelloWorldCo ...
- 用maven创建Spring MVC项目
用maven创建Spring MVC项目 mvn archetype:generate -DgroupId=fry-arthur -DartifactId=spring-mvc-study -Darc ...
- 如何用Java类配置Spring MVC(不通过web.xml和XML方式)
DispatcherServlet是Spring MVC的核心,按照传统方式, 需要把它配置到web.xml中. 我个人比较不喜欢XML配置方式, XML看起来太累, 冗长繁琐. 还好借助于Servl ...
- Spring Boot(一) 建立spring boot工程
第一次写博客... 不知不觉已经大二下学期了, 大学被自己浪了一年半, 所以决定认真学点东西了. 在以为学长的帮助下, 开始学习spring boot 同时想把自己学到的东西记录下来, 就想到了写博客 ...
- Eclipse Maven构建Spring MVC项目
工作中项目开发使用Maven管理项目的构建.打包.编译,框架採用的是Spring MVC框架,而且实现了多模块.多项目的管理.自己也简单的參与了架构的设计.对于刚開始学习的人来说,使用Maven构建项 ...
- Java Web(11) Spring MVC 返回Json
2019独角兽企业重金招聘Python工程师标准>>> 1. 首先是对Spring mvc 进行xml配置 <?xml version="1.0" enco ...
- Java面试题--spring mvc
什么是Spring MVC ?简单介绍下你对springMVC的理解? Spring MVC是一个基于MVC架构的用来简化web应用程序开发的应用开发框架,它是Spring的一个模块,无需中间整合层来 ...
最新文章
- backtrack笔记本无法用Fn调亮度
- python3 list 列表 倒序
- android ondestroy service,android – 在onDestroy()之后仍然运行的IntentService onHandleIntent()...
- Spring Session源码解析
- java数据跑不出来,6000条数据,java下跑了20多分钟了还没跑完,求教怎么改进
- python 定义数组
- ctypes安装_用python amp; bat写软件安装脚本 + HM NIS Edit自动生成软件安装脚本
- centos7新机器需要安装的。。。。。。
- 美团暑期日常实习前端面试
- 无心剑中译阿齐姆·普雷姆吉《苦干加巧干》
- java 字符界面 curses_[C++]Linux之图形界面编程库[curses库]之入门教程
- 网关信息认证服务器不可达,网关消息认证服务器不可达
- EF6学习笔记十:原始查询,在EF中使用SQL语句
- C++语音识别接口快速入门(Microsoft Speech SDK)
- Android Binder实战开发指南之开篇
- 如何通过linux的终端命令远程登陆windows主机
- 如何解决笔记本电脑不接电源自动断网的问题?
- python解法:【PAT520砖石争霸赛】7-2真的恭喜你(10)
- 高级转录组调控分析和R语言数据可视化第十三期 (线上线下同时开课)
- emucheat,emucheat下载
热门文章
- python 原理 pdf_《深入浅出深度学习:原理剖析与Python实践》.pdf
- mac 强制退出程序_Mac OS系统如何强制退出应用程序
- 规则引擎 drools_网易考拉规则引擎平台架构设计与实践
- hbase安装包_HBase集群搭建
- vbreport8.wpf.viewer 个别电脑不显示_【电脑手机小技巧】新买的电脑,第一次开机最好要这样设置...
- 电脑硬件知识学习_计算机的发展史,你对硬件知识了解多少,带大家了解一下....
- python第四周测试答案_Python程序开发第四周作业
- md5后得到的32位字符串存储到mysql中太占空间了_面试官:你对MySQL高性能优化有什么规范建议?...
- c# 程序员学习android(1)引导界面--viewpager的使用
- window.open ()的用法