如何在IDEA2017创建Maven的Web工程
如何在IDEA2017创建Maven的Web工程
和Eclipse不一样,在IDEA中创建Maven的web工程相对来说麻烦一些,Eclipse只需要创建Maven工程的时候选个war包然后创建个WEB-INF和web.xml,再配置个javaee的依赖就完事了。IDEA则要多几个配置步骤,刚上手IDEA的新手容易掉坑,所以在此分享一下创建步骤。
我的环境如下:
- tomcat9.0
- jdk1.8
- IDEA2017
- maven3.5
1.创建新Project:
2.选择创建Maven工程,按照下图选择webapp骨架,注意这一步不要选错骨架了:
3.设置maven的信息:
4.更换maven,不使用自带的:
5.然后就会下载需要的依赖,点击 “import Changes”:
下载完成后控制台会显示 “BUILD SUCCESS”:
6.完成之后工程目录结构如下:
8.创建完工程之后还没完,得先创建个tomcat才能运行web工程:
9.设置服务器的一些基本信息:
10.配置工程到tomcat中:
11.配置服务器热部署,我个人感觉IDEA的热部署没有Eclipse的好:
12.启动服务器:
注意,需要使用debug模式启动才能支持热部署,普通模式启动是不生效的。
会自动打开默认的浏览器:
自带的index.jsp的内容如下:
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
13.服务器能够正常启动并运行jsp后,重新配置一下工程自带的web.xml文件,将版本配置成你需要的版本,如果不需要使用web.xml的话不配置也可以,我这里配置的是3.0版本:
<?xml version="1.0" encoding="UTF-8"?>
<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"
version="3.0">
</web-app>
14.在pom.xml中配置javaee的依赖才能写web代码:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
15.创建源码目录:
16.给创建的目录标记为源码目录之后才能在这个目录下创建java的包和类,不然的话是无法创建的:
17.编写一个简单的servlet测试一下: 目录结构如下:
代码如下:
package org.zero01.myweb;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/myweb")
public class MyWeb extends HttpServlet{
protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
System.out.println("Hello, I'm Servlet");
}
}
运行结果如下:
Hello, I'm Servlet
ok,没毛病,打完收工。
- Docker集中化web界面管理平台-Shipyard部署记录
- "Goole项目托管"及"CodePlex发布开源项目"要点
- Docker网络解决方案-Calico部署记录
- c#中开发ActiveX的学习笔记
- Android新手之旅(4) 通过HTTP访问web
- Flash/Flex学习笔记(9):ActionScript3.0与Javascript的相互调用
- Flash/Flex学习笔记(8):ActionScript3.0中的面对对象
- Docker网络解决方案-Weave部署记录
- Flash/Flex学习笔记(7):FMS3.5基于IIS的安装
- Netdata---Linux系统性能实时监控平台部署记录
- linux下向一个文件中的某行插入数据的做法
- Flash/Flex学习笔记(2):捕获摄像头
- split-brain 脑裂问题(Keepalived)
- Android新手之旅(3) 信息的输出
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 深拷贝手写
- 前端进程间通讯的渗透之术
- 动态气泡图,拿走不谢!
- 刷爆全网的动态条形图,原来5行Python代码就能实现!
- Vue框架av88732281笔记
- iOS-组件化(OC篇)
- Angular async pipe在html模板中的一个实际应用
- 3D引擎中LOD技术的理论基础
- one-hot encoding不是万能的,这些分类变量编码方法你值得拥有
- 【5分钟玩转Lighthouse】爬取JavaScript动态渲染页面
- 科技爱好者周刊(第 127 期):未来人人开发软件,几乎没人编码
- mac快捷键
- 浅谈Kotlin的Checked Exception机制
- 自研网关:特殊URL功能的开发
- centos7多网卡配置