- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要有一个可通过 JSP 应用程序中的应用程序使用的对象。该对象必须实例化一次,然后在应用程序的生命周期中应使用同一个实例。
我只是 jsp 的初学者,所以我看到了两种实现此目的的方法:
我有一个 MyMenu 类,它是一个 bean - 有 setter/getters 并且没有参数构造函数。
1)在 web.xml 中使用监听器,我设置了一个这样的类:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class Config implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
// Do stuff during webapp's startup.
MyMenu appmenu = new MyMenu();
event.getServletContext().setAttribute("appmenu", appmenu);
}
public void contextDestroyed(ServletContextEvent event) {
// Do stuff during webapp's shutdown.
MyMenu appmenu = (MyMenu)event.getServletContext().getAttribute("appmenu");
appmenu.clear();
}
}
2) 不使用 jsp:useBean 来使用监听器,如下所示:
<jsp:useBean id="menu" class="net.myjsp1.MyMenu"
scope="application" />
两者都会导致 ${menu} 或 ${appmenu} 对象在我的 jsp 页面中可用。
我认为,当您查看 jsp 页面中的代码时,第二种方法可以更清楚地显示“菜单”对象的来源。
首选方式是什么?为什么?
最佳答案
像 useBean 这样的 JSP 操作已经是过去的事情了,不应该再使用了。 JSP 的作用是作为一个 View ,它根据 Controller 准备的数据生成标记。创建菜单不是它的责任。应首选监听器方法。
关于java - useBean 与 ServletContextListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13253847/
我使用 Eclipse Maven 插件创建一个 Java EE 7 项目。我的问题是,当我运行应用程序时,不会调用实现 SerlvetContextListener 的类。是什么导致了这个问题? @
我在 Web 应用程序启动阶段 (contextInitialized()) 读取了一个属性文件,并开始考虑如何使这些设置对 servlet“可见”。我是否需要循环遍历键并将每个键添加到上下文中,就像
有什么原因不能在 Java ServletContextListener 中创建变量并且它的值设置和获取与其他任何变量一样。我所拥有的是 SCL 中的 ArrayList 和另一个类中的方法经常使用
实际上,我需要执行一个方法,每次机器重启都需要几个小时才能完成。我已经在 apache tomcat 上部署了我的 Web 应用程序,并且启用了 Apache tomcat 的自动启动。为此,我在 S
我正在研究servlet,我从书中做了一个例子,但我得到了nullpointerexception。 这是我的类(class): package chala; public class Dog { p
我正在尝试在部署我的 war 文件时初始化一个流对象。 我编写了一个实现 ServletContextListener 的 Initializer 类,并向我的 web.xml 添加了一个监听器类标记
如果我有多个 ServletContextListener 并且其中一些在部署描述符中声明而其他带有注释 (@WebListener),如何定义由于应用程序初始化而执行的 ServletContext
我正在尝试使用 servletContainerInitializer 注册一个 servlet,但它似乎不起作用,也许这是我的代码(请查看它),但我开始想知道 ServletContainerIni
我正在阅读有关“Servlet 3.0 中的异步处理支持”的专家(?)教程(http://www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.h
我有一个 ServletContextListener 来初始化我的数据库。我已将其添加到我的 web.xml 中: util.MySessionListener 当我启动服务器时,一切都很
我需要有一个可通过 JSP 应用程序中的应用程序使用的对象。该对象必须实例化一次,然后在应用程序的生命周期中应使用同一个实例。 我只是 jsp 的初学者,所以我看到了两种实现此目的的方法: 我有一个
ApplicationListener 和 ServletContextListener 有什么区别?你什么时候使用它们? implements ApplicationListener impleme
我已经使用 JAX-WS 开发了一个 Web 服务,并且在 web.xml 中我注册了这个 servlet 上下文监听器。 com.sun.xml.ws.transport.http.ser
我正在创建一个 war 文件 (progressReporter.war) 并将其部署在 Jetty7.2.2.v20101205 上。我在 contextInitialized 方法上有一个系统输出
我制作了基本的 Web 应用程序,其中我采用了一个扩展 TimerTask 的 POJO 类和一个实现 ServletContextListener 的 servlet 类。现在我关心的是我想在控制台
我有一个处理特定传入请求的 servlet。我们将其称为“UpdateUserStats”。我希望调用速度快,但我还需要请求来完成一项相当昂贵的任务。我认为,如果我让 UpdateUserStats
我们在重新加载上下文时遇到多个内存泄漏(在 catalina.out 中发现)。 为了清理这些线程,我创建了 ServletContextListener 的实现。 创建上下文时成功调用了 conte
我想运行一些简单的后台进程计算,但我似乎无法弄清楚。无论我做什么,它都会阻塞。 public class WorkThreadManagerContextLoaderListener implemen
我有一个 InitApp 类 @Component public class InitApp implements ServletContextListener { @Autowired Config
我知道什么是 ServletContextListener 以及如何在 web.xml 中实现/注册它。 但问题如下。在 Web 应用程序开始时,会为每个 javaVM 创建一个监听器实例。然后调用其
我是一名优秀的程序员,十分优秀!