Java SpringMVC-会话属性-应该作为ModelAttribute传递给所有控制器吗
AmJava SpringMVC-会话属性-应该作为ModelAttribute传递给所有控制器吗,java,spring,session,spring-mvc,Java,Spring,Session,Spring Mvc,Am@SessionAttributes用于维护SpringMVC 比如说,@SessionAttribute(“用户”) 当前,我正在将对象作为ModelAttribute传递到所有控制器中,这需要使用SessionObject“user”类似于 这是唯一的办法吗 或 还有别的办法吗?这样,我就可以拥有一个基本控制器,它可以通过扩展基本控制器来返回会话对象。我在一些项目中使用的是: String user = (String) hsr.getSession().getAttribute("us
@SessionAttributes
用于维护SpringMVC
比如说,@SessionAttribute(“用户”)
当前,我正在将对象作为ModelAttribute传递到所有控制器中,这需要使用SessionObject“user”类似于
这是唯一的办法吗
或
还有别的办法吗?这样,我就可以拥有一个基本控制器,它可以通过扩展基本控制器来返回会话对象。我在一些项目中使用的是:
String user = (String) hsr.getSession().getAttribute("user");
如果您正在寻找某种身份验证,我建议您开始使用spring security或其他身份验证机制,这些机制可以根据角色或身份验证状态筛选页面。不确定您的确切要求是什么,但是,如何创建一个过滤器/拦截器,从会话读取值并将其存储在ThreadLocal中,稍后控制器可以访问该ThreadLocal?需要访问SessionAttributes的控制器需要添加注释,如下所示
@Controller
@SessionAttributes({"user"})
public class Controller {
.............
}
嗯那很好!!!我在问,我是否应该在任何地方反复地把它作为一个论点来传递?不,你也没有。但根据我的经验,出于安全原因,我不得不这样做,因为我不想获取其他用户的数据。会话允许我访问该用户的唯一数据。请讲点道理
@Controller
@SessionAttributes({"user"})
public class Controller {
.............
}