- 博客(134)
- 资源 (4)
- 收藏
- 关注
转载 SpringMVC中使用Interceptor拦截器
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。 一、定义Interceptor实现类 SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在
2016-04-19 15:03:17
770
1
转载 注解(Annotation)--注解处理器
如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Anno
2014-08-10 18:54:06
897
转载 JDK动态代理实现原理
之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dynamic.proxy; import java.lang
2014-04-14 13:13:18
813
原创 JSP两种声明变量的区别
在JSP中用两种声明变量的方法,一种是在内,一种是在内。他们之间有什么区别呢?我们直接看一个JSP文件来理解。count.jsp代码如下:JSP DeclarationsJSP Declarations<%! int count = 0; //声明在内的变量 void method(){} %><% int i= 0
2013-09-11 09:50:29
2398
原创 数据库设计范式的理解
范式是什么范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第
2013-06-27 13:20:36
635
原创 JS一些特殊的问题
一、==与===首先,== equality 等同,=== identity 恒等。 ==, 两边值类型不同的时候,要先进行类型转换,再比较。 ===,不做类型转换,类型不同的一定不等。 下面分别说明: 先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等: 1、如果类型不同,就[不相等] 2、如果两个都是数值,并且是同一个值,那么[相等];(!例外)
2013-06-19 10:20:44
685
原创 struts中Action的线程安全性分析
为什么struts2的action是线程安全的,struts1的action不是线程安全的? 先对struts1和struts2的原理做一个简单的讲解 对于struts1 ,当第一次**.do的请求过来时,在内存中的actionmapping中找到相对应的action,然后new出这个action放在缓存中,当第二 次一样的请求过来时,还是找的这个action,所以对于struts1来
2013-06-17 16:33:28
6037
原创 JAVA 性能监测与分析工具简介
一、Jconsole:java监控和管理控制台,从java5开始,在JDK中提供,用于对JVM中内存,线程和类等的监控。基本使用:在命令行启动jconsole:jconsole 在启动的界面中:概述:有关堆内存使用情况,线程,类加载和CPU使用情况的综述;内存:内存的详细情况,堆和其他内存;线程:峰值/活动线程,另外,各个线程的明细信息,检测死锁;类:监控加载和卸载的类;
2013-05-13 11:51:00
1045
原创 Java可变参数讨论与重写,重载的相关讨论
到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了。尽管可以通过重载机制,为同一个方法提供带有不同数量的形参的版本,但是这仍然不能达到让实参数量任意变化的目的。然而,有些方法的语义要求它们必须能接受个数可变的实参——例如著名的
2013-05-13 09:46:52
818
转载 JAVA的内存泄露问题
1 引言 Java的一个重要优点就是通过垃圾收集器GC (Garbage Collection)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java 不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC 或JVM的问题。其实,这种想法是不正确的,因为Java 也存在内存泄漏,但它的表现与C++不同。如果正在开发的Java 代码要全天24
2012-09-26 18:14:29
598
原创 Linux 软链接 vs 硬链接
创建方法:1. 软连接(符号链接) ln -s source target 2. 硬链接 ln source target 硬链接文件有两个限制 1)、不允许给目录创建硬链接; 2)、只有在同一文件系统中的文件之间才能创建链接。原理:要解释清楚两者的区别和联系需要先说清楚 linux 文件系统中的 inode
2012-09-16 09:28:33
771
原创 String 深入理解
1、"abc"与new String("abc"); String s = new String("abc");创建了几个String Object? 这个问题比较简单,涉及的知识点包括:引用变量与对象的区别; 字符串文字"abc"是一个String对象; 文字池[pool of literal strings]和堆[heap]中的字符串对象。 一、引用变量与对
2012-09-16 09:09:34
657
原创 Oracle中存储过程和函数的区别
例子: //创建过程 create or replace procedure add_emailinfo(namee email_info.fullname%type ,address email_info.email_address%type ) is begin insert into email_info(fullname
2012-09-16 08:37:29
658
原创 Statement vs PreparedStatement
1. PreparedStatement是预编译的,对于批量处理可以大大提高效率:Statement为每一条Sql语句生成执行计划,如果要执行两条sql语句select colume from table where colume=1;select colume from table where colume=2;会生成两个执行计划,一千个查询就生成一千个执行计划!Pr
2012-09-03 13:25:01
465
原创 JPA Notes
JPA全称为Java Persistence API ,是目前比较流行的一种ORM技术之一,所以他拥有ORM技术的各种特点,当然他还有自己的一些优势:1 标准化 JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。2 对
2012-09-03 11:25:53
524
原创 两段提交协议(Two Phase Commit Protocol--2PC)
两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。在两阶段提交协议中,系统一般包含两类机器(或节点):一类为协调者(coordinator),通常一个系统中只有一个;另一类为事务
2012-09-03 11:07:26
986
原创 JDO Tips
Java数据对象(Java Data Objects,JDO)是一个应用程序接口(API),它是Java程序员能够间接地访问数据库,也就是说,不需使用直接的结构化查询语言(SQL)语句。JDO是作为Java数据库连接(JDBC)的一个补充来介绍的,而JDBC是一个支持使用SOL语句对流行的数据库程序进行访问的接口。有了JDO,程序员就可以使用类来定义数据对象,然后支撑程序就会根据类的定义来管理对给
2012-09-02 09:03:29
1097
1
原创 ClassNotFoundException And NoClassDefFoundError
ClassNotFoundException直接继承与Exception,它是一个checked 的异常。NoClassDefFoundErr 继承自Error->LinkageError ,它是一个unchecked 的异常。当我们在运行期间通过Class.forName() or ClassLoader.loadClass() or ClassLoader.findSystemCl
2012-08-17 11:22:21
3507
原创 Java Bit Computing
移位运算符包括: “>> 右移”;“>> 无符号右移”例子:-5>>3=-11111 1111 1111 1111 1111 1111 1111 10111111 1111 1111 1111 1111 1111 1111 1111其结果与 Math.floor((double)-5/(2*2*2)) 完全相同。-51111 1111 1111 111
2012-08-02 22:19:08
551
原创 How to Create J2ee Project With Maven in Eclipse
1. Open "New Maven Project" Wizard2. Fill artifact info correspondingly 3. Click "Finish"生成标准的Maven工程,要求有如下源目录:src/main/javasrc/main/resourcessrc/test/javasrc/test/resou
2012-07-29 21:07:28
1618
原创 正则表达式
引言 正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征。 正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址
2012-07-23 13:27:58
715
转载 RSA公钥加密算法
RSA、离散对数、椭圆曲线是目前三大公钥加密算法,RSA是其中应用最多的一种。下面将介绍RSA算法的理论基础。1. 算法产生背景公钥加密或说非对称加密其作用已经不言而喻,在实际中已经得到大量应用,比如HTTPS证书,其中便包含了网站的公钥信息。非对称加密与对称加密最大的区别是,加密与解密使用不同的密钥,通过公钥加密的内容只有通过私钥才能解密,反之亦然。因此,发布者完全可以把公钥公布
2012-07-21 13:45:46
1099
原创 Java Performance Monitor
参考工具:1.VisualVMVisualVM是一个资源分析工具,一直从JDK 6更新到7,它默认内存和CPU的监视,它可以告诉你哪个类和方法消耗资源,但它不会显示代码流程。 2.JProfilerJProfiler很容易安装,并且通过向导,你可以选择应用服务器用来运行应用程序。我不得不选择使用JPofiler应用服务器的主目录,以及向导生成的一个单独的启动脚本。然
2012-07-18 14:30:41
1130
转载 Java编程中“为了性能”需做的26件事
下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:控制资源的使用,通过线程同步来控制资源的并发访问;控制实例的产生,以达到节约资源的目的;控制数据共享,在不建立直接关联的条件下,让多个不相关
2012-07-18 14:13:15
1819
原创 TCP/UDP Protocal
面向连接的TCP“面向连接”就是在正式通信前必须要与对方建立起连接。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形
2012-07-08 15:41:54
865
转载 Apache整合Tomcat详解系列(五)Tomcat集群-群猫乱舞
一、为何要集群单台App Server再强劲,也有其瓶劲,先来看一下下面这个真实的场景。当时这个工程是这样的,tomcat这一段被称为web zone,里面用spring+ws,还装了一个jboss的规则引擎Guvnor5.x,全部是ws没有service layer也没有dao layer。然后App Zone这边是weblogic,传输用的是spring
2012-07-08 12:49:53
1734
转载 Apache整合Tomcat详解系列(四)Tomcat性能调优-让小猫飞奔
一、总结前一天的学习从“第三天”的性能测试一节中,我们得知了决定性能测试的几个重要指标,它们是:ü 吞吐量ü Responsetimeü Cpuloadü MemoryUsage我们也在第三天的学习中对Apache做过了一定的优化,使其最优化上述4大核心指标的读数,那么我们的Apache调优了,我们的Tomcat也作些相应的调整,当完
2012-07-08 12:48:31
1811
转载 Apache整合Tomcat详解系列(三)Apache性能调优
一、总结前一天的学习在前两天的学习中我们知道、了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构。这个架构是一个非常基础的J2ee工程上线布署时的一种架构。在前两天的教程中,还讲述了Http服务器、App Server的最基本安全配置(包括单向https的实现), 它只是避免了用户可以通过浏览器侵入我们的Web访问器或者能够通过Web浏览器来查询我们
2012-07-08 12:47:25
5489
转载 Apache整合Tomcat详解系列(二)Apache Tomcat https应用
一、总结前一天的学习在前一天的学习中我们知道、了解并掌握了Web Server结合App Server是怎么样的一种架构,并且亲手通过Apache的Http Server与Tomcat6进行了整合的实验。这样的架构的好处在于:ü 减轻App Server端的压力,用Web Server来分压,即Web Server只负责处理静态HTML内容,而App Server专职负
2012-07-08 12:45:26
10439
1
转载 Apache整合Tomcat详解系列(一)
一、先从J2EE工程的通用架构说起这是一个通用的Web即B/S工程的架构,它由:ü Web Serverü App Serverü DB Server三大部分组成,其中:² Web Server置于企业防火墙外,这个防火墙,大家可以认为是一个CISCO路由器,然后在CISCO路由器上开放了两个端口为:80和443
2012-07-08 11:40:51
1531
原创 Apache vs Tomcat
Apache是专门用于提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)的web服务器,仅支持静态页面,Tomcat支持动态的,比如Servlet等的应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,Apache:侧重于HTTP ServerTomcat:侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apach
2012-07-08 10:50:05
838
1
原创 8位Java风云人物
本文列举了8个Java人物,他们创建了对Java社区贡献很大的框架、产品、工具和图书,也因此改变了Java的编码方法。一起来认识下吧。8.Tomcat和Ant创办人James Duncan Davidson,1997年到2001年在Sun公司工作,他创建了Tomcat应用服务器,这是使用最为广泛的Java Web服务器,同时还创建了Ant构建工具,Ant使用XML来描述项目
2012-06-30 22:10:30
3187
转载 Java加密技术(十)
在Java 加密技术(九)中,我们使用自签名证书完成了认证。接下来,我们使用第三方CA签名机构完成证书签名。 这里我们使用thawte提供的测试用21天免费ca证书。 1.要在该网站上注明你的域名,这里使用www.zlex.org作为测试用域名(请勿使用该域名作为你的域名地址,该域名受法律保护!请使用其他非注册域名!)。 2.如果域名有效,你会收到邮件要求你
2012-06-28 14:12:05
714
转载 Java加密技术(九)
在Java加密技术(八)中,我们模拟了一个基于RSA非对称加密网络的安全通信。现在我们深度了解一下现有的安全网络通信——SSL。 我们需要构建一个由CA机构签发的有效证书,这里我们使用上文中生成的自签名证书zlex.cer 这里,我们将证书导入到我们的密钥库。 Shell代码 keytool -import -alias www.zlex.
2012-06-28 14:11:10
859
转载 Java加密技术(八)
本篇的主要内容为Java证书体系的实现。 请大家在阅读本篇内容时先阅读 Java加密技术(四),预先了解RSA加密算法。 在构建Java代码实现前,我们需要完成证书的制作。 1.生成keyStroe文件 在命令行下执行以下命令: Shell代码 keytool -genkey -validity 36000 -alias www.zlex.or
2012-06-28 14:10:26
780
转载 Java加密技术(七)
ECC ECC-Elliptic Curves Cryptography,椭圆曲线密码编码学,是目前已知的公钥体制中,对每比特所提供加密强度最高的一种体制。在软件注册保护方面起到很大的作用,一般的序列号通常由该算法产生。 当我开始整理《Java加密技术(二)》的时候,我就已经在开始研究ECC了,但是关于Java实现ECC算法的资料实在是太少了,无论是国内还是国外的资料,无论是官方还
2012-06-28 14:09:22
903
转载 Java加密技术(六)
接下来我们介绍DSA数字签名,非对称加密的另一种实现。 DSA DSA-Digital Signature Algorithm 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。如果数据
2012-06-28 14:08:29
1295
转载 Java加密技术(五)
接下来我们分析DH加密算法,一种适基于密钥一致协议的加密算法。 DH Diffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对(公钥、私钥)。以此为基线,作
2012-06-28 14:07:48
937
转载 Java加密技术(四)
接下来我们介绍典型的非对称加密算法——RSA RSA 这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。 这种加密算法的特点主要是密钥的变化,上文我们看到DES只有一个密钥。相当于只有一把钥匙,如果这把钥
2012-06-28 14:06:59
821
转载 Java加密技术(三)
除了DES,我们还知道有DESede(TripleDES,就是3DES)、AES、Blowfish、RC2、RC4(ARCFOUR)等多种对称加密方式,其实现方式大同小异,这里介绍对称加密的另一个算法——PBE PBE PBE——Password-based encryption(基于密码加密)。其特点在于口令由用户自己掌管,不借助任何物理媒体;采用随机数(这里我们叫做盐)杂凑
2012-06-28 14:06:10
736
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人