java - JSP 应用程序的浏览器插件或调试面板

标签 java debugging jsp tomcat error-handling

我已经习惯了 Django 漂亮的错误页面,其中包含所有详细信息,所以我真的很苦恼 Tomcat/JSP 无法对由 JSP 标签拼写错误引起的基本 JasperException 做同样的事情,等。它们都进入 localhost.log 并且很难检测或读取。

是否有浏览器插件或小型 JSP 应用程序可以很好地做到这一点?

我可以try/catch 我的 JSP 中的所有异常并将其传递给该应用程序/插件,因此它可以很好地在 float div 或其他内容中显示错误详细信息。

最佳答案

我不知道有任何这样的事情。而且我怀疑很难做得比现在更好;例如对 JSP 编译错误的 HTTP 500 响应,以及...对于 JSP 执行错误没有向浏览器传递任何有用信息。

根本问题是Servlets和JSPs的实现模型。基本上,servlet 在打开输出流后立即“提交”HTTP 响应。一旦发生这种情况,就无法更改响应 header 。您无法更改响应状态代码。您无法更改内容类型 header 。

如果在执行 JSP 或标记期间抛出某些异常,则没有好的方法将其报告给浏览器。很可能响应是使用“text/html”内容类型提交的,并且 JSP 已经开始编写 HTML。无法撤消。为时已晚。对不起。

如果 JSP 无法向浏览器可靠地传送诊断消息,则浏览器插件将无济于事。

“修复”此问题的唯一方法是让 JSP 将响应主体写入内存缓冲区,并且只有在完成后才将其复制到输出流,并确定不会抛出任何异常.由于性能影响,这无法解决。

关于java - JSP 应用程序的浏览器插件或调试面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5163749/

相关文章:

java - jsp 上没有打印任何内容来添加模型对象

java - 通过jsp发送邮件时服务器出错

java - 无法删除路径

java - 将 UTC 转换为当前语言环境时间

java - 如何在选择和展开另一个节点时自动折叠 JTree 节点

android - 如何保持已发布和更新的 APK?

java - JSP 中的枚举

java - 由于 “Could not find or load main class”而无法运行jar文件

ios - 在断点处停止导致 EXC_BAD_ACCESS

visual-studio - 是否可以记录变量变化?