问题标签 [servlet-listeners]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
638 浏览

jakarta-ee - ServletContextListener - 属性 - 设置 java.sql.Connection 对象

虽然我已经找到了这个问题的解决方案,但我想知道为什么它会这样工作。

我创建了一个实现 ServletContextListener 的类,并将一个对象设置为上下文属性,该对象旨在构建一个可用于所有应用程序的 java.sql.Connection (MySQL DBMS)。

正如 Java 教程所说,在 JDBC 4.0 发布之后,不再需要调用 Class.forName("...") 来初始化特定的驱动程序。

对于 JavaSE 项目是这样,但对于 Web 应用程序却不是这样。

例如,当我调用 createStatement() 时,Container 会抛出 NullPointerException,因为 java.sql.Connection 不存在。因此,我在 Connection "setter" 之上添加了 Class.forName("...") 并且它完美地工作。

注意:我使用 Netbeans。包含此示例的特定项目已将最新的 mysql-connector-java-5.1.21-bin.jar 设置为其库之一。

谢谢。

0 投票
3 回答
4278 浏览

java - 服务器终止时调用 sessionDestroyed()

为什么sessionDestroyed()只在无效或超时时调用,而在服务器终止时不调用?服务器终止时如何对每个会话进行一些操作?

0 投票
1 回答
1737 浏览

java - ServletContextListener.contextDestroyed 中的 JNDI 查找

我正在使用 JBoss 7.1.1 和 servlet-api 2.5。

我必须在应用程序关闭时关闭一些位于 JNDI 中的对象。

ServletContextListener用于此目的:

但我得到例外:

如果我在应用程序运行时尝试查找对象,一切都很好。

感谢您的任何帮助。


更新

我如何将数据绑定到 jndi:

TASK_CLIENT_JNDI_NAME应用程序运行时,可通过以下路径访问该对象。但是当contextDestroyed我打电话时NamingException

我不知道它是如何以及何时被摧毁的。我只确定我没有重新绑定或取消绑定它。


更新2

我也尝试使用 jndi 路径java:comp/myName, java:comp/env/myName, java:/myName, java:jboss/myName. 行为是相同的:可以在应用程序运行时查找对象,而在调用方法时无法查找ServletContextListener.contextDestroyed

0 投票
1 回答
2845 浏览

java - 从 ServletContextListener 访问位于 WAR 文件根目录中的文件

我有一个.war文件。我需要访问位于里面的文件ROOT_OF_WAR/someFolder/myfile.txt

我如何使用它来访问它ServletContextListener

是否ContextClassLoader#getResourceAsStream(resourceName)指向网络应用程序的根目录(即文件的根.war目录)?

或者我需要使用它来访问它ServletContextEvent#getServletContext().getResourceAsStream("someFolder/myfile.txt");

0 投票
1 回答
568 浏览

java - 表单身份验证 - 侦听器

我在 Java JSP/Servlet 应用程序中使用基于 FORM 的身份验证方法。我想在成功登录后“做点什么”。有没有听众可以帮助我做到这一点?我不想在每一页的开头放置任何代码。

0 投票
1 回答
1470 浏览

servlets - ServletContextListener v/s init() 方法

当我们必须在应用程序启动时设置一些数据时,在调用 servlet init 方法或实现 servlet 上下文侦听器之间更好。

0 投票
1 回答
633 浏览

java - Google Guice Web 应用程序中的 HttpSessionListener

当 Guice Servlet 会话到期时,我需要执行一个操作,该操作将访问ServletContext中的项目。为什么?要通过打开的 websocket 连接来销毁会话并关闭它们;这些连接保存在ServletContext.)

要在基本的 Servlet Web 应用程序中实现这一点,需要实现一个HttpSessionListener并挂钩到该sessionDestroyed方法中。

对于使用Google Guice进行依赖注入的 Web 应用程序,如何实现这一点?

回想能够访问的要求ServletContext;我已经遇到过这个论坛对话,但没有发现它有帮助。

0 投票
1 回答
2282 浏览

java - 如何从 servlet 向所有登录用户发送数据

我的要求是管理员应该向所有登录用户发送数据。我有一个 servlet 第一个用户发送登录 HTTP 请求并从 servlet 获取登录成功响应,现在该用户的会话已启动。类似地其他用户登录。现在管理员也是一个用户可以登录并看到两个用户 user1 和 user2 登录. 管理员应该向所有登录的用户发送数据。Servlet 应该在没有用户 HTTP 请求的情况下将数据推送给该用户。请注意在会话期间用户不会发送任何其他 HTTP 请求。

我尝试存储每个登录用户的响应 obj 而不是彗星,然后使用该 obj 尝试将数据发布回用户,但这没有用。

请检查以下代码:LoginServlet.java

一旦用户登录 arraylist 中存储的 resp obj。

后来使用那个 obj 得到了 printwriter obj。

问题:

  1. 如何向所有登录用户发送一个特定的消息?
  2. 没有彗星,我们能做到这一点吗?

如果我做错了什么,请更正代码并提供其他建议。谢谢

0 投票
1 回答
602 浏览

java - 用户关闭浏览器时 sessionlistner 不工作

在下面的代码中 sessionCreated 在创建新会话时工作。但是 sessionDestroyed 只有在我们调用 session.invalidate() 时才有效;在以下情况下,我怎样才能使它工作**

1)用户关闭浏览器

2)系统断电

3)会话超时**

我的 .xml 文件是

0 投票
1 回答
1160 浏览

spring - 使用 Spring 在 ServletContextListener 中注入静态属性

我需要将静态属性注入我的侦听器类之一

首先我检查了这个 Spring - Injecting a dependency into a ServletContextListener。但是它不适用于静态属性。然后我与这个http://planproof-fool.blogspot.be/2010/03/spring-setting-static-fields.html混合仍然无法获得注射。

这是我的简短代码

应用程序上下文.xml

并在 modelContext 文件中

从功能上讲,此侦听器类将永远运行(无限时间)并访问存储库属性。