如何在IDEA2017创建Maven的Web工程

2020-09-23 12:27:09 浏览数 (1)

如何在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的内容如下:

代码语言:javascript复制
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

13.服务器能够正常启动并运行jsp后,重新配置一下工程自带的web.xml文件,将版本配置成你需要的版本,如果不需要使用web.xml的话不配置也可以,我这里配置的是3.0版本:

代码语言:javascript复制
<?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代码:

代码语言:javascript复制
<dependency>
      <groupId>javax</groupId>
      <artifactId>javaee-api</artifactId>
      <version>6.0</version>
      <scope>provided</scope>
</dependency>

15.创建源码目录:

16.给创建的目录标记为源码目录之后才能在这个目录下创建java的包和类,不然的话是无法创建的:

17.编写一个简单的servlet测试一下: 目录结构如下:

代码如下:

代码语言:javascript复制
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,没毛病,打完收工。

0 人点赞