如何在Listener中使用init-param?

TonyAmanda 2004-05-06 04:05:29
public void contextInitialized(ServletContextEvent parm1) {
String filePath =
parm1.getServletContext().getRealPath("/") +
parm1.getServletContext().getInitParameter("sourceFile");
try {
System.out.println(filePath);
BufferedReader in = new BufferedReader(new FileReader(filePath));
int temp = Integer.parseInt(in.readLine());
parm1.getServletContext().setAttribute("counter.count", new Integer(temp + 1));
in.close();
}
catch(Exception e) {
}
}

web.xml中的相关配置:
<listener>
<listener-class>prp.listeners.CounterListener</listener-class>
<init-param>
<param-name>sourceFile</param-name>
<param-value>PRP\\resources\\counter.txt</param-value>
</init-param>
</listener>

此段代码中获得的filePath竟然是:“G:\jakarta-tomcat-5.0.19\webapps\ROOT\null”,难道说Listener无法使用init-param吗?
如果真的无法使用init-param,那么有没有什么可以替代的方法呢?

请高手指教
...全文
110 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ln_boy 2004-05-12

同楼上那样方法可以得到sourceFile.

  • 打赏
  • 举报
回复
dawnwang 2004-05-12
<context-param>
<param-name>sourceFile</param-name>
<param-value>PRP\\resources\\counter.txt</param-value>
</context-param>
<listener>
<listener-class>prp.listeners.CounterListener</listener-class>
</listener>
  • 打赏
  • 举报
回复
TonyAmanda 2004-05-12
那……该怎么引用init-param啊,偶查了下ServletContextEvent没有getInitParam的方法。
  • 打赏
  • 举报
回复
当不住诱惑 2004-05-06
问题出在你parm1.getServletContext().getInitParameter("sourceFile");
这样用的是ServletContext的四param,而不是你的listener param
  • 打赏
  • 举报
回复
dawnwang 2004-05-06
在listener中是绝对可以用init-param的,我写过不少,都是这么用的,你再仔细检查一下,看看什么地方写错了,不要想着用替换的,肯定可以的。
  • 打赏
  • 举报
回复
TonyAmanda 2004-05-06
顶一下
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-05-06 04:05
社区公告
暂无公告