idea+maven从头配置并创建web项目
创建
创建一个简单maven项目不使用任何模板
修改pom.xml
将打包方式修改为war,并添加依赖
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
创建web资源目录
初始maven项目模板中只有main/java与main/resources
我们创建main/webapp/WEB-INF/web.xml与main/webapp/index.html(首页可以不要)
注意:webapp文件夹名字不可改变,虽然idea中我们可以在project structure面板配置web资源路径并在tomcat插件中跑起来,但是当打war包时maven默认web.xml是在webapp/WEB-INF/web.xml这个路径,若目录名字改变打包会报错找不到web.xml,若想要改变目录名字需在pom中手动配置打包插件并指定web.xml路径地址
结构图:
附web.xml模板(servlet4.x版本适用)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0" metadata-complete="false" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
<display-name>Hello Web</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
配置project structure
点击蓝圈内按钮进入project structure面板配置
在点击modules,点击项目名前面的展开按钮,选择web(若无则点击+号手动创建一个web),蓝圈内配置web.xml文件地址,红圈配置web资源目录(即webapp文件夹)
点击项目名选项,点击path,检查module compile output即编译后的字节码与静态配置文件资源的输出目录是否正确(应该在classes文件下面)
检查Facets是否正确
检查Artifacts,此处会有两个目录,exploded结尾的是一个文件夹会放在target下并加载进tomcat插件跑起来,此处需检查是否有WEB-INF目录并将下面的子文件夹及目录一一对应,classes里面存放compile output,即与上面module.path中一样的东西,包括字节码与静态配置文件资源,lib下面存放maven通过maven引入的依赖库,最下面则是web静态资源
war结尾的则是war包,里面只有一个东西,即上面eploded的全部文件
配置tomcat
点击edit configration并配置即可
启动并查看效果
(后续若添加web资源直接在webapp下即可)