在 Debian 上调试 JSP(Java Server Pages)代码,通常取决于你使用的 Web 容器(如 Tomcat、Jetty 等)。下面以 Debian + Tomcat 为例,系统地讲一下调试方法。
java -version
tomcat9 -version # 或 tomcat10
常见组合:
web.xml文件路径:
/etc/tomcat9/web.xml
找到 JspServlet 配置,修改如下参数:
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>suppressSmap</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>dumpSmap</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>classdebuginfo</param-name>
<param-value>true</param-value>
</init-param>
✅ 作用:
重启 Tomcat:
systemctl restart tomcat9
tail -f /var/log/tomcat9/catalina.out
或:
journalctl -u tomcat9 -f
/var/lib/tomcat9/work/Catalina/localhost/你的应用/
可以看:
xxx_jsp.javaxxx_jsp.class编辑:
/etc/default/tomcat9
添加:
JAVA_OPTS="${JAVA_OPTS} -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000"
重启:
systemctl restart tomcat9
防火墙允许:
ufw allow 8000
✅ 可以:
<% System.out.println("debug: " + request.getParameter("id")); %>
或:
<%= "debug value = " + user %>
<%@ page isErrorPage="true" %>
<pre><%= exception.getMessage() %></pre>
rm -rf /var/lib/tomcat9/work/*
systemctl restart tomcat9
<%@ page contentType="text/html;charset=UTF-8" %>
✅ 新手:
development=truecatalina.out✅ 进阶:
work 目录✅ 生产:
如果你愿意,可以告诉我:
我可以给你更精确的配置示例。