新建一个类TestServlet.java
第一步:新建一个web项目,文件结构如下:第二步:将classes设置为编译后文件输出目录:在settings->project structure->modules中如图所示选择patsh,按图将输出目录设置为你新建的classes目录
image.png
第三步:在main.com.guyanliang下新建类TestServlet
该类继承HttpServlet并且重写了doGet方法。
package main.com.guyanliang;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class TestServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doGet");
response.getWriter().write("<a href='http://guyanliang.club'>go</a>");
}
}
编译TestServlet.java
如图所示编译image.png
编译完成后,可以看到classes目录下多出了TestServlet.class也就是编译后的文件。
image.png
配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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"
version="4.0">
<servlet>
<servlet-name>TS</servlet-name>
<servlet-class>main.com.guyanliang.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TS</servlet-name>
<url-pattern>/main.com.guyanliang.ts</url-pattern>
</servlet-mapping>
</web-app>
如图所示配置,<servlet-mapping>是servlet的映射,注意:<servlet-class>和<url-pattern>中的配置文件路劲是相对于classes的,如果class文件时放在classes根目录下,则可以省略main.com.guyanliang。
部署调试Tomcat
部署好Tomcat并在浏览器地址输入http://localhost:8080/main.com.guyanliang.ts
image.png
部署成功
Tomcat请求过程
在如上这个简单的小程序中,我们仔细分析Tomcat时如何运作的。
- 浏览器输入地址,地址对应web.xml中<url-pattern>中main.com.guyanliang.ts。
- tomcat根据<servlet-mapping>中的属性<servlet-name>TS<servlet-name>找到属性为<servlet-
name>TS<servlet-name>所映射的servlet。 - 根据<servlet>中所对应的属性<servlet-class>寻找到编译后的class文件,并执行