关于servlet filter的问题

发布于 2022-09-11 20:03:28 字数 817 浏览 23 评论 0

想问下doFilter的第三个参数,传给下一个的Filter或者servlet,那怎么获取到里面的参数值?

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if (request.getCookies() == null){
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("user","root");
    JSONObject jsonObject1 = new JSONObject();
    jsonObject1.put("data",jsonObject);
    PrintWriter out = response.getWriter();
    out.append(jsonObject1.toString());
}
response.setContentType("application/json;charset=utf-8");
filterChain.doFilter(request,response);


我怎么能获取到这个过滤器传过过来的request和response的里面的数据?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稚气少女 2022-09-18 20:03:28

没理解你的需求是什么。
你要获取什么数据呢??
首先,request有个setAttribute(String name, Object o);可以塞数据,塞进去后面get就可以了。
再有,如果你想读取request的body信息,因为是流数据,只能读取一次,你得自己定义一个ServletRequestWrapper实现,读取到流数据缓存起来,并重载几个读取数据的方法,不影响后续的处理。这个网上你可以查查的,有很多实现。
最后response你想读处理完的数据,也是一样的道理,定义一个流输出的实现,缓存下来。
不知道满足你的需求量没,没理解你具体要干嘛

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文