如何在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,那么有没有什么可以替代的方法呢?

请高手指教
...全文
152 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
顶一下

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧