http://c7sky.com/works/css3slides/#1】的更多相关文章

http://c7sky.com/works/css3slides/#1 css3 学习…
不错的:http://c7sky.com/works/css3slides/#28…
1. 背景 注解可以减少代码的开发量,spring提供了丰富的注解功能.我们可能会被问到,spring的注解到底是什么触发的呢?今天以spring最常使用的一个注解autowired来跟踪代码,进行debug. 2. Autowired的定义及作用 作用:Marks a constructor, field, setter method or config method as to be autowired by Spring's dependency injection facilities.…
[Unity][Heap sort]用Unity动态演示堆排序的过程 How Heap Sort Works 最近做了一个用Unity3D动态演示堆排序过程的程序. I've made this app to show how heap sort works recently. 效果图(Demo) 一图抵千言. A picture paints a thousand words. 堆排序(Heap Sort) 堆排序总是建立这样一个二叉树:其父结点总大于其子结点. Step 1: The fir…
转载自 http://www.appcelerator.com/blog/2012/05/comparing-titanium-and-phonegap/ How PhoneGap Works As we mentioned previously, a PhoneGap application is a “native-wrapped” web application. Let’s explore how the web application is “wrapped”. Many native…
Saying that Java is nice because it works on every OS is like saying that anal sex is nice because it works on every gender.…
Java Memory Management, with its built-in garbage collection, is one of the language's finest achievements. It allows developers to create new objects without worrying explicitly about memory allocation and deallocation, because the garbage collector…
最近几篇是关于How tomcat works一书的读书笔记. 通过数个章节逐渐实现一个tomcat的功能. 源码下载地址:http://zhidao.baidu.com/share/7007af0fe074347e7c88d8c0a11c1f2b.html…
The Magic only works with total devotion of one's heart All tools and equipments are useless without passions.…
上一节说到StandardService负责启动其子组件:container和connector,不过注意,是有先后顺序的,先启动container,再启动connector,这一节先来看看container. 目录 Pipeline和Vavle StandardEngine类和StandardHost类 StandardContext类 总结 Pipeline和Vavle 在第二节(How Tomcat works — 二.tomcat启动(1))中没有介绍关于Pipeline和Vavle,因…
ADB (Android Debug Bridge): How it works? 2012.2.6 early draft Tetsuyuki Kobayashi What is ADB? If you are an Android builder, you have used adb logcat, adb shell. Even if you only use DDMS in Eclipse, adb is working under the hood. Using adb, you ca…
Why Deep Learning Works – Key Insights and Saddle Points A quality discussion on the theoretical motivations for deep learning, including distributed representation, deep architecture, and the easily escapable saddle point. By Matthew Mayo. This post…
在How Tomcat Works(十四)中,本人并没有对javax.servlet.Filter及javax.servlet.FilterChain做详细的描述,本文在这里做一下补充 FilterChain接口只有一个方法,方法声明如下: public void doFilter ( ServletRequest request, ServletResponse response ) throws IOException, ServletException; 在tomcat中,org.apac…
在前面的文章中,如果我们要启动tomcat容器,我们需要使用Bootstrap类来实例化连接器.servlet容器.Wrapper实例和其他组件,然后调用各个对象的set方法将它们关联起来:这种配置应用程序的方法有一个明显的缺陷,即所有的配置都必须硬编码.调整组件配置和属性值都必须要重新编译Bootstrap类.幸运的是,Tomcat的设计者使用了一种更加优雅的配置方式,即使用一个名为server.xml的XML文件来对应用程序进行配置.server.xml文件中的每个元素都会转换为一个java…
在前面的文章中,已经学会了如何通过实例化一个连接器和容器来获得一个servlet容器,并将连接器和容器相关联:但在前面的文章中只有一个连接器可用,该连接器服务8080端口上的HTTP请求,无法添加另一个连接器来服务诸如HTTPS之类的其他请求:此外,在前面的文章中的应用程序中有些缺憾,即缺少一种启动/关闭servlet容器的机制. org.apache.catalina.Server接口的实例表示Catalina的整个servlet引擎,囊括了所有的组件:它使用一个优雅的方式来启动/关闭整个系统…
本文接下来会介绍Host容器和Engine容器,在tomcat的实际部署中,总是会使用一个Host容器:本文介绍Host接口和Engine接口及其相关类 Host容器是org.apache.catalina.Host接口的实例,Host接口继承自Container接口, 其定义如下 public interface Host extends Container { public static final String ADD_ALIAS_EVENT = "addAlias"; publ…
本文接下来分析Context容器,Context容器实例表示一个具体的Web应用程序,其中包括一个或多个Wrapper实例:不过Context容器还需要其他的组件支持,典型的如载入器和Session管理器等. 在创建StandardContext实例后,必须调用其start()方法来为引入的每个HTTP请求服务:其中包括读取和解析默认的web.xml文件(该文件位于%CATALINA_HOME%/conf目录),该文件的内容会应用到所有部署到tomcat中的应用程序中:此外,还会配置验证器阀和许…
我们已经知道,在tomcat中有四种类型的servlet容器,分别为Engine.Host.Context 和Wrapper,本文接下来对tomcat中Wrapper接口的标准实现进行说明. 对于每个引入的HTTP请求,连接器都会调用与其关联的servlet容器的invoke()方法:然后,servlet容器会调用所有子容器的invoke()方法 这里面的流程通常是servlet容器调用其管道对象的invoke()方法,其管道对象的invoke()方法最后调用其基础阀,管道对象的基础阀里面会调用…
本文分析tomcat容器的安全管理,servlet技术支持通过配置部署描述器(web.xml文件)来对受限内容进行访问控制:servlet容器是通过一个名为验证器的阀来支持安全限制的,当servlet容器启动时,验证器阀会被添加到Context容器的管道中.在调用Wrapper阀之前,会先调用验证器阀,对当前用户进行身份验证:验证器阀会调用Context容器的Realm对象的authenticate()方法,传入用户输入的用户名和密码来对用户进行身份验证. Realm对象是用来对用户进行身份验证…
tomcat容器通过一个称为Session管理器的组件来管理建立的Session对象,该组件由org.apache.catalina.Manager接口表示:Session管理器必须与一个Context容器相关联(需要用到Context容器的相关上下文或方法). 默认情况下,Session管理器会将其所管理的 Session对象存放在内存中,不过在tomcat中,Session管理器也库将Session对象持久化,存储到文件存储器或通过JDBC写入到数据库中. 下面我们来分析具体实现,在serv…
本文接下来分析tomcat的类载入器,tomcat需要实现一个自定义的载入器,而不能使用系统类载入器 (1)限制serlvet访问当前运行的java虚拟机中环境变量CLASSPATH指明的路径下的所有类和库,而只允许载入WEB-INF/class目录及其子目录下的类,和从部署的库到WEB-INF/lib目录载入类 (2)提供自动重载的功能,即当WEB-INF/class目录或WEB-INF/lib目录下的类发生变化时,Web应用程序会重新载入这些类 我们先来回顾一下java的类载入器,当我们创建…
本文接下来分析tomcat的日志记录器,日志记录器是用来记录消息的组件,在tomcat中,日志记录器需要与某个servlet容器相关连:在org.apache.catalina.logger包下,tomcat提供了几种不同类型的日志记录器. tomcat中的日志记录器都必须实现org.apache.catalina.Logger接口 public interface Logger { public static final int FATAL = Integer.MIN_VALUE; publi…
本文接下来描述servlet容器是怎样管理其相关组件的生命周期的,首先本人描述一下事件监听模式,也可以称为观察者模式,该模式分为以下角色 即抽象主题角色 具体主题角色 抽象观察者角色及具体观察者角色,通常在主题角色里面维持一个观察者角色的聚集,并定义了对观察者角色的添加和删除方法:在主题角色事件发生时,通过迭代向这些观察者角色发布事件. 在tomcat容器中,管理其相关组件的生命周期即是基于事件监听模式实现的,相关接口和类为org.apache.catalina.Lifecycle接口.org.…
下面接着分析Context容器,该接口最重要的方法是addWrapper()方法与creatWrapper()方法,添加具体的子容器,这里是Wrapper容器实例 这里要分析的是一个简单的Context容器,它针对特定的客户端请求,通过映射器找到要处理该特定请求的子容器实例(Wrapper) 具体流程是,Context容器首先调用额外的阀,最后调用基础阀(这里是SimpleContextValve),在基础阀里面通过映射器找到要 处理该请求的子容器Wrapper实例,然后再调用子容器Wrappe…
本文接下来介绍并分析servlet容器,servlet容器是用来处理请求servlet资源,并为web客户端填充response对象的模块. servlet容器是org.apache.catalina.Container接口的实例,在tomcat中,有四种类型的容器,分别为Engine.Host .Context和Wrapper. Engine. 代表整个容器的servlet引擎.Host.代表一个拥有一定数量Context的虚拟主机.Context.代表一个Web项目.一个Context包含一…
本文继续分析HttpProcessor类,该类实现了org.apache.catalina.Lifecycle接口和java.lang.Runnable接口 我们先分析它的构造函数 /** * The HttpConnector with which this processor is associated. */ private HttpConnector connector = null; /** * The HTTP request object we will pass to our a…
本文接下来介绍tomcat的默认连接器,Tomcat中的默认连接器必须满足以下要求: 实现org.apache.catalina.Connector接口 负责创建实现org.apache.catalina.Request接口的Request对象 负责创建实现org.apache.catalina.Response接口的Response对象 org.apache.catalina.Connector接口最重要的方法是getContainer() .setContainer().creatReque…
Servlet容器有两个主要的模块,即连接器(connector)与容器(container),本文接下来创建一个连接器来增强前面文章中的应用程序的功能,以一种更优雅的方式来创建request对象和response对象;为了兼容Servlet 2.3和2.4,连接器这里创建的是javax.servlet.http.HttpServletRequest对象和javax.servlet.http.HttpServletResponse对象(servlet对象类型可以是实现javax.servlet.…
上文中描述的简单的服务器是不符合Servlet规范的,所以本文进一步描述一个简单的Servlet容器是怎么实现的 所以我们首先要明白Servlet接口规范,规范有不同版本,本人就先一视同仁了: public interface Servlet { public void init(ServletConfig config) throws ServletException; public ServletConfig getServletConfig(); public void service(S…
我们这些可怜虫,只有沿着大神的思路,这样我们才能进步得更快:因为我们不是跟大神处于同一级别上.所以我这里是参考<How Tomcat Works>这本英文版的大作来理解tomcat的工作原理 本人认为,Tomcat容器源码是学习java编程以及设计模式等的绝佳范例,深入理解其源码对我辈开发人员的编程水平提高大有裨益! 我们可以从该书指定的官方网址下载相关示例源码 http://www.brainysoftware.com,本文顺着作者的思路,介绍一个简单的web服务器 我们知道,web服务器是…