企业微信浏览器显示500,但是请求返回有页面数据

黄野菜 2018-06-21 05:32:08
唉,心烦,全世界的浏览器都没事情。就企业微信的浏览器有。事情是这样的我请求一个jsp页面,在jsp页面中我主动抛出一个自定义的异常(继承自RuntimeException),然后按照我我再web.config中设置的异常类型匹配返回错误提示页面。我在谷歌浏览器、微信自带的浏览器、甚至连IE都能 显示返回的错误提示页面(此时返回请求转态码为500),但是企业微信自带的浏览器却是提示500错误。我该怎么办
...全文
1234 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄野菜 2018-07-12
  • 打赏
  • 举报
回复
throw new 自定义异常类(“异常信息”);这样本身就是错误的,因为jsp不支持。不用web.xml拦截,改为使用jsp的errorpage功能。isErrorPage="true",能获取异常的对象,但是状态码是500,isErrorPage="false",状态码是200,用Throwable exception = (Throwable)request.getAttribute("javax.servlet.jsp.jspException");获取异常。这样就能在企业微信自带的浏览器显示了。
张家强 全栈 2018-06-22
  • 打赏
  • 举报
回复
张家强 全栈 2018-06-22
  • 打赏
  • 举报
回复
微信小程序的话 有一个设置的地方需要勾选 默认的是https请求好像是
stacksoverflow 2018-06-22
  • 打赏
  • 举报
回复
引用 4 楼 weixin_42508566 的回复:
[quote=引用 3 楼 stacksoverflow 的回复:]
不知道你用的什么框框,一般的接收到异常,然后做页面跳转应该都是正常返回200,只有异常抛给了服务器才会是500。
如果用的框框有问题,自己做response.sendredirect来跳转吧。
老哥啊,这不只是处啊,其他也会有啊,改不过来啊
[/quote]

如果你的servlet应该有继承一个baseServlet,那就在baseServlet中统一改,
否则,过滤器什么的都试一下。
总之改在调用具体方法前,方法执行完后catch一下就可以了。
肯定有一个唯一的入口。
黄野菜 2018-06-22
  • 打赏
  • 举报
回复
引用 3 楼 stacksoverflow 的回复:
不知道你用的什么框框,一般的接收到异常,然后做页面跳转应该都是正常返回200,只有异常抛给了服务器才会是500。
如果用的框框有问题,自己做response.sendredirect来跳转吧。
老哥啊,这不只是处啊,其他也会有啊,改不过来啊
stacksoverflow 2018-06-21
  • 打赏
  • 举报
回复
不知道你用的什么框框,一般的接收到异常,然后做页面跳转应该都是正常返回200,只有异常抛给了服务器才会是500。
如果用的框框有问题,自己做response.sendredirect来跳转吧。
黄野菜 2018-06-21
  • 打赏
  • 举报
回复
引用 1 楼 stacksoverflow 的回复:
返回的错误提示页面把status改成200,为什么要用500返回呢?


throw new 自定义异常类(“异常信息”);这样抛出的,怎么修改
stacksoverflow 2018-06-21
  • 打赏
  • 举报
回复
返回的错误提示页面把status改成200,为什么要用500返回呢?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧