JAVA过滤器中返回对象_利用过滤器修改response中的返回值

本文介绍了如何在JAVA中创建一个过滤器(ResponseFilter),通过继承HttpServletResponseWrapper来捕获并修改response的返回值。过滤器在接收到响应后,会检查内容类型,如果是JSON或HTML,就在内容末尾追加字符串'xiaoming',然后将修改后的响应写回。最后,展示了如何配置过滤器使其生效。
摘要由CSDN通过智能技术生成

1. 继承HttpServletResponseWrapper 重新覆盖Response对象,用来获取response中的返回值

648d4f6dc0e0dd481b7bc538abf08158.png

package com.example.demo.wrapper;

import javax.servlet.ServletOutputStream;

import javax.servlet.WriteListener;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpServletResponseWrapper;

import java.io.*;

public class ResponseWrapper extends HttpServletResponseWrapper {

private ByteArrayOutputStream buffer = null;

private ServletOutputStream out = null;

private PrintWriter writer = null;

public ResponseWrapper(HttpServletResponse resp) throws IOException {

super(resp);

buffer = new ByteArrayOutputStream();// 真正存储数据的流

out = new WapperedOutputStream(buffer);

writer = new PrintWriter(new OutputStreamWriter(buffer));

}

@Override

public ServletOutputStream getOutputStream() throws IOException {

return out;

}

@Override

public PrintWriter getWriter() throws UnsupportedEncodingException {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值