步骤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新建项目

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

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

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

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

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

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

步骤 9 : 下载并解压
右键java->New->Servlet->HelloServlet
注: 倘若这里看不到Servlet选项,请跳转到看不到Servlet选项?请更新.iml文件

| 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 block e.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包依赖

| <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>com.how2java</groupId> <artifactId>j2ee</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>j2ee Maven Webapp</name> <url>http://maven.apache.org</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

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

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

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

| <?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> |
更多内容,点击了解: https://how2j.cn/k/idea/idea-maven-web/1356.html