笔记内容:如何在IDEA2017创建Maven的Web工程

笔记日期:2017-12-23



如何在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:
如何在IDEA2017创建Maven的Web工程_第1张图片

2.选择创建Maven工程,按照下图选择webapp骨架,注意这一步不要选错骨架了
如何在IDEA2017创建Maven的Web工程_第2张图片

3.设置maven的信息:
如何在IDEA2017创建Maven的Web工程_第3张图片

4.更换maven,不使用自带的:
如何在IDEA2017创建Maven的Web工程_第4张图片
如何在IDEA2017创建Maven的Web工程_第5张图片
如何在IDEA2017创建Maven的Web工程_第6张图片
如何在IDEA2017创建Maven的Web工程_第7张图片
如何在IDEA2017创建Maven的Web工程_第8张图片
如何在IDEA2017创建Maven的Web工程_第9张图片

5.然后就会下载需要的依赖,点击 “import Changes”:
如何在IDEA2017创建Maven的Web工程_第10张图片

下载完成后控制台会显示 “BUILD SUCCESS”:
如何在IDEA2017创建Maven的Web工程_第11张图片

6.完成之后工程目录结构如下:
如何在IDEA2017创建Maven的Web工程_第12张图片

8.创建完工程之后还没完,得先创建个tomcat才能运行web工程:
如何在IDEA2017创建Maven的Web工程_第13张图片
如何在IDEA2017创建Maven的Web工程_第14张图片

9.设置服务器的一些基本信息:
如何在IDEA2017创建Maven的Web工程_第15张图片

10.配置工程到tomcat中:
如何在IDEA2017创建Maven的Web工程_第16张图片
如何在IDEA2017创建Maven的Web工程_第17张图片
如何在IDEA2017创建Maven的Web工程_第18张图片

11.配置服务器热部署,我个人感觉IDEA的热部署没有Eclipse的好:
如何在IDEA2017创建Maven的Web工程_第19张图片

12.启动服务器:
如何在IDEA2017创建Maven的Web工程_第20张图片

注意,需要使用debug模式启动才能支持热部署,普通模式启动是不生效的。

会自动打开默认的浏览器:
如何在IDEA2017创建Maven的Web工程_第21张图片

自带的index.jsp的内容如下:



Hello World!

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



14.在pom.xml中配置javaee的依赖才能写web代码:


      javax
      javaee-api
      6.0
      provided

15.创建源码目录:
如何在IDEA2017创建Maven的Web工程_第22张图片
如何在IDEA2017创建Maven的Web工程_第23张图片

16.给创建的目录标记为源码目录之后才能在这个目录下创建java的包和类,不然的话是无法创建的:
如何在IDEA2017创建Maven的Web工程_第24张图片

17.编写一个简单的servlet测试一下:
目录结构如下:
如何在IDEA2017创建Maven的Web工程_第25张图片

代码如下:

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,没毛病,打完收工。