Tag: 会话

Servlet会话行为和Session.invalidate

假设我有一个web应用程序,其中包含在web.xml中定义的servlet。 然后我在Tomcat上部署它。 然后我打开浏览器并转到这个servlet的链接,调用它。 然后我关闭浏览器窗口。 会话的行为方式 ? 在这种情况下如何创建,销毁? 如果这个servlet与所有的web应用程序“分离”,并且仅使用post&get获取参数,那么它根本不需要Session,如果在doGet(),doPost()的末尾使用Session.invalidate?

如何在我的Java应用程序中访问Rails会话

我在一个域中有两个Web应用程序。 一个是由ruby写的另一个是java。 我的rails应用程序正在使用db session。 所以我的数据库中有一个“会话”表。 我想要做的是在java中从这个表中读取会话信息。 这是我的问题: Rails的会话表是加密的。 所以我无法直接从JDBC中读取它。 我不想写一个解密代码来转换它。 因为在java和rails中分割一个逻辑并不是一个好主意。 所以我希望找到一种方法来取消rails中的加密会话数据行为。 有谁知道如何在rails配置文件中创建它? 谢谢!

用于事务重用的Hibernate模式

我有一个基本方法,我写的是为了不反复重复相同的hibernate会话/事务逻辑。 这很简单,但有一个特定的问题,我不确定这种方法可以解决。 想象一下,您有一个User实体和一个Permission实体。 如果请求保存用户及其匹配权限,那么我认为在单个事务中执行这两个操作是有意义的,因为只能保存其中一个实体可能被视为数据损坏。 例如,如果未能保存用户的权限,则可以保证对先前插入的用户数据进行回滚。 我提出了以下方法来允许通用的hibernate操作,如果有必要可以使用当前事务,尽管我现在认为,在调用session.beginTransaction()时它的当前forms不会起作用。 即使前一个没有被提交,也可能会返回一个新的事务(这是这种情况吗?)。 假设我更改了它以使其返回当前会话和事务,如果指定当前事务将有更多操作,您认为它会起作用吗? 做这样的事情是否可取,或者你会建议改变方法吗? 谢谢 protected void baseOperation(Class entityClass, List instances, BaseHibernateDAO.Operations operation, boolean isLastOperation) throws Exception { Session session = null; Transaction transaction = null; boolean caughtException = false; //get session from factory session = HibernateSessionFactory.getSession(); try { //get current transaction transaction = session.beginTransaction(); for (Object instance : instances) […]

如何在未使用Servlet记录用户时重定向到索引页面?

如果用户未使用servlet登录,如何重定向到登录页面。 我有一个登录页用户使用该登录页面并进入主页,导航用户点击退出后只需点击浏览器中的后退按钮现在页面转到以前访问过的页面,如何在使用时将用户重定向到登录页面servlet的? 感谢您的帮助和持续的支持

是否有任何方法可以在servlet中获取jetty上的所有有效会话密钥值?

我有一个带有两个不同servlet的jetty容器,然后调用A和B.在特殊情况下,qr代码代码出现在servlet A中(用户已经登录并正在使用他的桌面)和用户使用他的移动设备阅读此qr代码并将其重定向到其移动设备上的servlet B. 这里的问题是我无法保持他的会话。 QR码带来用户会话密钥,但我无法validation此会话是否有效。 我想知道是否有任何特殊的方法来请求jetty上的有效会话密钥,因为两个servlet都在同一个服务器上。

如何检查sessionId在servlet中是否有效(java)

我在我的网络应用程序中维护了一个sessionid(s)和HttpSession对象的映射。 我使用HttpSessionListener来填充或从地图中删除会话。 当我的Web服务器崩溃并关闭并重新启动时,我需要一种方法来检查提交的sessionid是否有效。 显然,当应用程序重新联机时,Map是空的,因此所有会话ID都无效,但我只是想要一些方法来检查传入的sessionid,如果可能的话…… 谢谢

在ajax调用中通过id获取会话

有没有办法在对JAVA服务器进行的AJAX调用中访问会话。 在服务器上, request对象的session和cookies属性都为NULL 。 我可以将会话ID作为参数传递,但是如何通过ID访问会话? 编辑 使用session.getSession(false); session.getSession(true);返回null 显然会返回一个新的会话,另一个id。

Java – Google App Engine – 当我更改存储在会话范围中的类时,InvalidClassException

我更新了我的User类,现在每当有人在其会话范围中存储旧版本的User类访问我的网站时,我都会收到InvalidClassException 。 javax.servlet.ServletException: java.lang.RuntimeException: java.io.InvalidClassException: User; local class incompatible: stream classdesc serialVersionUID = 4949038118012519093, local class serialVersionUID = -971500502189813151 如何阻止这些用户发生此错误? 每次我想要更新存储在会话范围内的类时,我可能会使每个人的会话无效,但是有更好的方法,这样我的用户就不必再次登录了吗?

创建会话和cookie之间的区别?

我在Play的第一个网站上工作! 框架,有一次我在用户登录时调用此方法: static void connect(User user){ session.put(“userid”, user.id); } 只需将用户ID存储在会话中,我就可以检查它是否在每个请求上设置,工作正常。 问题是,一旦浏览器关闭,cookie就会丢失,用户需要再次登录。 我想创建一个“记住我”选项,似乎唯一的方法是创建一个cookie并将其与响应一起发送,如下所示: response.setCookie(“user”, userdata, “14d”); 所以我想知道,创建一个会话有什么意义,当它做同样的事情时? (但不会让我对cookie时间有任何控制权)。 还有一件我还没有找到的,就是如何从请求中读取cookie? (而且我知道使用setCookie创建的cookie未加密,我需要调用Crypto.sign() )

是否有用于Tomcat 6群集配置的useDirtyFlag选项?

在Tomcat 5.0.x中,您可以设置useDirtyFlag =“false”以在每次请求后强制复制会话,而不是检查set / removeAttribute调用。 … server.xml中的注释表明这可以用于进行以下工作: 即更改已放入会话的对象的状态,并确保此对象仍可复制到群集中的其他节点。 根据Tomcat 6文档,您只有两个“管理器”选项 – DeltaManager和BackupManager ……这些选项似乎都不允许此选项或任何类似选项。 在我的测试中默认设置: 默认情况下,你得到DeltaManager,它肯定表现为useDirtyFlag =“true”(正如我所料)。 所以我的问题是 – Tomcat 6中是否有相同的内容? 查看源代码,我可以看到一个管理器实现“org.apache.catalina.ha.session.SimpleTcpReplicationManager”,它确实有useDirtyFlag,但javadoc注释在这种状态下它是“Tomcat会话复制为Tomcat 4.0”…我不知道知道这是否可以使用 – 我猜不是因为主集群配置文档中没有提到它。