步骤1:IDEA 2018 版本问题步骤2:新建项目步骤3:选中maven webapp格式步骤4:项目参数步骤5:确认Maven路径步骤6:确认项目名称步骤7:Maven import步骤8:新建java源代码目录步骤9:下载并解压步骤10:修改web.xml步骤11:修改pom.xml步骤12:配置Tomcat步骤13:启动Tomcat步骤14:测试步骤15:看不到Servlet选项?请更新.iml文件

步骤 1 : IDEA 2018 版本问题注: IDEA 必须使用 IDEA 2017, 2018版本有BUG,无法部署本项目
如果一定要用idea 2018, 需要做如下修改:
File->Settings->Build,Execution,Deployment->Build Tools->Maven->Importing 取消 "Store generated project files externally"
这样才能用步骤 2 : 新建项目
点击Create New Project新建项目


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web


步骤 3 : 选中maven webapp格式
1. 左边选中Maven
2. 勾选Create from archetype
3. 选中 org.apache.maven.archetypes:maven-archetype-webapp
4. Next


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_02


步骤 4 : 项目参数
GroupId: com.how2java
ArtifactId: j2ee


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_03


步骤 5 : 确认Maven路径
这一步将看到Maven 配置中的参数,无需做改动


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_04


步骤 6 : 确认项目名称
无需改动,点击Finish即可


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_05


步骤 7 : Maven import
每次新建Maven项目,或者pom.xml有改动,都会有这个提示,这次点击Enable Auto-Import,自动导入,省掉麻烦。


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_06


步骤 8 : 新建java源代码目录
maven web项目默认是没有java源代码目录的,所以需要手动创建,并设置其为源代码目录
右键main目录-> New->Directory->输入java->右键java->Mark Directory as-> Sources Root
这样就创建了存放java源文件的目录了


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_07


步骤 9 : 下载并解压
右键java->New->Servlet->HelloServlet注:


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_08


import java.io.IOException;import java.util.Date;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class HelloServlet extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response){try {response.getWriter().println("<h1>Hello Servlet!</h1>");response.getWriter().println(new Date().toLocaleString());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}、

步骤 10 : 修改web.xml
修改web.xml,添加/hello映射

<web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>HelloServlet</servlet-class></servlet><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>

步骤 11 : 修改pom.xml
修改pom.xml, 添加servletjar包依赖


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_09


<project xmlns="http:///POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http:///POM/4.0.0 http:///maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.how2java</groupId><artifactId>j2ee</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>j2ee Maven Webapp</name><url>http://</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency></dependencies><build><finalName>j2ee</finalName></build></project>

步骤 12 : 配置Tomcat
Tomcat配置和启动涉及多个步骤,请参考前面的专门为IDEA做的: 配置Tomcat


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_10


步骤 13 : 启动Tomcat
点击绿色按钮,启动Tomcat


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_11


步骤 14 : 测试
访问地址,观察到如图所示的界面http://localhost:8080/hello


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_12


步骤 15 : 看不到Servlet选项?请更新.iml文件
在新建Servlet步骤里,右键java源代码目录,无法看到Servlet选型,是因为.iml文件有问题。
1. 在IDEA中打开.iml文件
2. 添加如图所示的代码,或者复制此处代码覆盖j2ee.iml文件
3. 菜单-File->Close Project
4. 重新打开项目,就能够看到新建Servlet步骤截图里的Servlet选项了


idea新建maven项目不能新建类和包 idea无法创建maven项目_2020.2idea创建web_13


<?xml version="1.0" encoding="UTF-8"?><module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4"><component name="FacetManager"><facet type="web" name="Web"><configuration><descriptors><deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" /></descriptors><webroots><root url="file://$MODULE_DIR$/src/main/webapp" relative="/" /></webroots><sourceRoots><root url="file://$MODULE_DIR$/src/main/resources" /><root url="file://$MODULE_DIR$/src/main/java" /></sourceRoots></configuration></facet></component><component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5"><output url="file://$MODULE_DIR$/target/classes" /><output-test url="file://$MODULE_DIR$/target/test-classes" /><content url="file://$MODULE_DIR$"><sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" /><sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" /><excludeFolder url="file://$MODULE_DIR$/target" /></content><orderEntry type="inheritedJdk" /><orderEntry type="sourceFolder" forTests="false" /><orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" /></component></module>