用C#代码编写一个登陆系统
2012-04-29 11:55
405 查看
观察者模式
1. 应用于监听器(Listener),XML解析(DOM,SAX),JAVA SWING。
2. 组成:抽象主题角色,抽象观察者角色,具体主题角色,具体观察者角色。
Listener是Servlet的监听器,它可以监听客户端的请求,服务器的操作等。(如监听在线用户的数量)
当增加一个HttpSession时,就激发SessionCreated(HttpSessionEvent se)方法,这样可以给在线人数增加1
常用的监听接口有如下几个:
1. ServletContextAttributeListener监听对ServletContext属性的操作,比如增加,删除,修改属性。
2. ServletContextListener监听ServletContext。当创建ServletContext时,激发ContextInitialized(ServeltContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法
3. HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发sessionCreated(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed(HttpSessionEvent se)方法
4. HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。
在线用户数量观察者监听器:
1. 应用于监听器(Listener),XML解析(DOM,SAX),JAVA SWING。
2. 组成:抽象主题角色,抽象观察者角色,具体主题角色,具体观察者角色。
Listener是Servlet的监听器,它可以监听客户端的请求,服务器的操作等。(如监听在线用户的数量)
当增加一个HttpSession时,就激发SessionCreated(HttpSessionEvent se)方法,这样可以给在线人数增加1
常用的监听接口有如下几个:
1. ServletContextAttributeListener监听对ServletContext属性的操作,比如增加,删除,修改属性。
2. ServletContextListener监听ServletContext。当创建ServletContext时,激发ContextInitialized(ServeltContextEvent sce)方法;当销毁ServletContext时,激发contextDestroyed(ServletContextEvent sce)方法
3. HttpSessionListener监听HttpSession的操作。当创建一个Session时,激发sessionCreated(HttpSessionEvent se)方法;当销毁一个Session时,激发sessionDestroyed(HttpSessionEvent se)方法
4. HttpSessionAttributeListener监听HttpSession中的属性的操作。当在Session增加一个属性时,激发attributeAdded(HttpSessionBindingEvent se)方法;当在Session删除一个属性时,激发attributeRemoved(HttpSessionBindingEvent se)方法;当Session属性被重新设置时,激发attributeReplaced(HttpSessionBindingEvent se)方法。
在线用户数量观察者监听器:
package com.test.listener; import javax.servlet.ServletContextAttributeEvent; import javax.servlet.ServletContextAttributeListener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class OnLineCountListener implements HttpSessionListener, ServletContextListener, ServletContextAttributeListener { private int count; public void sessionCreated(HttpSessionEvent arg0) { count++; setContext(arg0); System.out.println("count数量增加1"); } public void sessionDestroyed(HttpSessionEvent arg0) { count--; setContext(arg0); System.out.println("count数量减少1"); } private void setContext(HttpSessionEvent arg){ arg.getSession().getServletContext().setAttribute("online", new Integer(count)); } public void contextDestroyed(ServletContextEvent arg0) { log("contextDestroyed()"); } public void contextInitialized(ServletContextEvent arg0) { log("contextInitialized()"); } private void log(String str){ System.out.println("调用了context:"+str); } public void attributeAdded(ServletContextAttributeEvent arg0) { System.out.println("增加了属性:"+arg0.getName()+":"+arg0.getValue()); } public void attributeRemoved(ServletContextAttributeEvent arg0) { System.out.println("移除了属性:"+arg0.getName()+":"+arg0.getValue()); } public void attributeReplaced(ServletContextAttributeEvent arg0) { System.out.println("替换了属性:"+arg0.getName()+":"+arg0.getValue()); } }
相关文章推荐
- C#编写的一个简单的登陆界面对话框的原代码
- 用C#编写一个进程外的COM组件示例代码讲解
- 不到140行的C#代码编写一个简单的面向对象的数据库(OODB)
- 自己动手,写一个分布式系统(附c#代码示例)
- 用C#写的一个 学生管理系统验证代码
- [转]提供一个C#编写的基类源码(用于操作WINDOWNS系统的服务)
- C#编写影院售票系统(A project with a higher amount of gold )(2:相关代码)
- 开源一个C# Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
- asp.net一个简单的登陆系统代码
- 编写C#代码时,一个字符串太长如何换行
- 编写高质量代码改善C#程序的157个建议——建议144:一个方法只做一件事
- 开源一个C# Class实现Openfire登陆、推出、消息发送,方便其他系统集成IM功能了
- C#专题二:教务管理系统中的另个一个登陆方式(另附资源链接)
- C#编写一个自己输入内容的代码
- C#编写一个打字母游戏,详细代码。。。。。
- Asp.net 在网页编写C#代码示例-- 一个简单的web MsSql 命令执行环境
- 急需一个asp.net(C#)编写的网上论坛系统
- 编写高质量代码改善C#程序的157个建议——建议49:在Dispose模式中应提取一个受保护的虚方法
- 用C#编写一个进程外的COM组件示例代码讲解
- 编写高质量代码改善C#程序的157个建议——建议69:应使用finally避免资源泄漏