Java 重定向到URL时会话将过期

Java 重定向到URL时会话将过期,java,spring,Java,Spring,似乎当我尝试使用ModelAndView()调用URL时,我的会话结束了,当加载视图时,创建了一个新会话,没有我希望保留的任何数据 return new ModelAndView("redirect:http//.....) 当移动到不同的控制器时,除了@SessionAttributes之外,还有更好的方法来处理会话吗?@SessionAttributes会话对象不能在控制器之间共享。以下是一些备选方案: 您可以将属性直接存储到HttpSession对象中。您可以通过将HttpSe

似乎当我尝试使用ModelAndView()调用URL时,我的会话结束了,当加载视图时,创建了一个新会话,没有我希望保留的任何数据

     return new ModelAndView("redirect:http//.....)

当移动到不同的控制器时,除了@SessionAttributes之外,还有更好的方法来处理会话吗?

@SessionAttributes
会话对象不能在控制器之间共享。以下是一些备选方案:

您可以将属性直接存储到HttpSession对象中。您可以通过将HttpSession对象作为参数添加到控制器方法来获取该对象:

public ModelAndView myControllerMethod(..., HttpSession session) {
  ...
  session.setAttribute("someAttribute", someValue);
  ...
}
您还可以自动连接HttpSession对象,然后在控制器方法中使用它:

@Autowired
private HttpSession httpSession;
您可以创建会话范围的bean,并将该bean注入需要它的控制器:

<bean id="mySessionDataBean" class="com.example.MySessionDataBeanImpl" scope="session">
    <aop:scoped-proxy />
</bean>

会话就是会话——除非它是HTTPV。HTTPS,在这种情况下,在某些服务器下,您需要指示这两个协议应该共享会话。你提供的信息不多。谢谢你的建议!
public class MyController {
    ....
    @Autowired
    SessionDataBean sessionDataBean;

    @RequestMapping(...)
    public ModelAndView controllerMethod(...) {
         ...
         sessionDataBean.setSomeValue(someValue);
    }
}