【问题标题】:Custom server error codes spring MVC & tomcat自定义服务器错误代码 spring MVC 和 tomcat
【发布时间】:2012-04-29 22:09:32
【问题描述】:

我正在编写一个 webapp,它应该能够处理如下请求: 本地主机:8080/WeddingApp/report?tid=1

如果服务器收到以下请求,我希望这样做: 本地主机:8080/WeddingApp/report 本地主机:8080/WeddingApp/report?tid=

发出错误 404/500 而不是默认的 400。不仅更改错误 400 重定向到的页面,还更改从服务器检索的错误代码。

如何实现?

谢谢你:)

【问题讨论】:

    标签: java tomcat servlets spring-mvc custom-error-handling


    【解决方案1】:

    您的代码在哪里查找请求参数tid,将响应状态设置为您想要的代码,如下所示:

    response.setStatus(404);
    

    其中response 是您的servlet 类中的HttpServletResponse

    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    public class ServletExample extends HttpServlet {
      private void doGetOrPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // ~~~ your code snippet ~~~
        String value = request.getParameter("tid");
        if (value == null) {
            response.setStatus(404);
        } else {
            // do something
        }
      }
    }
    

    【讨论】:

    • 我正在使用带有@RequestMapping 注释的多流控制器。我的代码实际上如下所示:@RequestMapping("report") public String report(Model model, @RequestParam(required=false) Integer tid) {...}
    • 概念是一样的——在 Spring 中仍然可以访问 HttpServletResponse 对象——你如何操作它取决于你。
    猜你喜欢
    • 2019-02-20
    • 2017-04-06
    • 2023-03-29
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多