HttpSession具有默认属性

时间:2014-12-28 12:08:27

标签: spring-mvc httpsession

您好我正在开发一个Spring Web应用程序。我想知道是否可以使用默认属性启动/创建/实例化HttpSession,例如:

isLoggedIn : false

用户登录后,我会将值更改为true

是否可能或应该改变我的观点?

提前致谢

1 个答案:

答案 0 :(得分:1)

您可以为此创建自定义HttpSessionListener

public class CustomSessionListener implements HttpSessionListener {
    @Override
    public void sessionCreated(HttpSessionEvent event) {
        event.getSession().setAttribute("isLoggedIn", false);
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent event) {
    }
}

您可以在web.xml注册:

<listener>
    <listener-class>package.CustomSessionListener</listener-class>
</listener>

如果使用servlet上下文初始化方法,则以编程方式执行:

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    servletContext.addListener(CustomSessionListener.class);
}

旁注:我建议使用Spring Security或一些现有的安全框架来处理这些事情。它的设置相对容易,而且比任何DIY解决方案都更安全。