Apache Tomcat 8_Tomcat 源码调试续篇

步骤一、新建一个 Web 工程(Dynamic Web Project),在 src 目录下新建 HelloWorld.java 文件:

package com.study.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

此时,我们会看到很多报错信息,如下所示:
Tomcat 源码调试

在 Web 工程目录下右击,选择 Build Path -> Configure Build Path …,打开 Properties for web 对话框,选择左侧栏中的 Java Build Path,在 Projects 菜单下点击 Add… 按钮,如下所示:
Tomcat 源码调试

勾选 tomcat-8.0.x 工程,连续点击 OK 按钮,关闭 Properties for web 对话框,这时,我们会看到所有的错误都神奇地消失
Tomcat 源码调试

Tomcat 源码调试

在 Web 工程的 web/WebContent/WEB-INF 目录下新建 一个 web.xml 文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    <display-name>web</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>com.study.servlet.HelloWorld</servlet-class>
        <!-- 注意 HelloWorld.java 文件的包路径(package com.study.servlet;) -->
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
</web-app>

步骤二、点击 Window -> Preferences,选择左侧栏中的 Server -> RuntimeEnvironments,在 Server Runtime Environments 对话框中点击 Add… 按钮,如下所示:
Tomcat 源码调试

选择 Tomcat installation directory: 的路径为 ./apache-tomcat-8.0.37-src/output/build(即 apache-tomcat-8.0.37 源码编译之后的目录路径),点击 Finish 按钮,再是 OK 按钮:
Tomcat 源码调试

将 Web 工程添加到 Tomcat 中,再 Debug 启动:
Tomcat 源码调试

为了验证对 Tomcat 源码的调试是否成功,我们对 HelloWorld 类的父类(即 HttpServlet 类)里的 service() 方法设置断点,如下所示:
Tomcat 源码调试

在 Tomcat 以 Debug 模式启动完成之后,我们在浏览器的地址栏中输入:http://localhost:8080/web/HelloWorld
Tomcat 源码调试

我们会看到浏览器的提示信息为“正在连接…”,在 HttpServlet 类的 service() 方法中设置的断点处的代码执行已经成功被拦截:
Tomcat 源码调试

至此,关于如何对 Tomcat 源码进行调试已经演示完毕!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值