01 2013 档案

摘要:forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response); redirect方式:response.sendRedirect("/somePage.jsp");forward是服务器内部重定向,程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。 forward 阅读全文
posted @ 2013-01-31 23:40 jack_ou 阅读(452) 评论(1) 推荐(0) 编辑
摘要:完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅。HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0。你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request.getRequestProtocol来检查。 本部分余下的内容会详细地介绍 HTTP 1.1中的状态码。这些状态码被分为五大类: 100-199 用于指定客户端应相应的某些动作。 200-299 用 阅读全文
posted @ 2013-01-31 23:04 jack_ou 阅读(920) 评论(0) 推荐(0) 编辑
摘要:一个比较简单的实现:一个三个类KeyGenerater生成公钥私钥对,Signaturer类使用私钥签名,SignProvider用公钥验证。公钥和私钥使用Base64加密Base64这个类也在博客里面public class KeyGenerater {private byte[] priKey;private byte[] pubKey;public void generater() {try {java.security.KeyPairGenerator keygen = java.security.KeyPairGenerator.getInstance("RSA" 阅读全文
posted @ 2013-01-31 17:57 jack_ou 阅读(16102) 评论(0) 推荐(0) 编辑
摘要:一说到数据的加密,常常会涉及到这几个单词:算法、原文、密文和密钥。通常,发送者把原文通过一个加密的算法,用密钥进行加密后将密文发送给接收者,然后接收者再用密钥对密文进行解密,得到原文。由于常用的加密算法都是公开的,所以,对原文的加密的关键,就是密钥了。对于这种加解密都使用同样的密钥的算法,我们称之为对称加密,对称加密的代表算法就是DES家族了。那么这种对称加密有什么缺陷呢?由于加解密使用相同的密钥,那么这个密钥最少要保存在两个地方,如果加密的数据要发给多人,那么就会有更多的人知道密钥,这大大增加了密钥泄露的风险;并且密钥需要由发送方传递给接收方,那么如何保证密钥的传递的安全,则成了另外一个头疼 阅读全文
posted @ 2013-01-31 17:51 jack_ou 阅读(1734) 评论(0) 推荐(0) 编辑
摘要:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类(都直接或间接继承此类)。所有对象(包括数组)都实现这个类的所有方法。来看一下object的源码吧[java] view plaincopyprint?packagejava.lang;publicclassObject{/*一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用。*/privatestaticnativevoidregisterNatives();/*对象初始化时自动调用此方法*/static{registerNatives();}/*返回此Object的运行时类。*/publicfin 阅读全文
posted @ 2013-01-31 10:45 jack_ou 阅读(9417) 评论(0) 推荐(4) 编辑
摘要:JNI是Java Native Interface的 缩写。从Java 1.1开始,Java Native Interface (JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。 使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的,比如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机实现下。JNI(Java N. 阅读全文
posted @ 2013-01-31 10:40 jack_ou 阅读(469) 评论(0) 推荐(0) 编辑
摘要:实现一对密钥对整个项目所有加密解密文件都适用的方法,采用先生成一对密钥.保存到xml文件中,以后获得私匙和公钥只需要从xml文件中取得就可以了. /** * 把成生的一对密钥保存到RSAKey.xml文件中 */ public void saveRSAKey() { try { SecureRandom sr = new SecureRandom(); KeyPairGenerator kg = KeyPairGenerator.getInstance(\"RSA\", new org.bouncycastle.jce.provider.BouncyCastleProvid 阅读全文
posted @ 2013-01-31 09:21 jack_ou 阅读(730) 评论(0) 推荐(0) 编辑
摘要:最近处理RSA算法,找了一些相关的资料和代码,整理了一下,汇总成这篇文章。 <一>基础RSA算法非常简单,概述如下:找两素数p和q取n=p*q取t=(p-1)*(q-1)取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)取d*e%t==1这样最终得到三个数: n d e设消息为数M 阅读全文
posted @ 2013-01-31 09:15 jack_ou 阅读(8937) 评论(3) 推荐(2) 编辑
摘要:javax.crypto.Cipher类提供加密和解密功能,该类是JCE框架的核心。一,与所有的引擎类一样,可以通过调用Cipher类中的getInstance静态工厂方法得到Cipher对象。public static Cipher getInstance(String transformation);public static Cipher getInstance(String transformation,String provider);参数transformation是一个字符串,它描述了由指定输入产生输出所进行的操作或操作集合。参数transformation总是包含密码学算法名称 阅读全文
posted @ 2013-01-31 00:16 jack_ou 阅读(16908) 评论(0) 推荐(2) 编辑
摘要:来源:http://blog.csdn.net/janronehoo/article/category/1152295如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消息鉴别码) 复杂的对称加密(DES、PBE)、非对称加密算法: DES(Data Encryption Standard,数据加密算法)PBE(Password-based encry 阅读全文
posted @ 2013-01-30 23:44 jack_ou 阅读(3773) 评论(2) 推荐(0) 编辑
摘要:MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.tx 阅读全文
posted @ 2013-01-30 23:41 jack_ou 阅读(1489) 评论(0) 推荐(0) 编辑
摘要:Servlet API 中文版 基本类和接口一、javax.servlet.Servlet接口servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管理的方法集。Servlet接口的基本目标是提供生命期方法init()、se 阅读全文
posted @ 2013-01-30 23:03 jack_ou 阅读(13156) 评论(3) 推荐(1) 编辑
摘要:Tomcat服务器配置参考Coyote HTTP/1.1 Connector概述Coyote HTTP/1.1 Connector元素是一个支持HTTP/1.1协议的Connector组件。它使Catalina除了能够执行servlet和JSP页面外,还能够作为一个单独的web server运行。Connector对象的实例在服务器上监听特定的TCP端口。一个Service可以配置一个或多个这样的Connector,每个Connector都把请求转发给对应Engine进行处理,并产生响应。在 服务器启动的时候,Connector会创建一些请求处理线程(基于minProcessors属性值)。每 阅读全文
posted @ 2013-01-30 22:49 jack_ou 阅读(6118) 评论(0) 推荐(0) 编辑
摘要:转载:http://blog.sina.com.cn/s/blog_639dde240100mzvj.htmlgetServletContext()javax.servlet.ServletContext接口一个servlet上下文是servlet引擎提供用来服务于Web应用的接口。Servlet上下文具有名字(它属于Web应用的名字)唯一映射到文件系统的一个目录。一个servlet可以通过ServletConfig对象的getServletContext()方法得到servlet上下文的引用,如果servlet直接或间接调用子类GenericServlet,则可以使用getServletCo 阅读全文
posted @ 2013-01-30 22:11 jack_ou 阅读(735) 评论(0) 推荐(0) 编辑
摘要:Httpservlet源码及实现机制HTTP请求刚刚进来的时候实际上只是一个HTTP请求报文,容器会自动将这个HTTP请求报文包装成一个HttpServletRequest对象,并且自动调用HttpServlet的service()方法来解析这个HTTP请求,service()方法会解析HTTP请求行,而HTTP请求行由method,uri,HTTP version三个组成,method就是get或者post,service()方法根据method来决定是执行doGet还是doPost,这一切都是服务器Tomcat/weblogic/websphere/jboss(容器)自动完成的,HTTP的 阅读全文
posted @ 2013-01-30 16:48 jack_ou 阅读(7168) 评论(0) 推荐(3) 编辑
摘要:概况 Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类.在javax.servlet.http包中定义了采用HTTP通信协议的HttpServl 阅读全文
posted @ 2013-01-30 16:37 jack_ou 阅读(677) 评论(0) 推荐(0) 编辑
摘要:HttpServletResponse接口是ServletResponse的子接口,HttpServlet类的重载service()方法及doGet()和doPost()等方法都有一个HttpServletResponse类型参数:protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOExceptionHttpServletResponse 接口提供了与 HTTP 协议相关的一些方法,Servlet 可通过这些方法来设置HTTP响应头或向客户端写Coo 阅读全文
posted @ 2013-01-30 16:22 jack_ou 阅读(9635) 评论(0) 推荐(0) 编辑
摘要:转载:http://hi.baidu.com/yanfei_nn/item/18ca79960fc021ab82d29533Request 的 sendError( )方法形式: sendError(int errnum )说明:用来向客户端发送错误信息,这对调试程序有很大帮助。常用的常量级错误代码有:SC_CONTINUE, 状态码是100,表示客户端无法连接。SC_SWITHING_PROTOCOLS,状态码是101,表示服务器正向报头中注明的协议切换。SC_OK,状态码是200.表示请求被成功处理。SC_CREATED,状态码是201,表示请求被成功处理,并在服务器方创建了一个新的资源。 阅读全文
posted @ 2013-01-30 16:20 jack_ou 阅读(14777) 评论(0) 推荐(0) 编辑
摘要:相关文章1:HashSet,TreeSet和LinkedHashSet的区别相关文章2:HashSet和TreeSet的区别Hashtable类 Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key或者value。 添加数据使用put(key, value),取出数据使用get(key),这两个基本操作的时间开销为常数。 Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load facto... 阅读全文
posted @ 2013-01-24 23:09 jack_ou 阅读(655) 评论(0) 推荐(0) 编辑
摘要:Java 线程池学习Reference: 《创建Java线程池》[1],《Java线程:新特征-线程池》[2], 《Java线程池学习》[3],《线程池ThreadPoolExecutor使用简介》[4],《Java5中的线程池实例讲解》[5],《ThreadPoolExecutor使用和思考》[6][1]中博主自己通过ThreadGroup实现一个线程池(挺方便理解的),使用的是jdk1.4版本,Jdk1.5版本以上提供了现成的线程池。[2]中介绍了java.util.concurrent.Executors类的API。[3]中介绍了Java中线程池的类体系结构。[4]中有ThreadPoo 阅读全文
posted @ 2013-01-23 20:49 jack_ou 阅读(736) 评论(0) 推荐(0) 编辑
摘要:5.3.2 switch语句switch关键字的中文意思是开关、转换的意思,switch语句在条件语句中特别适合做一组变量相等的判断,在结构上比if语句要清晰很多。switch语句的语法格式为:switch(表达式){case 值1:功能代码1; [break; ]case 值2:功能代码2; [break; ]……default:功能代码1; [break; ]}语法说明:1、 表达式的类型只能为byte、short、char和int这4种之一。2、 值1、值2…值n只能为常数或常量,不能为变量。3、 功能代码部分可以写任意多句。4、 break关键字的意思是中断,指结束switch语句,b 阅读全文
posted @ 2013-01-22 10:01 jack_ou 阅读(10492) 评论(0) 推荐(2) 编辑
摘要:软件设计经典书籍推荐 设计模式最经典的书籍自然是GOF的《设计模式》,但很多人的反应是这本书太难理解了,并不适合初学者阅读。这话说得在理。一方面,本书使用的C++示例难倒了一大群Java和.NET的开发人员;另一方面,这本书的风格过于专业化,更偏向于学术论文的风格(事实上,本书的雏形就是来源于GOF 阅读全文
posted @ 2013-01-22 00:11 jack_ou 阅读(1034) 评论(0) 推荐(0) 编辑
摘要:JDialog.setDefaultLookAndFeelDecorated(true); JFrame.setDefaultLookAndFeelDecorated(true); Toolkit.getDefaultToolkit().setDynamicLayout(true); System.setProperty("sun.awt.noerasebackground","true"); 先把这些加进去.然后再加: javax.swing.plaf.metal.MetalLookAndFeel.setCurrentTheme( new javax. 阅读全文
posted @ 2013-01-21 13:29 jack_ou 阅读(469) 评论(0) 推荐(0) 编辑