1、直接用idea建立的web项目,其自动生成的web.xml里version=3.1,这样的话建立servlet-name等标签会报错(因为3.1不支持这种做法,更提倡用注解的办法),解决办法是将web-app标签替换成以下的3.0版本:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
2、正常情况下一个web项目的所有servlet类是放到WEB-INF/classes/中的,但用idea创建的web项目是没有classes文件夹的,它会在外面建立一个src文件夹,servlet等类会放置在这个文件夹里,这样的目录结构是不能直接放在服务器上运行的,所以需要经过一系列的设置将tomcat服务器设置到idea中并配置到项目里,之后在idea中启动,启动后idea会生成一个out文件夹,里面是正确的格式(即拥有WEB-INF/classes/这样的格式)。
3、在默认的情况下,tomcat服务器webapps目录中的web应用,外界可以直接访问。但也可以让虚拟目录映射到别的地方:
在tomcat服务器的\conf\Catalina\localhost目录下添加一个以xml作为扩展名的文件,xml文件的名字可以任意取,比如下面的demo.xml。虚似目录的名称就是这个xml文件的名称。
在demo.xml文件中添加Context元素映射JavaWeb应用,代码如下:
<Context docBase="/var/www/html/web" />
这样,当我们访问http://localhost:8080/demo时,实际访问的是/var/www/html/web/这个web目录
4、在第一次创建servlet类时,是没法直接import servlet类的,我们需要先引入相关的jar包。
在tomcat服务器的lib文件夹中能找到servlet-api.jar包,把它引进项目即可
5、关于在idea中设置tomcat service,可能在某些时候加号里找不到tomcat的选项,这时要先找到Settings中的Application Servers,然后在这个里面的加号中找到tomcat service并添加,之后就能添加tomcat service了。
6、idea设置好tomcat并且能调试后不能事先启动tomcat,因为idea启动web应用程序的时候会自动启动tomcat,如果你tomcat已经启动,idea就认为你的8080端口被占用。会报错。