idea本地调式tomcat源码

前言

上篇文章中一直没搞定的tomcat源码调试终于搞明白了,p神的代码审计星球里竟然有,真的好b( ̄▽ ̄)d ,写一下过程,还有p神没提到的小坑

 

准备阶段

1.去官网下东西:https://tomcat.apache.org/download-80.cgi

下三个东西一会都用得上

idea本地调式tomcat源码

 2.idea新建项目,选择maven构建的

idea本地调式tomcat源码

其它名字啥的随便填,如果你第一次搞,应该创建完和我一样

idea本地调式tomcat源码

并没有index.jsp和web.xml等,这很正常不要急

 

排坑

配置tomcat启动

idea本地调式tomcat源码

如果没找到tomcat记得点哪个30more

idea本地调式tomcat源码

到这里网上教程一般都说直接进deployment添加artifacts,但是你会发现没有

idea本地调式tomcat源码

 这时点fix,在加号里添加一个web application:exploded

idea本地调式tomcat源码

 点击ok后回到deployment,你会看到这样

idea本地调式tomcat源码

然后退出去点击run,不出意外的话,应该是这样

idea本地调式tomcat源码

可以看到src目录是有了,但是有三个报错,浏览器并没有出现hello world

此时的问题可能是由于idea版本导致的,你并不一定遇到,如果你没出现问题,请直接看我下面的步骤。

我的解决办法是关闭项目重新打开

idea本地调式tomcat源码

 删除掉之前的artifacts,并且新添加一个,此时会出现from modules的选项,点击它,选择你的项目,此时才可正常运行

idea本地调式tomcat源码

 idea本地调式tomcat源码

原因分析:我们最早创建的artifacts并没有挂载到项目上,也没有出现out的编译文件夹等内容,重启后识别到了调式项目,重新创建了正确的artifact

 

正式调试

在index.jsp中写入out.println,当然你们应该报错了。

这里可以从pom里添加,但是我们选择另一种方式,因为我们要调试tomcat源码

idea本地调式tomcat源码

 在此点击这个按钮,然后在lib里把tomcat-lib里的所有jar包加进去

idea本地调式tomcat源码

 此时就不报错了,如果报错请重启项目

然后我们移动到此处会显示它引用的jar

idea本地调式tomcat源码

 当然这个需要设置,在setting的这个位置,把它勾选上

idea本地调式tomcat源码

此时下断点,debug模式启动

idea本地调式tomcat源码

随便点一个流程,就能看到反编译代码了

idea本地调式tomcat源码

 

 

 

完善debug

这样我们能看到的是class的反编译代码,不如直接看源码好,而且说不定会有丢失

idea本地调式tomcat源码

我们回到lib添加的位置,加入之前我们下好的源码,这里注意是在右侧点+号

idea本地调式tomcat源码

添加完后是这样的

此时我们可能会遇到一个报错,说反编译代码和源码配不上(我也不知道有啥影响,但是p神教了解决方案就加上吧)

此时我们继续添加一个包,deployer中juli这个jar包

idea本地调式tomcat源码

 之后报错就消失了

 

 

总结:p神的这篇文章真是帮了大忙,同时也让我更熟悉了idea各种依赖的模式配置位置,付费知识的一颗明星,只需199,良心中的良心。不说了继续去星球学java反序列化了。

 

idea本地调式tomcat源码

上一篇:QT 界面全分辨率适配


下一篇:每日一练-leetcode