摘要: 软件开发的一个不变真理是:change!库与框架无法帮助我们将应用组织成容易理解、容易维护、具有弹性的架构,所以需要设计模式策略模式 定义了算法族,分别封装起来(封装在一组类中,可以被轻易的扩充与改变),让它们之间可以相互替换。此模式让算法的改变独立于使用算法的客户。设计原则:1、“封装变化”。找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码放在一起。2、针对接口编程,而不是针对实现编程。3、对用组合,少用继承。(组合是运行时动态调用,可以在运行时动态改变行为,因为我们可以更换不同的实现。继承是编译时静态决定了的)组 合 、继 承 对比1、组合(优点):不破坏封装,整体类 阅读全文
posted @ 2013-03-29 16:32 windlaughing 阅读(565) 评论(0) 推荐(0) 编辑
摘要: Servlet工作原理一、Servlet生命周期分为三个阶段:1、初始化阶段,调用init()方法2、响应客户请求阶段,调用service()方法3、终止阶段,调用destroy()方法二、Servlet初始化阶段,在下列时刻Servlet容器装载Servlet:1、Servlet容器启动时自动装载某些Servlet,这些Servlet在web.xml文件中的内添加了如下代码:12、在Servlet容器启动后,客户首次向Servlet发送请求。3、Servlet类文件被更新后,重新装载Servlet。三、Servlet接收和响应客户请求的过程: 1、首先客户发送一个请求。 2、Servle.. 阅读全文
posted @ 2013-03-29 15:56 windlaughing 阅读(2162) 评论(0) 推荐(0) 编辑
摘要: 通过实验来验证Servlet、Filter和Listener的调用顺序、生命周期。1、示例项目目录结构:web.xml edu.shao.webapp.sample.listener.MyServletRequestListener edu.shao.webapp.sample.listener.MyServletContextListener ResponseFilter edu.shao.webapp.sample.filter.ResponseFilter ... 阅读全文
posted @ 2013-03-29 11:50 windlaughing 阅读(3198) 评论(0) 推荐(0) 编辑
摘要: 1、获得Logger实例import org.apache.logging.log4j.Logger;Logger logger=LogManager.getLogger( “logger的名字” );Logger logger=LogManager.getLogger(HelloWorld.class); (1)The LogManager will locate the appropriate LoggerContext and then obtain the Logger from it. (2)The logger simply has a name and is associated 阅读全文
posted @ 2013-03-28 17:18 windlaughing 阅读(673) 评论(0) 推荐(0) 编辑
摘要: 继承(泛化) generalization [,dʒenərəlɪ'zeɪʃən]指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性;实现 realization [,ri:əlɪ'zeɪʃən]指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性依赖dependency 阅读全文
posted @ 2013-03-27 11:41 windlaughing 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 用位来编码整数的两种方式:一种只能表示非负数,一种能表示负数、零、正数。1、整型数据类型C语言支持多种整型数据类型(表示有限范围的正数),每种类型都用关键字来指定大小:char、short、int、long、long long,同时还可以指定数字是非负数(声明为unsigned)。字节:char 1字节short 2字节int 4字节long 4字节/8字节long long 8字节范围:(w二进制位)有符号(默认)大小: -2^(w-1) ~ 2^(w-1) - 1无符号(unsigned)大小: 0 ~ 2^w - 1C和C++都支持有符号(默认)和无符号数,java只支持有符号数。2、整 阅读全文
posted @ 2013-03-27 10:28 windlaughing 阅读(1194) 评论(0) 推荐(1) 编辑
摘要: JDK: Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。 最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比SUN的JDK高. 阅读全文
posted @ 2013-03-27 09:59 windlaughing 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 摘自javax.servlet.*类的javadocinterface javax.servlet.ServletDefines methods that all servlets must implement.A servlet is a small Java program that runs within a Web server. Servlets receive and respond to requests from Web clients, usually across HTTP(the HyperText Transfer Protocol)To implement this 阅读全文
posted @ 2013-03-27 09:43 windlaughing 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 如果初学 Java Web 开发,请远离各种开发框架,应该从Servlet 开发,学习java web应用最本质的内容。 Servlet 是 Java Web 技术的核心基础,掌握 Servlet 的工作原理是成为一名合格的 Java Web 技术开发人员的基本要求。 Servlet和Servlet容器的关系像子弹和抢的关系,彼此依存,但又独立发展,它们通过标准化接口相互协作。选择一个你喜爱的Servlet容器,或者说大一点就是应用服务器,推荐 Tomcat 、Resin 或者 Jetty 这些轻量级的产品。这三个产品下载 zip 包解压后就可以用了。不建议使用.exe格式的安装版... 阅读全文
posted @ 2013-03-27 09:37 windlaughing 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 通过4个java示例揭示java泛型的擦除本质 阅读全文
posted @ 2013-02-22 11:12 windlaughing 阅读(367) 评论(0) 推荐(0) 编辑