- 博客(48)
- 收藏
- 关注
原创 会话跟踪技术
1. 什么是会话 客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话 2. 什么是会话跟踪 对同一个用户对服务器的连续的请求和接受响应的监视 3. 为什么需要会话跟踪 浏览器与服务器之间的通信是通过HTTP协议进行通信的,而HTTP协议是”无状态”的协议,它不能保存客户的信息,即一次响应完成之后连接就断开了,下一次的请求需要重新连接,这样就需要判...
2014-04-16 11:15:07 124
原创 数字证书原理
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分...
2014-03-25 17:46:16 113
原创 单链表的就地逆置
分析: 可以用交换数据的方式来达到逆置的目的。但是由于是单链表,数据的存取不是随机的,因此算法效率太低。可以利用指针改指来达到表逆置的目的。具体情况入下: (1)当链表为空表或只有一个结点时,该链表的逆置链表与原表相同。 (2)当链表含2个以上结点时,可将该链表处理成只含第一结点的带头结点链表和一个无头结点的包含该链表剩余结点的链表。然后,将该无头结点链表中的所有结点顺着链表指针,由前往后...
2014-02-28 14:34:37 182
原创 基于注解的Spring MVC的URL与Controller映射关系提取的实现分析
在Spring MVC中,定义了多种URL与Controller映射关系的描述方式。在基于注解的Spring MVC中,采用Java注解的方式描述URL与Controller之间的关系,那么Spring MVC是如何获取这些映射关系,并将其注册到handlerMap中呢?这些问题将是本文研究的重点。 Spring MVC使用HandlerMapping接口抽象表示通过请求获取Con...
2014-01-21 18:27:48 195
原创 filter过滤器详解
一、Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动,并依次通过过滤器链,最后把请求/响应交给请求的Web资源处理。请求信息在过滤器链中可以被修改,也可以根据条件让请求不发往资源处理器,并直接向客户机发回一个...
2014-01-20 18:05:35 180
原创 利用JAVA反射原理手动实现一个拦截器(Interceptor)
实现一个拦截器必须要实现一下几个类:1 目标类接口:目标类要实现的接口。package com.lanvis.reflect;public interface ITarget { public void doSthing(); public void doOthing();}2 目标类:目标类是要被拦截的类。它实现了目标类接口。package com.lanvis.ref...
2014-01-14 14:29:57 455
原创 SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 一、定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerIntercepto...
2014-01-13 14:42:30 69
原创 Spring MVC 教程,快速入门,深入分析
Spring_MVC_教程_快速入门_深入分析V1.1.pdfSpringMVC核心配置文件示例.rar 作者:赵磊博客:http://elf8848.iteye.com 目录 一、前言二、spring mvc 核心类与接口三、spring mvc 核心流程图四、spring mvc DispatcherServlet说明五、spring mvc 父子上...
2014-01-13 14:42:00 78
原创 模板方法(Template Method)模式
在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。Template Method提供了这种情况的一个实现框架。 Template Method模式是采用继承的方式实现这一点:将逻辑(算法)框架放在抽象基类中,并定义好细节的接口,子类中实现细节。 Strat...
2014-01-13 11:28:46 82
原创 线程池和数据库连接池的原理
本文我们简单介绍了一下数据库连接池和线程池的工作原理,希望能够对您有所帮助。 当客户端请求的数据量比较大的时候,使用线程池可以节约大量的系统资源,使得更多的CPU时间和内存可以高效地利用起来。而数据库连接池的使用则将大大提高程序运行效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。本文我们主要就介绍一下线程池和数据库连接池的原理,接下来我们一起来了解一下这一部分...
2014-01-08 11:14:40 84
原创 Java中数据库连接池原理机制的详细讲解
连接池的基本工作原理 1、基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效管理。我们知道,对于共享资源,有一个很著名的设计模式:资源池 (Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需...
2014-01-08 11:01:14 73
原创 面向对象设计的SOLID原则
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。SRPThe Single Responsibility Principle 单一责任原则OCPThe Open Closed Principle 开放封闭原则LSPThe Liskov Substitution...
2013-12-31 15:10:01 88
原创 Servlet
Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该W...
2013-12-20 14:02:39 79
原创 Ehcache 整合Spring 使用页面、对象缓存
Ehcache在很多项目中都出现过,用法也比较简单。一般的加些配置就可以了,而且Ehcache可以对页面、对象、数据进行缓存,同时支持集群/分布式缓存。如果整合Spring、Hibernate也非常的简单,Spring对Ehcache的支持也非常好。 EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布式的Cache,可以作为Hibernate的缓存插件。同...
2013-12-03 16:44:43 80
原创 【转】Ehcache详细解读
Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大,最初知道它,是从Hibernate的缓存开始的。网上中文的EhCache材料 以简单介绍和配置方法居多,如果你有这方面的问题,请自行google;对于API,官网上介绍已经非常清楚,请参见官网;但是很少见到特性说明和对实现 原理的分析,因此在这篇文章里面,我会详细介绍和分析EhCache的特性,加上一些自己的理解...
2013-12-03 16:30:57 110
原创 Tomcat的Session管理(一) - Session的生成
Session对象的创建一般是源于这样的一条语句: Session session = request.getSession(false);或者Session session = request.getSession();如果不在乎服务器压力可能多那么一点点的话。 在Tomcat的实现中,这个request是org.apache.catalina.connector.Request类的包装类 o...
2013-12-03 14:53:37 127
原创 构造函数总结
每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。 一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因...
2013-11-15 00:17:51 90
原创 垃圾回收
关于java中对象的循环引用问题例子: public void buidDog() { Dog newDog = new Dog(); Tail newTail = new Tail(); newDog.tail = newTail; newTail.dog = new...
2013-11-08 16:28:05 77
原创 servlet、filter、interceptor的执行顺序
1)servlet和filter的区别 Filter可认为是Servlet的一种“变种”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。它与Servlet的区别在于:它不能直接向用户生成响应。完整的流程是:Filter对用户请求进行预处理,接着将请求交给 Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。 2...
2013-11-04 16:49:43 202
原创 【MySql学习系列】触发器
本文讲述MySql5.x中触发器的使用,包括创建触发器、删除触发器和查询触发器的相关知识,对其语法、使用举例和注意事项进行了详细说明。一.触发器概述触发器是一种特殊类型的存储过程,它主要是通过事件进行触发而被执行的(存储过程可以通过存储过程名字而被直接调用)。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,就会自动执行触发器所定义的SQL 语句。触发器...
2013-10-25 15:26:33 162
原创 mysql聚合函数
group_concat 可以对分组查询后的值进行拼接,如select a group_concat(b) from z group by a; 就会按a列分组,b列对应聚合结果以逗号进行分隔 select 与 case结合使用最大的好处有两点,一是在显示查询结果时可以灵活的组织格式,二是有效避免了多次对同一个表或几个表的访问。 可以完成行转列的操作下面举个简单的例子来说...
2013-10-25 13:36:41 154
原创 MYSQL--事务处理
事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务! 删除的SQL语句delete from userinfo where ~~~delete from mail where ~~dele...
2013-10-24 17:12:39 57
原创 Java中的Enum的使用与分析
示例:public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me"); private String context; private String getContext(){ return this.context; ...
2013-10-23 23:49:40 52
原创 linux 软连接和硬链接的区别
(1)软连接可以 跨文件系统 ,硬连接不可以 。实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt /root/bb 连接成功 。ln aa.txt /root/bb 失败 。(2)关于 I节点的问题 。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加 ,只要结点的连接数不是 0,文件就一...
2013-10-15 10:18:10 60
原创 mysql常用命令
describe tablename; 显示表的列结构show status , 用于显示广泛的服务器状态信息show create database name, 显示创建数据库的sql语句show create table name , 显示创建表的sql语句select distinct columnname , 选择不同值的列表limit n , m n...
2013-10-14 11:30:00 56
原创 Java enum的用法详解
用法一:常量在JDK1.5 之前,我们定义常量都是: public static fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switchJDK1.6之前的switch语句只支持i...
2013-10-11 17:49:48 93
原创 java关于ServletConfig FilterConfig什么用
具体的使用方法你可以在google上搜索 “filter 过滤器”,FilterConfig可以获取部署描述符文件(web.xml)中分配的过滤器初始化参数。针对你的问题回答,结果就是说FilterConfig可以获得web.xml中,以 filter 作为描述标签内的参数。定义:FilterConfig对象提供对servlet环境及web.xml文件中指派的过滤器名的访问。FilterCo...
2013-10-10 13:53:39 129
原创 JAVA中重写equals()方法为什么要重写hashcode()方法说明
重写hashCode()时最重要的原因就是:无论何时,对同一个对象调用hashCode()都应该生成同样的值。如果在将一个对象用put()方法添加进HashMap时产生一个hashCode()值,而用get()取出时却产生了另外一个 hashCode()值,那么就无法重新取得该对象了。所以,如果你的hashCode()方法依赖于对象中易变的数据,那用户就要小心了,因为此数据发生变化时,h...
2013-10-10 10:50:56 83
原创 ssl--https握手过程
主要介绍SSL握手协议以建立安全通信通道的过程。1) 客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。2) 服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。3) 客户利用服务器传过来的信息验证服...
2013-10-08 18:05:39 76
原创 Rest 笔记
幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是:Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the s...
2013-10-08 16:04:15 81
原创 斐波那契数列三种解法及分析
什么是斐波那契数列? 一个函数.输入n,将返回斐波那契(Fibonacci)数列的第n项。波那契数列的定义如下 F(0) = 0; F(1) = 1; F(n) = F(n-1) + F(n-2) n>1; 解法一:效率低下 很多C语言教科书在讲述递归函数的时候,都会用...
2013-09-29 14:18:19 410
原创 MyIsam和InnoDb引擎的区别
My ISAMInnoDBRequired full text SearchYes Require Transactions Yesfrequent select queriesYes frequent insert,update,delete YesRow Locking (multi proc...
2013-09-28 11:38:24 61
原创 Struts2返回JSON数据的具体应用范例
早在我刚学Struts2之初的时候,就想写一篇文章来阐述Struts2如何返回JSON数据的原理和具体应用了,但苦于一直忙于工作难以抽身,渐渐的也淡忘了此事。直到前两天有同事在工作中遇到这个问题,来找我询问,我又细细地给他讲了一遍之后,才觉得无论如何要抽一个小时的时间来写这篇文章,从头到尾将Struts2与JSON的关系说清楚。 其实网络中,关于这个问题的答案已是海量,我当初...
2013-09-28 10:28:01 62
原创 mysql查找执行效率慢的SQL语句
一些小技巧1. 如何查出效率低的语句?在MySQL下,在启动参数中设置 --log-slow-queries=[文件名],就可以在指定的日志文件中记录执行时间超过long_query_time(缺省为10秒)的SQL语句。你也可以在启动配置文件中修改long query的时间,如: # Set long query time to 8 seconds long_query_time=...
2013-09-27 16:37:23 178
原创 spring下iBATIS事务管理-使用AOP XML配置管理
<!-- 事务配置--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" />
2013-09-27 14:07:25 103
原创 Java实现链表的反转
public class Node{ private Node next; private String value; /** * */ public Node(String value) { this.value = value; } public Node getNext() { ...
2013-09-27 13:23:07 64
原创 Spring AOP 详解
此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。对部分函数的调用进行日志记录,用于观...
2013-09-27 11:35:17 69
原创 Backbone之旅:前端MVC架构初体验(上)
原文链接:http://heroicyang.com/2012/08/08/to-backbone-tutorial-1/最近一段时间来,才算是真正的开始深入学习JavaScript,收获颇丰。也首次领略了前端MVC架构的风采,现在前端MVC的类库和框架越来越多,在经过初步的评估之后,决定先学习备受推崇的Backbone。以前自己做的一些Web应用,基本上都是按照非常传统的方式:1.服...
2013-09-24 17:42:10 137
原创 深入浅出Mybatis-分页
Mybatis的分页功能很弱,它是基于内存的分页(查出所有记录再按偏移量和limit取结果),在大数据量的情况下这样的分页基本上是没有用的。本文基于插件,通过拦截StatementHandler重写sql语句,实现数据库的物理分页。本文适配的mybatis版本是3.2.2。准备为什么在StatementHandler拦截在深入浅出MyBatis-Sqlsession章节介绍了一次...
2013-09-24 14:07:59 76
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人