调试 JSP(JavaServer Pages)错误 通常可以从 页面本身、服务器日志、Java 代码、请求流程 四个方面入手。下面按常见场景给你一套实用的调试方法。
语法错误
运行期错误
逻辑错误
http://localhost:8080/项目名/xxx.jsp
✅ 重点看:
logs/catalina.out
logs/localhost.log
常见日志内容:
org.apache.jasper.JasperException
java.lang.NullPointerException
✅ 日志通常比浏览器信息更详细
在 web.xml 中配置:
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
或使用:
<%@ page isErrorPage="true" %>
<%= request.getAttribute("user") %>
<%= session.getId() %>
<%= application.getRealPath("/") %>
⚠️ 上线前删除
out.println() 调试<%
out.println("进入 JSP");
out.println("user = " + user);
%>
${user}
${empty user}
${user.name}
如果 EL 不生效:
<%@ page isELIgnored="false" %>
使用 IDE:
✅ 在 Servlet 的 doGet() / doPost() 打断点
✅ 使用 Debug 模式启动服务器
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
Logger logger = LogManager.getLogger(getClass());
logger.info("user = {}", user);
✅ 检查顺序:
request.getRequestDispatcher("xxx.jsp").forward()${} 还是 <%= %>| 错误 | 原因 | 解决 |
|---|---|---|
| 404 | 路径错误 | 检查 URL、项目名 |
| 500 | Java 异常 | 看日志 |
| 空白页面 | 未转发 | forward |
| EL 不显示 | 忽略 EL | isELIgnored=false |
| 中文乱码 | 编码问题 | UTF-8 |
如果你愿意,可以直接把:
贴出来,我可以帮你 逐行分析错误原因 ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。