在服务器完成生成jsp响应之后,我需要在响应中写一个隐藏标记。我一直得到非法的例外。所以我现在使用getWriter而不是getOutputStream来抱怨:
java.lang.IllegalStateException: strict servlet API: cannot call getWriter() after getOutputStream()
我在一个响应包装器中覆盖getWriter,我在我的过滤器中向下传递
从该方法返回时,我用write
附加了东西由于我在使用getWriter或getOutputStream
中的任何一个时遇到错误,我认为我必须以某种方式检查哪些已经被使用过。
答案 0 :(得分:2)
由于我在使用getWriter或getOutputStream中的任何一个时遇到错误,我认为我必须以某种方式检查哪些已经被使用过。
没有标准的方法可以做到这一点。
如果要使用自定义包装器实现此功能,则包装器本身需要跟踪是否已调用getWriter
或getOutputStream
。您可以通过向包装器实现类添加额外的公共方法来公开此状态。
答案 1 :(得分:0)
您可以使用servlet filter修改响应标头或数据。它是第一次实现它的一点点工作,但是一旦你完成它并没有那么糟糕而且它们非常强大。