由于现在的浏览器在对同一ip不同端口的cookie保存时,并没有区分不同端口的session信息。那么当我们时同开启两个tomcat进行开发时,由于用户验证信息是通过session进行保存的。那么就会出现,在同一个机器布置两个系统A和B,当用户A登陆A系统并成功之后,用户B登陆B系统之后,再回到A系统,当进行点击时,就会提示A用户已经不存在了,即相应的session信息已经不存在了。
java的web系统,一般是通过jessionid来进行session标识的,即A系统和B系统均会与客户端进行jsessionid的信息交互。但由于这两个系统是在同一个ip上,所以客户端的浏览器并不能区分每一个jessionid与不同的系统之间的关系。相反,他会将后来的jessionid覆盖前一个cookie信息,即后面的登陆时,jessionid会将A系统的jsessionid信息覆盖掉,再请求A系统时,客户端就会发送系统B的jsessionid至A系统,这样A系统肯定会取不掉最开始的session信息,而被认为是新登陆了。
解决的办法就是两个系统使用不同的session标识来保存信息,从tomcat7开始,为兼容j2ee规范,tomcat提供了一套标准的设置sessioncookiename的方法。即在整个tomcat下的conf目录下的context.xml中添加一个属性即可。官方原话如下:
org.apache.catalina.SESSION_COOKIE_NAME system property: This has been removed. An equivalent effect can be obtained by configuring the sessionCookieName attribute for the global context.xml (in CATALINA_BASE/conf/context.xml).
即在tomct7之前也可以设置Sessioncookiename,不过在tomcat7之中,可以通过设置tomcat conf目录下的context.xml添加一个属性即可。如下所示:
<!-- 这里重写session cookie name,以防止同一IP下多个端口访问时,session失效 -->
<Context sessionCookieName="tomcat7utf8_session">
这样即可(本以为是添加参数parameter或子结点,结果都不是,只需要在顶层的context节点上增加一个属性即可)
这样在tomcat启动后,相应的sessionId标识就是变成这里设置的了。
对于Intellij idea来说,因为这里设置的是整个tomcat的,所以intellij idea在复制tomcat配置的时候,会将这个配置一并的copy至相应的intellij tomcat配置下面。所以在intellij idea下开发项目时,不用担心这个配置会被删去。
这样,通过intellij idea启动两个项目(分别是两个tomcat时),因为不同的tomcat的session标识不一样,再也不会出现session丢失的问题了。
ps:之前在oschina上有提出在单个的context下添加配置也可以,这里未做测试,只因为如果在tomcat/conf/server.xml中配置其他项目时,在intellij中进行配置文件copy时,自定义的配置会被删去导致失效的问题。
分享到:
相关推荐
在 IntelliJ IDEA 中配置 Tomcat 服务器是开发 Java Web 应用程序的重要步骤,它使得开发者能够在本地环境中测试和调试应用。以下将详细解释这个过程: 1. **下载和安装 Tomcat**: 配置 Tomcat 服务器的第一步是...
二、在 IntelliJ IDEA 中配置 Tomcat 7 配置 Tomcat 服务器需要在 IntelliJ IDEA 中进行设置。用户可以按照以下步骤进行配置: 1. 打开 IntelliJ IDEA 并输入快捷键 Ctrl+Alt+S(或点击图标)弹出设置窗口。 2. 在...
idea配置tomacat,在 IntelliJ IDEA 中如何配置 Tomcat 服务器+编程知识+技术开发; idea配置tomacat,在 IntelliJ IDEA 中如何配置 Tomcat 服务器+编程知识+技术开发; idea配置tomacat,在 IntelliJ IDEA 中如何...
打开IDE,选择“File” -> “Settings”(或者使用Ctrl+Alt+S快捷键),然后在设置窗口中找到“Plugins”,确保已安装了“Tomcat”或“Tomcat插件”。接着,在“Build, Execution, Deployment” -> “Application ...
选择 File->project properties->run/debug->web,配置 Run/Debug 设置,以便在 Intellij IDEA 中正确地运行和调试 Web 应用程序。 本手册详细介绍了如何将 Intellij IDEA 与 Tomcat 集成,旨在帮助开发者快速掌握 ...
在使用IntelliJ IDEA进行开发时,往往需要与Web服务器集成,如Apache Tomcat,以便于测试和运行Java Web项目。本教程将详细介绍如何在IntelliJ IDEA中配置已安装的Tomcat 9.0服务器。 首先,确保您已经在本地计算机...
7. 配置artifacts:在IDEA中运行Tomcat可能会因为未配置artifacts而出错。artifacts是指定如何将项目文件打包成可部署的格式(如WAR包)。具体操作是点击Deployment标签页,然后点击小铅笔图标进行配置。创建新的...
要配置 JRE 运行环境,需要在 IntelliJ IDEA 中设置 JRE 的安装路径。 ### 1.2 IntelliJ IDEA 配置编译环境 在 IntelliJ IDEA 中,需要配置编译环境,以便编译和运行 Java 项目。编译环境包括 Java 编译器、类库和...
标题中的“IntelliJ IDEA不重启tomcat,自动部署 热发布Spring Boot”涉及到的是在开发Spring Boot应用时,如何使用IntelliJ IDEA这款强大的Java集成开发环境(IDE)来实现在不重启Tomcat服务器的情况下,进行项目的...
Intellij IDEA汉化包。支持最新版本2018.直接复制lib即可。file-seting可用。 设置下菜单可正常打开。
IntelliJ IDEA 的常用设置包括字体设置、光标设置、显示行号、项目启动设置、Tomcat 设置、代码提示和补全快捷键设置、快捷键设置等。通过这些设置,编程者可以更好地使用 IntelliJ IDEA,提高编程效率和质量。
IntelliJ IDEA为优化体验,提供了许多实用的技巧和设置,例如修改字符集、项目字符集、自动编译JSP、生成JAVADOC文档、设置Spring支持、启动时不自动打开项目、全屏设置等。此外,对于性能优化,也介绍了启动参数...
可以为 IDEA 专门配置一个 Tomcat 使用,并修改端口,删除 webapps 下的其他应用。这样可以解决端口冲突问题。 知识点总结 * 如何下载和解压缩 Tomcat 7 的 zip 文件 * 如何在 IntelliJ IDEA 中配置 Tomcat 服务器...
《IntelliJ IDEA 中文指南》是一份专注于介绍和指导用户使用IntelliJ IDEA集成开发环境(IDE)的文档,涵盖了从基础操作到高级特性的广泛知识点。IntelliJ IDEA是由JetBrains公司开发的一款现代化的Java集成开发环境...
IntelliJ IDEA是一款强大的Java集成开发环境,它支持多种服务器的配置与运行,其中包括Tomcat。...遵循以上步骤,你就能在IntelliJ IDEA中成功配置并运行Tomcat服务器,为你的Java Web应用提供良好的开发环境。
在 IntelliJ IDEA 12 中,需要配置 Tomcat 服务器,以便将 Java Web 项目部署到 Tomcat 服务器上。配置步骤如下: 1. 选择 Tomcat 服务器:选择 Local,然后点击 Configure,在弹出的对话框中选择 Tomcat 安装目录...
这里指定了开发环境包括64位的Windows 7操作系统,JDK版本为Java SE JDK 1.8.144,以及特定版本的Tomcat服务器和IntelliJ IDEA开发工具。这些都是构建Java Web应用的基础。 2. JDK安装:Java Development Kit(JDK...
在 IntelliJ IDEA 中,每个 Project 都需要设置自己的 JDK 和 Maven 等相关配置。默认配置提供了 Default 选项,解决了每个新项目都要重新配置的问题。 4. 初始化步骤 打开默认配置:顶部导航栏 -> File -> Other ...