Stu*_*son 4 java servlets servlet-filters
是否可以编写servlet过滤器来检查HTTP响应代码?
我想编写一个过滤器来非破坏性地检查传出的HTTP响应代码.但是,getResponseCode()在Response对象上似乎没有类似的方法.
我还不清楚应该如何处理来自servlet的未处理异常.我真的不希望这个过滤器实际设置任何东西.被动是好的.
想法?
(我的另一种方法是编写一个自定义的Tomcat阀门,但这不是那么便携.)
你可以使用HttpServletResponseWrapper包装你的传出响应:
class GetStatusWrapper extends HttpServletResponseWrapper {
private int status;
GetStatusWrapper(HttpServletResponse response) {
super(response);
}
@Override
public void setStatus(int sc) {
super.setStatus(sc);
status = sc;
}
public int getStatus() {
return status;
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的过滤器中:
public class GetStatusResponseFilter implements Filter {
@Override
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain filterChain)
throws IOException, ServletException {
GetStatusWrapper wrapper;
wrapper = new GetStatusWrapper((HttpServletResponse) response);
filterChain.doFilter(request, wrapper);
System.out.println("status = " + wrapper.getStatus());
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
@Override
public void destroy() {
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4809 次 |
| 最近记录: |