如何在spring的第一个请求中选择每个请求的值?

如何在spring的第一个请求中选择每个请求的值?,spring,spring-mvc,spring-boot,Spring,Spring Mvc,Spring Boot,我正在写一个应用程序,在第一页上选择城市,在每个请求之后,数据将只针对选定的城市。我们如何在没有身份验证的情况下保持它,或者我每次都必须在URL中传递它。 我用的是弹簧靴和百里香 您有多种选择 第一个也是很明显的一点是,当你提出要求时,都要经过这个城市。但这可能是痛苦的 第二个选项是将该值存储在会话中,以便您可以在每次需要时获取该值。但要小心处理,必要时不要忘记更新 使用Spring MVC,您可以在控制器中的会话中存储数据,执行以下操作: ServletRequestAttributes at

我正在写一个应用程序,在第一页上选择城市,在每个请求之后,数据将只针对选定的城市。我们如何在没有身份验证的情况下保持它,或者我每次都必须在URL中传递它。
我用的是弹簧靴和百里香

您有多种选择

  • 第一个也是很明显的一点是,当你提出要求时,都要经过这个城市。但这可能是痛苦的
  • 第二个选项是将该值存储在会话中,以便您可以在每次需要时获取该值。但要小心处理,必要时不要忘记更新
  • 使用Spring MVC,您可以在控制器中的会话中存储数据,执行以下操作:

    ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
    Session session = attr.getRequest().getSession();    
    session.setAttribute("city", cityName);
    
    从会话恢复数据的步骤

    session.getAttribute("city");
    
    即使您不使用SpringMVC,您也可以从HttpRequest获得会话,它更标准,但只有在您有权访问HttpRequest对象时才可用:

    Session session = request.getSession();    
    session.setAttribute("city", cityName);
    

    你有多种选择

  • 第一个也是很明显的一点是,当你提出要求时,都要经过这个城市。但这可能是痛苦的
  • 第二个选项是将该值存储在会话中,以便您可以在每次需要时获取该值。但要小心处理,必要时不要忘记更新
  • 使用Spring MVC,您可以在控制器中的会话中存储数据,执行以下操作:

    ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
    Session session = attr.getRequest().getSession();    
    session.setAttribute("city", cityName);
    
    从会话恢复数据的步骤

    session.getAttribute("city");
    
    即使您不使用SpringMVC,您也可以从HttpRequest获得会话,它更标准,但只有在您有权访问HttpRequest对象时才可用:

    Session session = request.getSession();    
    session.setAttribute("city", cityName);
    

    您可以使用session来存储它,在springmvc中有
    @SessionAttributes
    您可以在控制器中使用它,这里我希望您使用“city”作为属性的名称

    @Controller
    @RequestMapping("/")
    @SessionAttributes("city")
    public class EditCityForm {
        // ...
    }
    

    您可以使用session来存储它,在springmvc中有
    @SessionAttributes
    您可以在控制器中使用它,这里我希望您使用“city”作为属性的名称

    @Controller
    @RequestMapping("/")
    @SessionAttributes("city")
    public class EditCityForm {
        // ...
    }
    

    Villa会话只对未经身份验证的用户和用户选择城市一次可用,我不想一次又一次地选择。是否有任何注释或配置可用?从会话恢复数据应为session.geetAttribute(“城市”);代替session.setAttribute(“城市”);我说的对吗?会话是为第一个请求创建的,即使对于n个未经身份验证的用户也是如此。是的,是getAttribute(),我打错了。答案更新正确,但我认为使用@SessionAttributes要容易得多。不容易,但标准,但这个关于spring MVC检查标签的问题,如果他还没有使用它,我们不会给出这些答案。Villa会话只对未经身份验证的用户和用户选择城市一次,我不想反复选择。是否有任何注释或配置可用?从会话恢复数据应为session.geetAttribute(“城市”);代替session.setAttribute(“城市”);我说的对吗?会话是为第一个请求创建的,即使对于n个未经身份验证的用户也是如此。是的,是getAttribute(),我打错了。回答updatedcorrect,但我认为使用@SessionAttributes要容易得多。虽然不容易,但是标准,但是这个关于spring MVC检查标签的问题,如果他还没有使用它,我们不会给出这些答案@AliDehghani禁用cookies时会发生什么。无法使用它…可能使用本地存储。@AliDehghani禁用cookies时会发生什么。无法使用它…可能使用本地存储。。