首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >useBean vs ServletContextListener

useBean vs ServletContextListener
EN

Stack Overflow用户
提问于 2012-11-06 23:08:51
回答 1查看 183关注 0票数 1

我需要在我的JSP应用程序中通过应用程序提供一个对象。对象必须实例化一次,然后在应用程序的生命周期中使用相同的实例。

我只是jsp的初学者,所以我已经看到了两种实现这一目标的方法:

我有一个MyMenu类,它是一个bean -有setter/getter,没有参数构造函数。

1)在web.xml中使用listener设置一个类,如下所示:

代码语言:javascript
复制
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作为监听器:

代码语言:javascript
复制
<jsp:useBean id="menu" class="net.myjsp1.MyMenu"
    scope="application" />

这两种方法都会使${menu}或${appmenu}对象在我的jsp页面中可用。

我认为当您查看jsp页面中的代码时,第二种方法使"menu“对象的来源变得更加清晰。

首选的方式是什么?为什么?

EN

回答 1

Stack Overflow用户

发布于 2012-11-07 06:17:41

像useBean这样的JSP操作已经过时了,不应该再使用了。JSP的角色是视图,它从控制器准备的数据生成标记。创建菜单不是它的责任。应该首选侦听器方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13253847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档