如何在时间段为 30 分钟的春季实现会话管理
Posted
技术标签:
【中文标题】如何在时间段为 30 分钟的春季实现会话管理【英文标题】:How to implement session management in spring with time period 30 minute 【发布时间】:2018-04-11 07:19:06 【问题描述】:在我的帖子中,我尝试了简单的登录功能,无论用户是否有效。如果用户有效,我必须实施 30 分钟的会话功能, 如果用户在 30 分钟之前没有做任何事情,如何让他退出,他必须使用用户名和密码登录。谁能解释一下我如何在 Spring mvc 中实现会话管理,上述要求会话时间为 30 分钟?
AppConfig
@Configuration
@PropertySource("classpath:spring.properties")
@EnableWebMvc
@ComponentScan(basePackages = "com.spring")
public class AppConfig extends WebMvcConfigurerAdapter
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry)
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
@Bean
public ViewResolver viewResolver()
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
@Bean
public ResourceBundleMessageSource messageSource()
ResourceBundleMessageSource rb = new ResourceBundleMessageSource();
rb.setBasenames(new String[] "messages/messages", "messages/validation" );
return rb;
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer)
configurer.enable();
AppInitializer
public class AppInitializer implements WebApplicationInitializer
public void onStartup(ServletContext container) throws ServletException
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(AppConfig.class);
ctx.setServletContext(container);
ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.setLoadOnStartup(1);
servlet.addMapping("/");
控制器
@RequestMapping(value = "/authenticateUserLogin", method = RequestMethod.POST)
public ModelAndView authenticateUserLogin(@ModelAttribute("loginForm") @Validated User user, BindingResult result, Model model, final RedirectAttributes redirectAttributes)
if(user.getEmail().equals("abc") && user.getPassword().equals("123"))
return new ModelAndView("Dashboard", "name", model);
else
return new ModelAndView("Login", "name", model);
【问题讨论】:
【参考方案1】:在this 回答中解释了如何通过 java config 或 xml config 进行操作。
【讨论】:
在那个例子中会话创建和销毁在那里,我没有发现任何会话超时约束 您是否检查了接受的答案,该答案表示要设置会话超时,您需要在 web.xml 中添加以下内容(或任何替代方法,具体取决于您如何配置应用程序):<session-config> <session-timeout>20</session-timeout> </session-config>
以上是关于如何在时间段为 30 分钟的春季实现会话管理的主要内容,如果未能解决你的问题,请参考以下文章