自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(685)
  • 资源 (14)
  • 收藏
  • 关注

原创 Tomcat中的ssl安全信道的实现

为了实现https协议通信,tomcat需要利用JSSE把SSL/TLS协议集成到自身系统上,通过上一节我们知道不同的厂商可以实现自己的JSSE,而tomcat默认使用的是以前sun公司开发实现的包而且由JDK自带。Tomcat实现http及https通信的基础是什么?其实http与https的不同就是在创建通信套接字服务器时的不同,http是没有任何加密措施的套接字服务器,而https是靠嵌

2014-11-03 23:46:31 4859

原创 tomcat启动批处理——setclasspath.bat

除了上面两个批处理,还有一个比较重要的脚本,即是setclasspath.bat,它主要负责寻找、检查JAVA_HOME和JRE_HOME两个变量。********************************************************************************************if ""%1"" ==""debug"" goto nee

2014-10-31 22:15:53 3296

原创 tomcat启动批处理——catalina.bat

这个批处理才是tomcat服务器启动跟关闭的核心脚本。其中包括。。。。(各种变量),此节将详细讲解这个批处理的逻辑。先看看第一部分脚本:********************************************************************************************if not ""%1"" == ""run"" goto main

2014-10-27 20:58:15 5200

原创 tomcat启动批处理——startup.bat

从文件命名上看就知道这是一个启动批处理,这个批处理的主要功能就是为了找到另一个批处理catalina.bat,并且执行catalina.bat。一开始就用if "%OS%" == "Windows_NT" setlocal 判断系统是否为Windows_NT,如果是的话则使用setlocal命令,此命令表示之后所有对环境变量的改变只限于该批处理文件,要还原原先的设置可以执行endlocal,如

2014-10-23 19:56:57 5159

原创 Tomcat的系统安全管理

Tomcat是一个Web容器,我们开发的Web项目运行在Tomcat平台,这就好比将一个应用嵌入到一个平台上面运行,要使嵌入的程序能正常运行,首先平台要能安全正常运行。并且要最大程度做到平台不受嵌入的应用程序影响,两者在一定程度上达到隔离的效果。Tomcat与Web项目也是要最大程度隔离,使Tomcat平台足够安全。我们先看看Tomcat可能存在哪些安全威胁。(1) 在web应用的jsp页

2014-10-20 19:58:21 4164 1

原创 tomcat如何避免遭遇ClassNotFoundException

在Tomcat中为什么创建类加载器后马上就Thread.currentThread().setContextClassLoader(catalinaLoader)?这里主要是为了避免后面加载类时加载失败。下面将举一个典型的例子说明如何利用URLClassLoader加载指定的jar包,并且解析由此引出的加载失败问题。首先,定义一个提供服务的接口,并且打包成TestInterface.jar。

2014-10-19 00:31:29 7181 5

原创 Java并发框架——AQS之如何使用AQS构建同步器

AQS的设计思想是通过继承的方式提供一个模板让大家可以很容易根据不同场景实现一个富有个性化的同步器。同步器的核心是要管理一个共享状态,通过对状态的控制即可以实现不同的锁机制。AQS的设计必须考虑把复杂重复且容易出错的队列管理工作统一抽象出来管理,并且要统一控制好流程,而暴露给子类调用的方法主要就是操作共享状态的方法,以此提供对状态的原子性操作。一般子类的同步器中使用AQS提供的getState、s

2014-10-13 21:13:22 4394 1

原创 Java并发框架——AQS之原子性如何保证?

在研究AQS框架时,会发现这个类很多地方都使用了CAS操作,在并发实现中CAS操作必须具备原子性,而且是硬件级别的原子性,java被隔离在硬件之上,明显力不从心,这时为了能直接操作操作系统层面,肯定要通过用C++编写的native本地方法来扩展实现。JDK提供了一个类来满足CAS的要求,sun.misc.Unsafe,从名字上可以大概知道它用于执行低级别、不安全的操作,AQS就是使用此类完成硬件级

2014-10-11 20:58:45 3618

原创 乐观的并发策略——基于CAS的自旋

悲观者与乐观者的做事方式完全不一样,悲观者的人生观是一件事情我必须要百分之百完全控制才会去做,否则就认为这件事情一定会出问题;而乐观者的人生观则相反,凡事不管最终结果如何,他都会先尝试去做,大不了最后不成功。这就是悲观锁与乐观锁的区别,悲观锁会把整个对象加锁占为自有后才去做操作,乐观锁不获取锁直接做操作,然后通过一定检测手段决定是否更新数据。这一节将对乐观锁进行深入探讨。上节讨论的Synchr

2014-09-09 20:30:51 5869 3

原创 合成/聚合复用原则(CARP)

组合/聚合复用原则(Composite/Aggregate Reuse Principle或CARP),就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。这两种都是关联关系的一种,聚合表示整体与部分的关系,部分可以脱离整体作为独立个体存在;组合是一种更强的聚合,部分组成整体,但部分不可作为独立个体单独存在,部分的生命周期不能超过整体

2014-09-07 19:34:17 2053

原创 悲观的并发策略——Synchronized互斥锁

volatile既然不足以保证数据同步,那么就必须要引入锁来确保。互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁释放后才能重新进行竞争。对于java开发人员,我们最熟悉的肯定就是用synchronized关键词完成锁功能,在涉及到多线程并发时,对于一些变量,你应该会毫不犹豫地加上synchronized去保证变

2014-09-05 19:02:12 4660

原创 ISP(Interface Segregation Principle),接口隔离原则

ISP(Interface Segregation Principle),接口隔离原则 它要求如下:①  一个类对另一个类的依赖性要建立在最小接口上。②  使用多个专门的接口比使用单一的总接口要好。③  没有关系的接口不可合并成一个臃肿的大接口。④  对于臃肿的大接口应分成几个合适的小接口。 接口分离方法:1、使用委托分离接口:把请求委托给别的接口的实现类来完成

2014-09-03 14:53:52 1750

原创 volatile足以保证数据同步吗

上一节已经了解了java内存模型,JMM为了提高执行性能,引入了工作内存和主存两个概念,在继续讨论之前必须先搞清四种存储介质:寄存器、高级缓存、RAM和ROM。RAM与ROM大家都比较熟悉了,可以看成是我们经常说的内存与硬盘,寄存器属于处理器里面的一部分,而高级缓存cache是CPU设计者为提高性能引入的一个缓存,也可以说是属于处理器的一部分。在利用CPU进行运算时必定涉及操作数的读取,假如C

2014-09-02 20:42:43 3694 1

原创 多线程并发之java内存模型JMM

多线程概念的引入是人类又一次有效压寨计算机的体现,而且这也是非常有必要的,因为一般运算过程中涉及到数据的读取,例如从磁盘、其他系统、数据库等,CPU的运算速度与数据读取速度有一个严重的不平衡,期间如果按一条线程执行将会在很多节点产生阻塞,使计算效率低下。另外,服务器端是java最擅长的领域,作为服务器必须要能同时响应多个客户端的请求,同样需要多线程的支持。在多线程情况下,高并发将带来数据的共享与竞

2014-08-31 20:40:17 3532

原创 协议系列之HTTP协议

什么是HTTP\HTTPSHTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。HTTP协议用于从WWW服务器传输超文本到本地浏览器的传输协议,它能使浏览器更加高效,使网络传输减少,保证计算机正确快速地传输超文本文档。现在我们普遍使用的版本是HTTP1.1。HTTP是一个应用层协议,它由请求和响应组成,是一个标准的B/S模型;它也是一个

2014-08-26 18:52:41 2686

原创 协议系列之TCP/IP协议

根据前面介绍的几种协议,将IP协议、TCP协议、UDP协议组合起来,于是便有了TCP/IP协议。现在很多的应用的通信都是建立在TCP/IP协议的基础上,运用非常广泛,很有必要对其学习一下。打个不太恰当的比方,TCP/IP协议可以看成是邮局与邮递员的关系(实际TCP/IP协议族会包含四层,应用层、传输层、网络层、链路层)。这个协议族中的IP协议定位到哪台计算机,而具体到这台计算机的哪个端口(应用

2014-08-23 19:17:49 2572

原创 协议系列之UDP协议

上节说的TCP协议虽然提供了可靠的传输,但是也有一个缺点,发送速度慢。那么有没有一种协议能快速发送的呢?这节要讨论的就是UDP协议,它提供了更加快的发送速度,但也牺牲了可靠性,它是一种无连接的传输协议。比起TCP,UDP更像是我们用手机发送短信,只管发送出去,但不能保证对方收到,不会建立连接,也没有确认环节。图2-2-4-1为UDP协议报文结构。比起TCP,UDP报文的结构相对简单,只有源端口

2014-08-21 21:53:40 2266

原创 协议系列之TCP协议

3、TCP协议从上一节我们了解了什么是IP协议,以及IP协议的一些特性,利用IP协议传输都是单向的,不可靠的,无连接状态的。正是这些特性,于是便产生了TCP协议。TCP协议属于传输层,在IP协议网络层之上,竟然IP协议不可靠,那就必须要在其上多一个TCP协议以实现传输的可靠性。就像我们寄出一封信,如果对方不回信,不通过别的渠道告诉你,你永远都无法保证这封信能准确送到对方手上。同样,TCP协议采

2014-08-19 20:13:48 2417

原创 协议系列之IP协议

1、协议协议(protocol)的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。两个终端相互通信时双方达成的一种约定,规定了一套通信规则,双方通信必须遵守这些规则。这些规则规定了分组报文的交换方式、报文的结构、报文每部分所代表的意思(例如从n位到m位表示目的地址),以及规定了怎样解析次协议的报文。举个例子,我们打开浏览器后,输入http://www.baidu.com,此时即

2014-08-18 22:38:08 1807

原创 非阻塞IO服务器模型

我们来考虑一个情形,你跟千千万万个玩家是魔兽世界的超级粉丝,每周末准时组团打boss。每当周末游戏服务器就亚历山大,因为起码几十万用户同时在线。如果用我们的多线程阻塞服务器作为游戏服务器是否可行呢?先分析游戏服务器有哪些特点:①  网络游戏并非像网页一样,打开一旦下载完就可以关闭连接结束。网游必须是有一个持久有状态的连接,每一个客户端都需要跟服务器存在一个持久的连接,以便快速及时发送消息。而随

2014-08-15 22:34:01 2832

原创 阻塞IO服务器模型之多线程服务器模型

针对单线程服务器模型的特点,我们可以对其进行改进,使之能对多个客户端同时进行响应。最简单的改进即是使用多线程(或多进程)服务器模型,在应用层级别,我们一般采用多线程模式。多线程能让多个客户端同时请求,并能几乎同时对这些请求进行响应,而不用排队一个一个处理,能同时为多个客户端提供一问一答的服务。图2-6-1-2 多线程阻塞服务器模型 多线程服务器模型核心就是利用多线程机制,为每个

2014-08-13 20:27:11 2666

原创 阻塞IO服务器模型之单线程服务器模型

单线程服务器模型是最简单的一个服务器模型,几乎我们所有程序员在刚开始接触网络编程(不管是B/S结构还是C/S结构)都是从这个简单的模型开始。这种模型只提供同时一个客户端访问,多个客户端访问必须要等到前一个客户端访问结束,一个一个排队,即提供一问一答服务。图2-6-1-1 单线程阻塞服务器模型     图2-6-1-1展示了单线程阻塞服务器是怎样响应客户端的访问。首先,服务器必须

2014-08-12 20:11:30 2664

原创 Java安全管理器——SecurityManager

总的来说,Java安全应该包括两方面的内容,一是Java平台(即是Java运行环境)的安全性;二是Java语言开发的应用程序的安全性。由于我们不是Java本身语言的制定开发者,所以第一个安全性不需要我们考虑。其中第二个安全性是我们重点考虑的问题,一般我们可以通过安全管理器机制来完善安全性,安全管理器是安全的实施者,可对此类进行扩展,它提供了加在应用程序上的安全措施,通过配置安全策略文件达到对网络、

2014-08-11 20:11:18 8222

原创 java类加载器——ClassLoader

Java的设计初衷是主要面向嵌入式领域,对于自定义的一些类,考虑使用依需求加载原则,即在程序使用到时才加载类,节省内存消耗,这时即可通过类加载器来动态加载。如果你平时只是做web开发,那应该很少会跟类加载器打交道,但如果你想深入学习tomcat服务器的架构,它是必不可少的。所谓类加载器,就是用于加载Java类到Java虚拟机中,它负责读取Java字节码,并转换成java.lang.Class类

2014-08-10 19:08:52 2265

原创 Java命名和目录接口——JNDI

JNDI即Java命名和目录接口(JavaNaming and Directory Interface),它属于J2EE规范范畴,是J2EE的核心技术之一,提供了一组接口、类和关于命名空间的概念。JDNI是provider-based技术,它暴露一个API和一个服务供应接口(SPI)。它将名称和对象联系起来,使我们可以用名称访问对象。我们可以把JNDI简单地看成是里面封装了一个name到实体对象的

2014-08-08 20:36:43 4230 1

原创 Java安全套接字扩展——JSSE

上节已经介绍了SSL/TLS协议的通信模式,而对于这些底层协议,如果要每个开发者都自己去实现显然会带来不必要的麻烦,正是为了解决这个问题Java为广大开发者提供了Java安全套接字扩展——JSSE,它包含了实现Internet安全通信的一系列包的集合,是SSL和TLS的纯Java实现,同时它是一个开放的标准,每个公司都可以自己实现JSSE,通过它可以透明地提供数据加密、服务器认证、信息完整性等功能

2014-08-06 20:43:29 4250 2

原创 tomcat中http与https协议socket工厂

tomcat中http与https协议socket工厂

2014-08-06 20:23:33 1971

转载 SSL协议相关证书文件

密钥:我理解是公钥+私钥的统称。密钥对:公钥(证书)和私钥成对存在。通信双方各持有自己的私钥和对方的公钥。自己的私钥需密切保护,而公钥是公开给对方的。在windows下,单独存在的公钥一般是后缀为.cer的文件A用自己的私钥对数据加密,发给B,B用A提供的公钥解密。同理B用自己的私钥对数据加密,发送给A后,A用B的公钥解开。公钥的两个用途:1。验证对

2014-08-03 14:33:07 1680

转载 信用卡3D验证相关资料

3D验证服务,是银行与VISA、MASTERCARD国际组织联合推出的为保障银行维萨及万事达信用卡持卡客户网上交易安全,防范网上伪冒交易的一项信用卡网上支付安全验证服务(维萨卡使用的验证服务叫“VERIFIED by VISA”简称“VbV”,万事达卡使用的验证服务叫“MasterCard SecureCode”)。3D 验证服务通过个性化信息的检核,确保您所购物的网站

2014-08-01 10:09:09 4301

原创 深度优先和广度优先

首先要理解搜索步,一个完整的搜索步包括两个处理a) 获得当前位置上,有几条路可供选择b) 根据选择策略,选择其中一条路,并走到下个位置相当于在漆黑的夜里,你只能看清你站的位置和你前面的路,但你不知道每条路能够通向哪里。 搜索的任务就是,给出初始位置和目标位置,要求找到一条到达目标的路径。深度优先就是,从初始点出发,不断向前走,如果碰到死路了,就往回走一步,尝试另一条路,直到发现了目标位

2014-07-23 09:40:44 2011 1

原创 支付安全探讨

支付安全探讨

2014-06-11 22:30:57 2021

原创 监控平台架构设计

监控平台架构设计

2014-05-29 23:31:56 11906

原创 paypal的IPN机制

paypal对接时发现有这么一个机制,看起来还不错,起到了防止篡改欺诈行为,保证了通信的安全性,但会增加几次通信。

2014-04-21 15:55:18 2318

原创 pipeline(管道)设计模式

2014-04-14 08:43:15 7789

原创 文章照片等数字资源版权自我保护方法

文章照片等数字资源版权自我保护方法 在互联网的世界,文档、照片、软件等等数字资源的版权都极其容易受到盗取,最终导致自己辛勤劳动的成果不能得到保护。由于在版权保护机构登记是要费用的,一般除了重大的一些成果,我们很少会自己承担这些费用。举一个很简单的例子,如果你写了一篇文章,然后你投了几个报社,最后某报社直接刊登了你的文章而拒绝给稿费,更可恨的是还口口声声说不是你写的,由于你未做任何措施,百口

2014-03-20 17:16:36 1802 1

原创 支付平台PCI认证整改

五大国际卡组织推出的PCI支付认证。支付平台改造方案。

2014-03-19 15:31:40 2857

原创 航空业常见风险校验维度

航空业常见风险校验维度

2014-03-18 08:53:06 2105

原创 风控系统架构设计

风控系统架构设计。

2014-03-17 14:30:46 13880

原创 动态可配置规则系统设计

利用drool规则引擎设计动态可配置规则系统,有类似设计的可以参考下。

2014-03-17 12:10:38 6356

原创 系统支付金额效能监控设计

下面是系统支付金额效能监控设计,做类似系统的人可以参考下。

2014-03-16 12:54:17 2750

The java.util.concurrent Synchronizer Framework

Doug Lea关于jdk里面并发同步器的实现。

2014-08-17

J2EE性能优化

J2EE性能优化

2013-09-06

Tomcat 架构 原理

Tomcat 架构 原理

2013-09-06

j2ee APIs 标准

JAVA EE APIs 标准 描述文档

2013-09-03

模仿GOOGLE自动提示功能

模仿GOOGLE自动提示功能 !

2010-08-06

extjs3.0API中文文档

ext3.0 API 中文文档 用ext的朋友可以下来查询

2010-08-01

extjs3.0API查询文档

extjs3.0API查询文档,有需要的朋友来下吧

2010-08-01

ssh2完整项目源代码

struts2完整项目源代码,可以下来学习,从整体体会ssh2

2010-07-30

struts2教程例子跟包

里面是struts2教程例子所需的包,学习受struts2的朋友可以下来看看

2010-07-30

最新的完整的ext包

这个是完整的ext包,开发ext的朋友来下

2010-07-30

struts2教程(简明扼要)

这个事struts2教程,简明,囊括了所有要点!现学现用.......

2010-07-25

内调焦望远镜课程设计

要做课程设计的同学们啊,来啊,内调焦望远镜课程设计

2010-06-03

ibatis教程 要的快点来下啊

ibatis教程 要的快点来下啊 请要的同学快来下

2010-06-03

空空如也

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

TA关注的人

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