【问题标题】:Cookie troubles with Spring MVCSpring MVC 的 Cookie 问题
【发布时间】:2013-08-21 20:02:39
【问题描述】:

我试图使用 @Cookie 获取 cookie 值。但是,如果 cookie 值为空,我会收到 400 错误。怎么了? 这是我的控制器:

    public String listContacts(Map<String, Object> map,
            HttpServletResponse response, @CookieValue("flag") String flag) {



        response.addCookie(new Cookie("flag", "In use"));
...

【问题讨论】:

    标签: java spring session cookies


    【解决方案1】:

    尝试在@CookieValue注解中设置required = false

    public String listContacts(Map<String, Object> map,
          HttpServletResponse response, @CookieValue(value = "flag", required = false) String flag) {
    

    默认情况下,spring 期望 cookie 标头存在,否则抛出异常:

    默认为 true,如果请求中缺少标头,则会引发异常。如果您希望在缺少标头的情况下使用 null,请将其切换为 false。

    或者,提供一个 defaultValue,它会将此标志隐式设置为 false。

    【讨论】:

    • 这个参数是什么意思?
    • @JohnSmith is 表示 cookie 是可选的,如果不存在,则带注释的参数将设置为 null。
    • 另外,如何设置寿命?
    • @JohnSmith 一旦你有一个Cookie 实例,你就可以使用Cookie.setMaxAge()
    • 好的,但这并不能解决我的问题...因为我需要使用 cookie,而且它总是为 null =/
    猜你喜欢
    • 2014-05-05
    • 1970-01-01
    • 2014-12-11
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 2011-01-11
    相关资源
    最近更新 更多