调试 Java Servlet 常见、有效的方式如下,按使用频率和场景分类说明。
如果你是用 Tomcat / Jetty / Spring Boot 启动 Servlet:
doGet() / doPost() 中打 断点✅ 优点:最直观、最强大
✅ 适合:开发阶段
不要用 System.out.println
private static final Logger log =
LoggerFactory.getLogger(MyServlet.class);
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
log.info("请求参数: {}", req.getParameter("id"));
}
常用框架:
logs/catalina.outlogs/✅ 优点:不阻塞程序
✅ 适合:开发 + 线上
用于调试 请求是否正确:
✅ 适合:前后端联调
避免浏览器缓存、表单限制:
curl -X POST http://localhost:8080/demo/hello \
-d "name=test"
✅ 适合:接口测试
System.out.println(req.getMethod());
System.out.println(req.getRequestURI());
Enumeration<String> params = req.getParameterNames();
while (params.hasMoreElements()) {
String p = params.nextElement();
System.out.println(p + "=" + req.getParameter(p));
}
try {
// 业务逻辑
} catch (Exception e) {
e.printStackTrace();
}
web.xml 或 @WebServlet确认映射是否正确:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {}
export JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
IDE 中:
✅ 适合:测试/生产环境排查问题
| 问题 | 原因 |
|---|---|
| 404 | URL 映射错误 |
| 500 | Servlet 抛异常 |
| 断点不生效 | 没用 Debug 启动 |
| 参数 null | 表单 name 不匹配 |
如果你愿意,可以告诉我:
我可以给你针对性的调试步骤。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。