我已经习惯了 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/