Lister

观察者模式
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());
}

}
Total CommanderCudaLister插件(32位和64位版本),内含223个语法高亮文件。 Assembly.lcf Batch files.lcf C.lcf C#.lcf C++.lcf CSS.lcf Delphi resources.lcf Diff.lcf Go.lcf Haskell.lcf HTML.lcf Ini files.lcf JavaScript.lcf JSDoc.lcf JSON.lcf LESS.lcf Lua.lcf Makefile.lcf Markdown.lcf Pascal.lcf Perl.lcf PHP.lcf PowerShell.lcf Properties.lcf Python.lcf Ruby.lcf SQL.lcf XML.lcf TypeScript.lcf JavaScript Babel.lcf CoffeeScript.lcf Clojure.lcf Elixir.lcf Erlang.lcf MediaWiki.lcf Kotlin.lcf Racket.lcf GraphQL.lcf PlantUML.lcf LaTeX.lcf Caffe Prototxt.lcf Strace.lcf LiveCode.lcf Lisp.lcf Inno Setup.lcf Pascal script.lcf Twig.lcf Razor.lcf Kivy.lcf HTML Django DTL.lcf HTML Django DTL internal.lcf ZenScript (MineTweaker).lcf Stata.lcf Assembly SHARC DSP.lcf Assembly SPARC.lcf AviSynth.lcf HJSON.lcf MySQL SQL.lcf Assembly Z80 SjASM.lcf HTML Siteleaf Liquid.lcf HTML Siteleaf Liquid internal.lcf HTML Handlebars.lcf HTML Handlebars internal.lcf HTML Embedded JS internal.lcf Assembly AVR.lcf Apache Hive.lcf Squirrel.lcf Textile.lcf Lola-2.lcf PICL.lcf Rust.lcf Scala.lcf Objective-C.lcf MATLAB.lcf Java.lcf Graphviz DOT.lcf AutoIt.lcf AutoHotkey.lcf YAML.lcf Assembly MIPS.lcf Assembly ARM.lcf Bohemia SQF.lcf Intel HEX.lcf VimL.lcf Windows Resource Script.lcf Yacc.lcf reStructuredText.lcf ABC Notation.lcf Assembly JWASM.lcf RTF.lcf Modelica.lcf Jasmine JVM Assembler.lcf Java Velocity.lcf Bitsquid SJSON.lcf Dockerfile.lcf Oberon.lcf Abaqus Keywords.lcf CRF.lcf ColdFusion.lcf ARM Assembly.lcf PHP_.lcf HTML_.lcf Clavier.lcf NSIS.lcf Ragel.lcf Metafont.lcf AWK.lcf OpenSCAD.lcf Automake.lcf Vala.lcf Boo.lcf Bash script.lcf Nemerle.lcf R Markdown.lcf BibTeX.lcf OpenCL.lcf VBScript.lcf D.lcf Nim.lcf ABAP.lcf Visual dBase.lcf Visual Basic.lcf Prolog.lcf Asymptote.lcf Verilog HDL.lcf Pike.lcf MIPS Assembly.lcf Tcl.lcf Pawn.lcf Apache Pig.lcf HTML Smarty.lcf HTML Smarty internal.lcf Standard ML.lcf Great Cow Basic.lcf HTML Mustache.lcf HTML Diafan.lcf HTML Laravel Blade.lcf HTML Laravel Blade internal.lcf Tree.lcf CUDA C++.lcf Informix 4GL.lcf NFO files.lcf Text Russian detector.lcf GLSL.lcf Virgil.lcf Jinja2.lcf TOML.lcf Slim.lcf Haml.lcf Assembly FASM.lcf Gherkin.lcf Nginx.lcf Sass.lcf ActionScript.lcf Elm.lcf OpenEdge ABL.lcf MIB files (SNMP protocol).lcf Brainfuck.lcf Apache config.lcf Arduino.lcf Groovy.lcf F#.lcf FoxPro.lcf Puppet.lcf MSVS_Solution.lcf Swift.lcf ASAP2_database.lcf ASAP2_Meta_Language.lcf Julia.lcf AppleScript.lcf R.lcf Dart.lcf Scheme.lcf Fortran.lcf WSH_script.lcf CMake.lcf Stylus.lcf Jade.lcf Text_with_indentation.lcf PostScript.lcf Logfiles.lcf Haxe.lcf Caml.lcf Regular_expressions.lcf WinBuilder_script.lcf SQL_White.lcf SQL_Blue.lcf RPG_IV.lcf RPG_IV_(Free_Syntax).lcf PAX_Pascal.lcf Parser3.lcf OneC_(1C).lcf NSL_Assembler.lcf nnCron.lcf MySQL_Stored_Procedures.lcf MacroScript_(Macro_Sheduler).lcf JCL.lcf Gold_Parser.lcf Adobe_Flash.lcf XSLT.lcf VHDL.lcf T-SQL.lcf Smalltalk.lcf Rexx.lcf PL_SQL.lcf Modula 2.lcf KiXtart.lcf IDL language.lcf IDL files.lcf Harbour.lcf Graphviz.lcf GAMS.lcf Forth.lcf Factor.lcf Euphoria.lcf Eiffel.lcf CodeVisionAVR.lcf Cobol.lcf Clipper.lcf Clarion.lcf Ada (.ads).lcf Ada.lcf Acu Cobol.lcf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值