我用JSP和Flex开发了一个应用程序。在那个Flex应用程序中,JSP与HTTP服务交互。我在一台服务器URL中使用HTTP部署了应用程序,它运行正常。但是,当我在另一台服务器(HTTPS)中部署此项目时,应用程序未运行。在JSP会话中没有处理。是否需要检查任何服务器配置?
答案 0 :(得分:0)
我不知道你所说的“会话未被处理”。请在开发人员视角中详细说明问题,而不是在最终用户角度。究竟发生了什么?究竟发生了什么?
我至少可以说会话通常由cookie支持。转而使用的Cookie通常绑定到特定的域和路径。 Cookie不依赖于使用的协议。粗略地说,如果webcontainer创建了一个cookie来跟踪HttpSession
,它默认使用request.getServerName()
作为cookie域,request.getContextPath()
作为cookie路径。
因此,如果您在http://example.com/context
上拥有此网络应用程序,则会为主机example.com
和路径/context
创建Cookie。无论协议如何。但是当您在http://example.com/anothercontext
上触发请求时,默认情况下您将无法获得相同的cookie,因此也不会使用相同的会话。
但是,大多数webcontainers都提供可影响cookie主机和路径的配置选项。例如,Tomcat支持HTTP connector中的emptySessionPath
属性,导致cookie路径始终为/
。这样,http://example.com/context
和http://example.com/anothercontext
将能够共享相同的Cookie,从而也能够共享会话。
关于这一切如何在“引擎盖下”运作的知识必须能够更好地理解你的问题,从而也能够轻松确定根本原因。