`
lh870003574
  • 浏览: 23403 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
         本文主要结合观察者模式,讲述Tomcat的生命周期管理。Tomcat的生命周期管理机制设计的非常优雅,在Tomcat启动时,只需要启动一个Server组件,就会启动所有的容器及对应的组件,并且触发这些容器的监听者,完成启动过程的设置。可以说是“一键式”启动的。停止过程也是一样。          本文首先简单介绍Tomcat中容器,组件及监听类的功能。因为Tomcat的生命周期管理应用了观察者模式,所以接下来会分析观察者模式,最后结合观察者模式及Tomcat源代码,详细说明Tomcat的生命周期管理。 一、几种基本的容器,组件及事件监听类(Listener)
    在tomcat 源代码中,有这样一个实用类: org.apache.catalina.util.StringManager,基本上每个tomcat组件(如:connector, container, realm, loader, logger等)都会用到它。这是一个管理异常消息的helper class。       像tomcat这样的Servlet容器,异常消息无论是对系统管理员或者程序员都非常重要。管理员可以通过异常消息,快速定位错误。而对于程序异常,tomcat将异常消息封装到ServletException,来告知程序员Servlet中的错误。       Tomcat ...
GoF     定义:GoF(Gang of Four),中文名——四人组。GoF是一种设计模式。 GoF的起源   《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著(Addison-Wesley,1995)。这几位作者常被称为"四人组(Gang of Four)",而这本书也就被称为"四人组(或 GoF)"书。   在《设 ...
首先 classpath是指 WEB-INF文件夹下的classes目录解释classes含义:1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml2.存放模板文件 eg.actionerror.ftl3.存放class文件 对应的是项目开发时的src目录编译文件总结:这是一个定位资源的入口如果你知道开发过程中有这么一句话:惯例大于配置 那么也许你会改变你的想法对于第二个问题
ServletActionContext.getServletContext().getRealPath("/");
Comparator可以让我们对复杂的类型进行自定义排序,如按对象的某个属性降序排序,功能很强大,使用起来也方便 只需要简单的实现Comparator接口 定义: class ComparatorHDFileUserInfo implements Comparator<ScholatHDFileUseInfo>{       public int compare(ScholatHDFileUseInfo o1, ScholatHDFileUseInfo o2) {             return o1.getTotalSize().compareTo(o2.ge ...
  1、servletcontext主要用在servlet中,当然也可以在jsp中使用;  2、application只在jsp页面中使用;  3、application和servletcontext都保存容器的全局信息;  4、application是对servletcontext在jsp中应用的包装,因此它们其实表示的是同一个对象,用application保存的属性可以用servletcontext来读取,反之亦同;  5、在jsp中可以直接使用application,也可以用getServletContext()方法来获得servletcontext对象,此对象的使用和applicatio ...
具体的访问权限表如下: 对于在同一个包(package)中的类: 声明类型         被继承         被存取 default           可以             可以 public             可以             可以 protected       可以             可以 private           不可以         不可以 对于不在同一个包(package)中的类: 声明类型         被继承         被存取 default           不可以         不可以 public     ...
空字符串与null区别 " "分配了内存 ;null没有调用null的字符串的方法会抛空指针异常。""是一个字符串(String).它在内存中是存在的.它可以使用Object对象中的方法(如"".toString();"".equals()) 而null它是一 ...
package com.scnulh.util;   import java.util.List; import java.io.File; import java.io.FilenameFilter; import java.util.Arra
package com.scnulh.util;   import java.util.Arrays; import java.util.Collection;   public class PPrint {
package com.scnulh.util;   import java.util.List; import java.io.File; import java.io.FilenameFilter; import java.util.Arra
 Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。     流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。这时候你就可以想象数据好像在这其中“流”动一样。     Java中的流分为两种,一种是字 ...
Global site tag (gtag.js) - Google Analytics