自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 Tomcat7源码解读(四) —— 类加载器1

综述:在上一节中分析了Tomcat的执行过程。这一节将分析,Tomcat启动以及请求处理过程中所涉及到的类与对象,是由谁加载的,Tomcat的类加载器的特点。 4.1 JAVA的类加载过程1)类加载load:从字节码二进制文件.class文件将类加载到内存将内存中的class放到运行时数据区的方法区内。类的初始化过程会在堆区建立一个java.lang.Class对象,用来封装该类相...

2013-08-24 11:52:34 179

原创 Tomcat7源码解读(三) —— 启动及请求处理过程

概述:上两节中分析了Tomcat7的静态结构。这篇将接受Tomcat的启动以及与Tomcat的请求处理过程。因为Tomcat启动与server.xml配置文件所决定,所以本文主要是默认情况下Tomcat7的启动过程。 一. 容器的启动过程UML图例说明:实心箭头表示同步调用;空心箭头表示异步调用。图例说明:1. 引导类Bootstrap负责引导,在其init方法内部创建...

2013-08-12 17:50:11 160

原创 Tomcat7源码解读(二) —— Connector处理器静态结构概述

Tomcat是一个WEB容器,也是一个Servlet容器。他需要处理来自客户端的HTTP请求,也需要处理来自WEB服务器(Apache)的AJP请求。对于不同的请求,Tomcat将接受到的Socket,封装成为相应的Request以及与Response对象,然后再转交给容器进行具体的处理。 Tomcat的设计非常的模块化,为了提高服务本身的可扩展性,Tomcat做了组建化的设计。也实现...

2013-08-11 21:13:09 167

原创 Tomcat7源码解读(一) —— 容器静态结构概述

概述: Tomcat源码解读已经有不少人已经发过各种文章了,大致看了下大多都是抄袭的。所以决定自己耐心从头到尾仔细看一遍,边看边写些博文。  在Tomcat的$CATALINA_HOME/conf/web.xml中默认配置了上图所示的内容。仔细阅读这个XML文件的内容就可以大致的看出Tomcat的各个容器组件之间的关系。要是想深入的了解各个组件的详细关系,并且对XML配置文件做充分的优...

2013-08-10 20:33:11 185

原创 事务管理(三)——JDBC事务管理的简单实现

概述: 为了学习事务的管理,实现了如下的一个简单版本的事务管理器,进行实验。该管理器简化了事务管理的各种异常类型的考虑。对于Transaction 管理为了实现数据一致性,对于数据库的JDBC编程通常需要在代码中显示的调用Connection方法的事务相关API来完成工作。常见的代码如下:[code="java"]public void doService(){ ...

2010-08-24 17:36:19 254

原创 事务管理(二)——SQL SERVER的事务管理

1.3 SQL SERVER 的事务管理1.3.1 SQL SERVER 2005的并发控制模型 SQL SERVER 提供了悲观并发控制模式和乐观并发控制模式。 悲观并发控制模式假定系统中存在足够多的数据修改操作以致任何确定的读操作都可能会受到由别的用户所制造的数据修改的影响。换言之,数据库系统具有悲观的行为并且假定冲突是会发生的。采用了锁机制实现占有被锁定的资源,在悲观并发环境...

2010-08-12 11:59:18 201

原创 事务管理( 一 )——事务管理基本概念

概述 事务控制是保证系统数据完整一致性的基础。也是企业应用系统必须解决的一个技术问题。不单是企业审计上需要,更重要是企业及时有效的通过数据监控企业当前状态的需要。所以对于一个企业级的应用数据的完整一致性是必须的。那么如何简单快速,而又可以从全局上充分的对系统的事务进行有效的控制就显得至关重要了。这里简述系统事务控制的基本概念(数据库的数据一致性问题,数据库的锁机制,数据库的隔离级别的实现)...

2010-08-05 18:07:54 425

原创 Hibernate的二级缓存

Hibernate的二级缓存 SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置 hibernate.cache.provider_class。如果使用查询缓存,加上 hibernate.cache.use_query_cache=true 缓存可以简单的看成一个Map,通过key在缓存里面找value。 Hiber...

2010-08-02 10:51:59 129

原创 浏览器缓存

1.1 浏览器的缓存应用1.1.1 概述 游览器缓存可以有效的解决同一客户端用户的多次访问的快速响应问题。一个客户可能多次访问同一个页面,使用了浏览器缓存,直接可以从客户的本地获取缓存的数据,从而可以有效减少用户的访问次数,从而减轻服务器的负担。最常用的是对于图片,JS,CSS, HTML等静态资源实现浏览器级别的缓存。1.1.2 浏览器缓存的结构 浏览器的缓存是基于HT...

2010-07-20 15:06:15 124

原创 Windows memory management study note(2)

虚拟内存使用之前需要了解系统内存管理信息和虚拟地址空间的相关信息。1.管理系统信息 —— 页面大小, 分配粒度 等基本的系统信息,CPU管理的信息。 使用函数: GetSystemInfo(LPSYSTEM_INFO psi)2.管理内存的状态信息 —— 物理内存大小, 页交换文件的大小 等内存相关的信息 使用函数: lobalMemoryStatus(LPMEMORYST...

2010-07-14 16:34:02 117

原创 Windows memory management study note(1)

32位Windows操作系统为每个进程提供了4GB的虚拟地址空间。 1.引入虚拟地址空间的原因操作系统管理多个进程,存在多个进程同时访问同一物理地址的可能,通过引入虚拟地址来简化进程对于物理地址的操作。每个进程都拥有了独立的4GB的地址空间,而不会相互干扰。2.方便虚拟地址空间的管理,Windows对虚拟地址空间进行了分区[b]NULL指针分区[/b] 范围:0x0000...

2010-07-08 13:32:07 282

原创 类的初始化与对象的初始化

class SelfCounter {  private static int count = 0;  private int id = count++;  public String toString() {    return "SelfCounter " + id;  }}class WithFinalFields {  final SelfCounter scf = new SelfCou

2007-09-08 10:51:00 827

Struts2 pdf

Strts2入门中文文档

2007-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除