写了个简单的用户登录界面,想通过用户登录来记录用户的登录状态。
用户登录代码是没问题的,可以运行。但当我加了监听器后,
在web.xml里配置<listener><listener-class>login.UserListener</listener-class></listener>时就出错,在IE上运行时,提示找不到我的文件。
web.xml的文件如下:<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>login.UserListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>我不知道<listener><listener-class>login.UserListener</listener-class></listener>该加在那里?在web.xml文件里次序错了,程序也运行不了。真正的位置该放在那里?
用户登录代码是没问题的,可以运行。但当我加了监听器后,
在web.xml里配置<listener><listener-class>login.UserListener</listener-class></listener>时就出错,在IE上运行时,提示找不到我的文件。
web.xml的文件如下:<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>login.UserListener</listener-class>
</listener>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>我不知道<listener><listener-class>login.UserListener</listener-class></listener>该加在那里?在web.xml文件里次序错了,程序也运行不了。真正的位置该放在那里?
解决方案 »
- Hibernate用MyEclipse自动生成pojo,hbm.xml,cfg.xml 只能查,不能增删,为什么
- 请教个关于使用JFreeChart建立柱状图的问题
- hibernate 问题 onlyxu请进 求救
- struts1.2 利用action 转发请求后没有反应!
- 一个邮件发送的问题(怪哉!怪哉!)
- 用javascript改变过的selectMenuOne组件提交时总是出现错误
- 在线等:同一个包中怎样的到Spring的上下文!
- <html:image>这样用行吗
- struts中刷新问题
- 请帮我解决一下昨晚的问题,加一百分,up也得分,因为我把代码贴上去,用了三贴子,自己不能再up了
- 求hibernate映射文件的写法
- 关于Eclipse中VSS插件的使用
信息: restartContext(/Login)
2009-8-18 14:00:43 org.apache.catalina.core.StandardContext reload
信息: Reloading this Context has started
2009-8-18 14:00:44 org.apache.catalina.core.StandardContext listenerStart
严重: Skipped installing application listeners due to previous error(s)
2009-8-18 14:00:44 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2009-8-18 14:00:44 org.apache.catalina.core.StandardContext start
严重: Context startup failed due to previous errors
而运行程序时的界面如下:
HTTP Status 404 - /Login/login.jsp--------------------------------------------------------------------------------type Status reportmessage /Login/login.jspdescription The requested resource (/Login/login.jsp) is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28
package login;import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.*;public class UserListenter implements HttpSessionAttributeListener {
int users=0; public void attributeAdded(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getName().equals("username"))
{
users++;
System.out.println("用户登录,用户名:"+arg0.getValue());
System.out.println("当前用户数:"+users);
} } public void attributeRemoved(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getName().equals("username"))
{
users--;
System.out.println("用户注销,用户名:"+arg0.getValue());
System.out.println("当前用户数:"+users);
} } public void attributeReplaced(HttpSessionBindingEvent arg0) {
// TODO Auto-generated method stub }}
HttpSessionAttributeListener是监听所有session属性的变化,因此用于在线人数统计并不合适。可以改用HttpSessionBindingListener具体可以参考
http://blog.edu.cn/user2/gaobaolu/archives/2008/2166745.shtml
谢谢了