java 如何取 ServletOutputStream 中的数据
您可以使用 ServletOutputStream 类的 write(byte[] b)
方法将数据写入 ServletOutputStream 中,然后使用 ByteArrayOutputStream 类的 toByteArray()
方法将数据转换为字节数组。
以下是一个示例代码:
ServletOutputStream outputStream = response.getOutputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 写入数据到 ServletOutputStream
outputStream.write("Hello World".getBytes());
// 将 ServletOutputStream 中的数据转换为字节数组
byte[] data = baos.toByteArray();
在上面的代码中,我们首先获取 ServletOutputStream 对象,然后创建一个 ByteArrayOutputStream 对象。接下来,我们使用 write()方法将数据写入 ServletOutputStream 中。最后,我们使用 toByteArray() 方法将数据从 ByteArrayOutputStream 中提取到字节数组中。
请注意,取数据之前,请确保已经写入了数据到 ServletOutputStream 中。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
有点麻烦;
1.首先自实现一个 ServletOutputStream,重写 write 方法;
2. 再实现一个 HttpServletResponseWrapper,重写 geOutputStream 和 getWriter 方法,以使得目标资源使用 1 中的 ServletOutputStream,这样可以把 目标数据 保存到 1 中的 ServletOutputStream 中;
3. 写一个 Filter 将 2 中实现的 Response 传递给处理 目标数据的对象;
4. 再在 Filter 中获取 1 中保存的数据,此时你可以随便 揉捏玩弄 你在 1 中 保存的数据了;
OK,搞定,是不是有点麻烦,其他猿有没有更好的 Schema...
我使用的是springmvc。能给我代码最好。感谢你的回答。谢谢。
继承 HttpServletResponseWrapper 重载 getWriter 方法,这个在网上也能搜到。如果你是使用 springmvc 的话可以给你代码。其他架构思路是一样的!