如何从javax.servlet.filter doFilter方法返回JSON响应消息和HTTP错误代码?

布赖恩

我为处理REST请求的应用程序创建了一个servlet过滤器。我已经注释了web.xml并创建了我的过滤器。过滤器运行良好,但仅返回JSON文本消息。我还需要返回405 HTTP状态代码。当我执行测试并失败时,我有一个简单的PrintWriter可以打印错误消息:

public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse apiResponse = (HttpServletResponse) response;
        apiResponse.setContentType("application/json");
        htmlOut = apiResponse.getWriter();
        mainErrorObject = new JSONObject();
        if(true){
            htmlOut.println(mainErrorObject.toString());
        }
        htmlOut.close();
    }
}

因此,就像我说的那样,如何同时返回JSON文本消息和HTTP错误代码?

斯瓦普尼尔

ServletResponse实现HttpServletResponse,它具有一个setStatus方法,该方法设置响应的状态码。

setStatus

无效setStatus(int sc)

设置此响应的状态码。此方法用于设置没有错误的返回状态代码(例如,用于状态代码SC_OK或SC_MOVED_TEMPORARILY)。如果存在错误,并且调用者希望调用Web应用程序中定义的错误页面,则应改用sendError方法。容器清除缓冲区并设置Location标头,保留cookie和其他标头。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何获得javax.servlet.Filter的Keycloak验证之前调用

来自分类Dev

如何依次调用Servlet和Filter

来自分类Dev

javax.servlet.Filter会拦截Websocket消息吗?(Java Servlet API)

来自分类Dev

从tomcat的Filter类方法响应servlet客户端时如何设置http状态代码

来自分类Dev

不能访问javax.servlet.Filter的; 对于javax.servlet.Filter的类文件未找到

来自分类Dev

将javax.servlet.Filter限制为特定的URL模式

来自分类Dev

如何使用Spring将'Cookie'标头解析为`javax.servlet.http.Cookie`?

来自分类Dev

无法解析javax.servlet.http

来自分类Dev

Microsoft Graph错误响应-如何从JSON提取HTTP状态代码和内部错误代码?

来自分类Dev

如何模拟javax.servlet.ServletInputStream

来自分类Dev

Servlet 5.0 JAR在javax.servlet。*上引发编译错误,但Servlet 4.0 JAR不会

来自分类Dev

使用org.omnifaces.cdi.ViewScoped时,我的javax.servlet.Filter在单个页面视图上同时接收GET和POST

来自分类Dev

为什么我有javax.servlet.UnavailableException:我的Filter的CrawlServlet?

来自分类Dev

为什么我有javax.servlet.UnavailableException:我的Filter的CrawlServlet?

来自分类Dev

javax.servlet.http.HttpServletRequest.getParts()Ljava / util / Collection错误

来自分类Dev

我如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库

来自分类Dev

HTTP状态500 javax.servlet.ServletException:Servlet [Jersey RESTful App]的Servlet.init()抛出异常java.lang.IllegalArgumentException

来自分类Dev

java.lang.NoClassDefFoundError:javax / servlet / http / HttpServlet

来自分类Dev

javax.servlet.http.Part.getSubmittedFileName()Ljava / lang / String

来自分类Dev

javax.servlet.http.Part.getSubmittedFileName()Ljava / lang / String

来自分类Dev

从javax.servlet.ServletContext中找不到addListener方法

来自分类Dev

JSF javax.servlet.ServletException:找不到方法:类实体

来自分类Dev

如何使用不同的 javax.servlet-api?

来自分类Dev

javax.servlet.ServletException:Servlet执行引发异常:org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

来自分类Dev

在不指定servlet位置的情况下如何说谎错误代码?

来自分类Dev

如何在我的 Maven 项目中包含 javax.servlet servlet-api 3.0.1?

来自分类Dev

如何使用Servlet响应填充下拉值

来自分类Dev

如何在javascript中获取servlet响应?

来自分类Dev

如何编码servlet对base64的响应?

Related 相关文章

  1. 1

    如何获得javax.servlet.Filter的Keycloak验证之前调用

  2. 2

    如何依次调用Servlet和Filter

  3. 3

    javax.servlet.Filter会拦截Websocket消息吗?(Java Servlet API)

  4. 4

    从tomcat的Filter类方法响应servlet客户端时如何设置http状态代码

  5. 5

    不能访问javax.servlet.Filter的; 对于javax.servlet.Filter的类文件未找到

  6. 6

    将javax.servlet.Filter限制为特定的URL模式

  7. 7

    如何使用Spring将'Cookie'标头解析为`javax.servlet.http.Cookie`?

  8. 8

    无法解析javax.servlet.http

  9. 9

    Microsoft Graph错误响应-如何从JSON提取HTTP状态代码和内部错误代码?

  10. 10

    如何模拟javax.servlet.ServletInputStream

  11. 11

    Servlet 5.0 JAR在javax.servlet。*上引发编译错误,但Servlet 4.0 JAR不会

  12. 12

    使用org.omnifaces.cdi.ViewScoped时,我的javax.servlet.Filter在单个页面视图上同时接收GET和POST

  13. 13

    为什么我有javax.servlet.UnavailableException:我的Filter的CrawlServlet?

  14. 14

    为什么我有javax.servlet.UnavailableException:我的Filter的CrawlServlet?

  15. 15

    javax.servlet.http.HttpServletRequest.getParts()Ljava / util / Collection错误

  16. 16

    我如何解决此错误,javax.servlet.ServletException:java.sql.SQLException:未选择数据库

  17. 17

    HTTP状态500 javax.servlet.ServletException:Servlet [Jersey RESTful App]的Servlet.init()抛出异常java.lang.IllegalArgumentException

  18. 18

    java.lang.NoClassDefFoundError:javax / servlet / http / HttpServlet

  19. 19

    javax.servlet.http.Part.getSubmittedFileName()Ljava / lang / String

  20. 20

    javax.servlet.http.Part.getSubmittedFileName()Ljava / lang / String

  21. 21

    从javax.servlet.ServletContext中找不到addListener方法

  22. 22

    JSF javax.servlet.ServletException:找不到方法:类实体

  23. 23

    如何使用不同的 javax.servlet-api?

  24. 24

    javax.servlet.ServletException:Servlet执行引发异常:org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

  25. 25

    在不指定servlet位置的情况下如何说谎错误代码?

  26. 26

    如何在我的 Maven 项目中包含 javax.servlet servlet-api 3.0.1?

  27. 27

    如何使用Servlet响应填充下拉值

  28. 28

    如何在javascript中获取servlet响应?

  29. 29

    如何编码servlet对base64的响应?

热门标签

归档