Set tracking mode to cookie to remove appended session id, without using web.xml
cookies, java, spring, spring-mvc
Solution
you can do it as in below
public class WebConfig implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext)
throws ServletException {
HashSet<SessionTrackingMode> set = new HashSet<SessionTrackingMode>();
set.add(SessionTrackingMode.COOKIE);
servletContext.setSessionTrackingModes(set);
}
}
Problem
I am setting up a completely java based spring app with no xml config : ``` public class WebApp extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { return null; } @Override protected Class<?>[] getServletConfigClasses() { return new Class<?>[]{WebMvcConfigurer.class}; } @Override protected String[] getServletMappings() { return new String[]{"/"}; } ``` and ``` @Configuration @EnableWebMvc @ComponentScan(basePackages = { mypackages }) public class WebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/resources/**").addResourceLocations("/static-assets/"); } @Bean public ViewResolver viewResolver() { InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); viewResolver.setViewClass(JstlView.class); viewResolver.setPrefix("/WEB-INF/views/"); viewResolver.setSuffix(".jsp"); return viewResolver; } ``` where do I put this, which used to be in my web.xml ? ``` <session-config> <!-- Disables URL-based sessions (no more 'jsessionid' in the URL using Tomcat) --> <tracking-mode>COOKIE</tracking-mode> </session-config> ```