摘要:
软件开发的一个不变真理是:change!库与框架无法帮助我们将应用组织成容易理解、容易维护、具有弹性的架构,所以需要设计模式策略模式 定义了算法族,分别封装起来(封装在一组类中,可以被轻易的扩充与改变),让它们之间可以相互替换。此模式让算法的改变独立于使用算法的客户。设计原则:1、“封装变化”。找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码放在一起。2、针对接口编程,而不是针对实现编程。3、对用组合,少用继承。(组合是运行时动态调用,可以在运行时动态改变行为,因为我们可以更换不同的实现。继承是编译时静态决定了的)组 合 、继 承 对比1、组合(优点):不破坏封装,整体类 阅读全文
摘要:
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.. 阅读全文
摘要:
通过实验来验证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 ... 阅读全文