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("");
        out.println("");
        out.println("Hello World!");
        out.println("");
        out.println("");
        out.println("

Hello World!

"
); out.println(""); out.println(""); } }

此时,我们会看到很多报错信息,如下所示:
Apache Tomcat 8_Tomcat 源码调试续篇_第1张图片

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

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

Apache Tomcat 8_Tomcat 源码调试续篇_第4张图片

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


<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>webdisplay-name>
    <welcome-file-list>
        <welcome-file>index.htmlwelcome-file>
        <welcome-file>index.htmwelcome-file>
        <welcome-file>index.jspwelcome-file>
        <welcome-file>default.htmlwelcome-file>
        <welcome-file>default.htmwelcome-file>
        <welcome-file>default.jspwelcome-file>
    welcome-file-list>
    <servlet>
        <servlet-name>HelloWorldservlet-name>
        <servlet-class>com.study.servlet.HelloWorldservlet-class>
        
    servlet>

    <servlet-mapping>
        <servlet-name>HelloWorldservlet-name>
        <url-pattern>/HelloWorldurl-pattern>
    servlet-mapping>
web-app>

步骤二、点击 Window -> Preferences,选择左侧栏中的 Server -> RuntimeEnvironments,在 Server Runtime Environments 对话框中点击 Add… 按钮,如下所示:
Apache Tomcat 8_Tomcat 源码调试续篇_第5张图片

选择 Tomcat installation directory: 的路径为 ./apache-tomcat-8.0.37-src/output/build(即 apache-tomcat-8.0.37 源码编译之后的目录路径),点击 Finish 按钮,再是 OK 按钮:
Apache Tomcat 8_Tomcat 源码调试续篇_第6张图片

将 Web 工程添加到 Tomcat 中,再 Debug 启动:
Apache Tomcat 8_Tomcat 源码调试续篇_第7张图片

为了验证对 Tomcat 源码的调试是否成功,我们对 HelloWorld 类的父类(即 HttpServlet 类)里的 service() 方法设置断点,如下所示:
Apache Tomcat 8_Tomcat 源码调试续篇_第8张图片

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

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

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

你可能感兴趣的:(tomcat)