java - 将跟踪模式设置为 cookie 以删除附加的 session ID,而不使用 web.xml

标签 java spring spring-mvc cookies

我正在设置一个完全基于 java 的 spring 应用程序,没有 xml 配置:

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[]{"/"};
    }

@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;
    }

我应该把它放在哪里,它曾经在我的 web.xml 中?

 <session-config>
        <!-- Disables URL-based sessions (no more 'jsessionid' in the URL using Tomcat) -->
        <tracking-mode>COOKIE</tracking-mode>
    </session-config>

最佳答案

你可以像下面那样做

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);

    }

}

关于java - 将跟踪模式设置为 cookie 以删除附加的 session ID,而不使用 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16262285/

相关文章:

java - 如何检查单词是日语还是英语?

java - 在 eclipse 3.7.2 上更新 swt 插件

java - 如何显示拉丁扩展 A 字符集中的字符串

日期 JSON 序列化程序将列表转换为字符串的 java.lang.reflect.InitationTargetException

java - : SpringIocContainer | ApplicationContext | WebApplicationContext之间的关联

java - Hibernate 抽象方法错误

java - 使用 Java 8 迭代 Map<String,Object> 数组并返回 Map<Long,Long>

java - 是否可以在 Spring-Boot Web 应用程序中使用 Java 的 Socket API?

java - 测试 bean 实例化会引发异常

java - sessionFactory 的正确使用方法