一、前言
新建项目后,默认就有一个模块,这个模块名和项目名同名。所以说为了防止混淆,就把根目录看成一个文件夹,删除掉src,然后再在这个文件夹中新建模块。
Web项目的web目录就是context root。
二、创建部署包
部署到tomcat时,它并不是将源代码部署进去,而是将项目的部署包部署进去,部署的包就叫Artifact。
1)方法一:直接点击提示的创建
当你把Web模块加入进项目后,说明你是个Web项目,既然是个web项目,将来就需要部署到tomcat上,但是部署到tomcat上时需要一个部署的包,但你现在还没有这个部署的包,它就问你要不要生成这个部署的包('Web’任何工件中都不包含 Facet 资源),点击生成即可。
就算这里没有点击,也可以通过另一种方式创建Artifact
2)方法二:手动创建
Web Application:Exploded(Web应用程序:展开型)下面的归档(Archive)就是压缩包,jar包是java应用程序的压缩包。
Web Application:Archive:war包就是Web应用的压缩包,将该压缩包仍到tomcat中,就有一个叫webapps。
当你把war包仍进去后,tomcat会自动给你解压。
我们也可以不扔一个压缩包,我们仍一个压缩包解压之后的,就是Web Application:Exploded(Web应用程序:展开型),推荐添加解压包解压之后的,即Web Application:Exploded
。
选择需要创建的模块
然后就会出现,这个就是war包解压缩之后的一个包
旁边的名字随便更改,无所谓,反正我们也用不到这个名字
然后再回到Modules,它就不会再报'Web'任何工件中不包含Facet 资源
错误了,因为咱们web项目已经有一个压缩包了。
三、lib和artifact的关系
现有artifact,后来才添加的jar文件,此时这个jar包并没有添加到部署包中。
那么在 Project Struct里有一个叫Problems,里面会有疑问。
当前请求的方法不支持。比如:我们表单method=post,那么Servlet必须对应doPost,否则报405错误。