<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.wenhq.com/styles/feedsky2.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.wenhq.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/wenhq" type="application/rss+xml"></fs:self_link><lastBuildDate>Mon, 09 Jan 2012 00:52:35 GMT</lastBuildDate><title>亲亲宝宝</title><description>IT技术经验总结,java,delphi,软件开发,网站建设</description><image><url>http://www.feedsky.com/feed/wenhq/sc/gif</url><title>亲亲宝宝</title><link>http://www.wenhq.com</link></image><link>http://www.wenhq.com</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Mon, 09 Jan 2012 00:52:35 GMT</pubDate><item><title>12306购买火车票历险记</title><link>http://www.wenhq.com/article/view_718.html</link><content:encoded>&lt;p&gt;首先说明一下12306网站的体验算是有史以来最差的，以前从没想过这样的网站能活的这么好，如果是一个电子商务网站的，不知道会咋的。&lt;br /&gt;
12306的好处是让我们知道，虽然票很紧张，仔细看下就明白了，凡是有动车和普通车的，动车有票，普通车没票；方式有高铁和动车的，动车就没票了，高铁确富富有余；这看起来不大象是运力不足。&lt;br /&gt;
1、配置环境：&lt;br /&gt;
先按照网站提示把证书装好，最好使用ie6浏览器；&lt;br /&gt;
开通好网银；&lt;br /&gt;
2、注册用户：&lt;br /&gt;
关键信息&amp;#8211;姓名、个人有效证件、电话、邮箱；&lt;br /&gt;
3、在12306的网站上有各地车站的放票时间，提前查看下放票时间；&lt;br /&gt;
4、提前5分钟登录网站，输入好出发地和目的地，出发时间等放票时间一到赶紧查；&lt;br /&gt;
今年成功购买了一张14号得卧铺票，算是这10多年买票最省事的一次，不用半夜排队，花费了几分钟，虽然很快这个网站我就再也连不上了。但访问该站的静态页面是可以的，说明不是服务器带宽的问题，而是网站并发处理能力太差；&lt;br /&gt;
第二次帮朋友买18号就很不幸了，连续三天花了N个小时才买上20号的。&lt;br /&gt;
造成网站访问量大的原因：&lt;br /&gt;
1、引用的css，js文件多；&lt;br /&gt;
2、采用了frame框架，经常返回失败，一般用户还不会刷新frame；&lt;br /&gt;
3、最要命的就是一次购买完成不了，需要连续三天或者更多时间连续访问，访问量能低吗；&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662853/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_718.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_718.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>首先说明一下12306网站的体验算是有史以来最差的，以前从没想过这样的网站能活的这么好，如果是一个电子商务网站的，不知道会咋的。
12306的好处是让我们知道，虽然票很紧张，仔细看下就明白了，凡是有动车和普通车的，动车有票，普通车没票；方式有高铁和动车的，动车就没票了，高铁确富富有余；这看起来不大象是运力不足。
1、配置环境：
先按照网站提示把证书装好，最好使用ie6浏览器；
开通好网银；
2、注册用户：
关键信息&amp;#8211;姓名、个人有效证件、电话、邮箱；
3、在12306的网站上有各地车站的放票时间，提前查看下放票时间；
4、提前5分钟登录网站，输入好出发地和目的地，出发时间等放票时间一到赶紧查；
今年成功购买了一张14号得卧铺票，算是这10多年买票最省事的一次，不用半夜排队，花费了几分钟，虽然很快这个网站我就再也连不上了。但访问该站的静态页面是可以的，说明不是服务器带宽的问题，而是网站并发处理能力太差；
第二次帮朋友买18号就很不幸了，连续三天花了N个小时才买上20号的。
造成网站访问量大的原因：
1、引用的css，js文件多；
2、采用了frame框架，经常返回失败，一般用户还不会刷新frame；
3、最要命的就是一次购买完成不了，需要连续三天或者更多时间连续访问，访问量能低吗；&lt;img src=&quot;http://www1.feedsky.com/t1/594662853/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_718.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>网站</category><pubDate>Mon, 09 Jan 2012 08:52:35 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_718.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/article/view_718.html</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_718.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662853/5429992</fs:itemid></item><item><title>xml xslt中的空格输出处理</title><link>http://www.wenhq.com/article/view_717.html</link><content:encoded>&lt;div id=&quot;blog_text&quot;&gt;
&lt;p&gt;xml xslt中的空格输出处理,这个问题困扰了我很久都没有找到解决方法。&lt;/p&gt;
&lt;p&gt;今天硬着头皮终于找到了一个可以用的解决方法了。&lt;/p&gt;
&lt;p&gt;很简单，即用&amp;amp;#160;就可以表示空格了。&lt;/p&gt;
&lt;p&gt;其他参考资料&lt;/p&gt;
&lt;div&gt;
&lt;p&gt;用&amp;lt;xsl:text&amp;gt;&amp;lt;/xsl:text&amp;gt;可以保留空格，注意这里的xsl类型为text才可以，为其他的就不行了。&lt;/p&gt;
&lt;p&gt;另外，disable-output-escaping  属性为yes时，可以禁止转义输出，即直接输出&amp;lt;，&amp;amp;等字符&amp;lt;xsl:text  disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/xsl:text&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;amp;#160;或者&amp;lt;xsl:text disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;gt;&amp;lt;![CDATA[&amp;amp;nbsp;&amp;amp;nbsp;]]&amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;/p&gt;
&lt;p&gt;－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;在XSL中如何显示空格? 用&amp;amp;#32;无效，而&amp;amp;nbps;则出错&lt;/p&gt;
&lt;p&gt;&lt;/strong&gt;&amp;lt;xsl:text disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;xsl:text disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;gt;&amp;amp;lt;![CDATA[&amp;amp;nbsp;]]&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;gt;&amp;amp;lt;![CDATA[&amp;amp;nbsp;]]&amp;amp;gt;&amp;lt;/xsl:value-of&amp;gt;&lt;br /&gt;
&amp;lt;xsl:value-of disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;gt;&amp;amp;amp;nbsp;&amp;lt;/xsl:value-of&amp;gt;&lt;br /&gt;
都可以，注意：必需要有disable-output-escaping=&amp;#8221;yes&amp;#8221;这个属性说明才可以。&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662854/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_717.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_717.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>xml xslt中的空格输出处理,这个问题困扰了我很久都没有找到解决方法。
今天硬着头皮终于找到了一个可以用的解决方法了。
很简单，即用&amp;#38;#160;就可以表示空格了。
其他参考资料

用&amp;#60;xsl:text&amp;#62;&amp;#60;/xsl:text&amp;#62;可以保留空格，注意这里的xsl类型为text才可以，为其他的就不行了。
另外，disable-output-escaping  属性为yes时，可以禁止转义输出，即直接输出&amp;#60;，&amp;#38;等字符&amp;#60;xsl:text  disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;#62;&amp;#38;amp;nbsp;&amp;#60;/xsl:text&amp;#62;
&amp;#38;#160;或者&amp;#60;xsl:text disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;#62;&amp;#60;![CDATA[&amp;#38;nbsp;&amp;#38;nbsp;]]&amp;#62;&amp;#60;/xsl:text&amp;#62;
－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－
在XSL中如何显示空格? 用&amp;#38;#32;无效，而&amp;#38;nbps;则出错
&amp;#60;xsl:text disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;#62;&amp;#38;amp;nbsp;&amp;#60;/xsl:text&amp;#62;
&amp;#60;xsl:text disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;#62;&amp;#38;lt;![CDATA[&amp;#38;nbsp;]]&amp;#38;gt;&amp;#60;/xsl:text&amp;#62;
&amp;#60;xsl:value-of disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;#62;&amp;#38;lt;![CDATA[&amp;#38;nbsp;]]&amp;#38;gt;&amp;#60;/xsl:value-of&amp;#62;
&amp;#60;xsl:value-of disable-output-escaping=&amp;#8221;yes&amp;#8221;&amp;#62;&amp;#38;amp;nbsp;&amp;#60;/xsl:value-of&amp;#62;
都可以，注意：必需要有disable-output-escaping=&amp;#8221;yes&amp;#8221;这个属性说明才可以。&lt;img src=&quot;http://www1.feedsky.com/t1/594662854/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_717.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>java</category><category>XSL-FO</category><pubDate>Sun, 25 Dec 2011 17:04:08 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_717.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=717</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_717.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662854/5429992</fs:itemid></item><item><title>JAVA实现AES的加密和解密算法</title><link>http://www.wenhq.com/article/view_716.html</link><content:encoded>&lt;p&gt;import javax.crypto.Cipher;&lt;br /&gt;
import javax.crypto.spec.IvParameterSpec;&lt;br /&gt;
import javax.crypto.spec.SecretKeySpec;&lt;/p&gt;
&lt;p&gt;import sun.misc.BASE64Decoder;&lt;br /&gt;
import sun.misc.BASE64Encoder;&lt;/p&gt;
&lt;p&gt;/**AES 是一种可逆加密算法，对用户的敏感信息加密处理&lt;br /&gt;
* 对原始数据进行AES加密后，在进行Base64编码转化；&lt;br /&gt;
*/&lt;br /&gt;
public class AESOperator {&lt;br /&gt;
/*&lt;br /&gt;
* 加密用的Key 可以用26个字母和数字组成&lt;br /&gt;
* 此处使用AES-128-CBC加密模式，key需要为16位。&lt;br /&gt;
*/&lt;br /&gt;
private String sKey=&amp;#8221;0123456789abcdef&amp;#8221;;&lt;br /&gt;
private String ivParameter=&amp;#8221;0123456789abcdef&amp;#8221;;&lt;br /&gt;
private static AESOperator instance=null;&lt;br /&gt;
private AESOperator(){&lt;/p&gt;
&lt;p&gt;}&lt;br /&gt;
public static AESOperator getInstance(){&lt;br /&gt;
if (instance==null)&lt;br /&gt;
instance= new AESOperator();&lt;br /&gt;
return instance;&lt;br /&gt;
}&lt;br /&gt;
// 加密&lt;br /&gt;
public String encrypt(String sSrc) throws Exception {&lt;br /&gt;
Cipher cipher = Cipher.getInstance(&amp;#8220;AES/CBC/PKCS5Padding&amp;#8221;);&lt;br /&gt;
byte[] raw = sKey.getBytes();&lt;br /&gt;
SecretKeySpec skeySpec = new SecretKeySpec(raw, &amp;#8220;AES&amp;#8221;);&lt;br /&gt;
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式，需要一个向量iv，可增加加密算法的强度&lt;br /&gt;
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);&lt;br /&gt;
byte[] encrypted = cipher.doFinal(sSrc.getBytes(&amp;#8220;utf-8&amp;#8243;));&lt;br /&gt;
return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码。&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;// 解密&lt;br /&gt;
public String decrypt(String sSrc) throws Exception {&lt;br /&gt;
try {&lt;br /&gt;
byte[] raw = sKey.getBytes(&amp;#8220;ASCII&amp;#8221;);&lt;br /&gt;
SecretKeySpec skeySpec = new SecretKeySpec(raw, &amp;#8220;AES&amp;#8221;);&lt;br /&gt;
Cipher cipher = Cipher.getInstance(&amp;#8220;AES/CBC/PKCS5Padding&amp;#8221;);&lt;br /&gt;
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());&lt;br /&gt;
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);&lt;br /&gt;
byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密&lt;br /&gt;
byte[] original = cipher.doFinal(encrypted1);&lt;br /&gt;
String originalString = new String(original,&amp;#8221;utf-8&amp;#8243;);&lt;br /&gt;
return originalString;&lt;br /&gt;
} catch (Exception ex) {&lt;br /&gt;
return null;&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;
&lt;p&gt;public static void main(String[] args) throws Exception {&lt;br /&gt;
// 需要加密的字串&lt;br /&gt;
String cSrc = &amp;#8220;我来自www.wenhq.com&amp;#8221;;&lt;br /&gt;
System.out.println(cSrc);&lt;br /&gt;
// 加密&lt;br /&gt;
long lStart = System.currentTimeMillis();&lt;br /&gt;
String enString = AESOperator.getInstance().encrypt(cSrc);&lt;br /&gt;
System.out.println(&amp;#8220;加密后的字串是：&amp;#8221; + enString);&lt;/p&gt;
&lt;p&gt;long lUseTime = System.currentTimeMillis() &amp;#8211; lStart;&lt;br /&gt;
System.out.println(&amp;#8220;加密耗时：&amp;#8221; + lUseTime + &amp;#8220;毫秒&amp;#8221;);&lt;br /&gt;
// 解密&lt;br /&gt;
lStart = System.currentTimeMillis();&lt;br /&gt;
String DeString = AESOperator.getInstance().decrypt(enString);&lt;br /&gt;
System.out.println(&amp;#8220;解密后的字串是：&amp;#8221; + DeString);&lt;br /&gt;
lUseTime = System.currentTimeMillis() &amp;#8211; lStart;&lt;br /&gt;
System.out.println(&amp;#8220;解密耗时：&amp;#8221; + lUseTime + &amp;#8220;毫秒&amp;#8221;);&lt;br /&gt;
}&lt;br /&gt;
}&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662855/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_716.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_716.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**AES 是一种可逆加密算法，对用户的敏感信息加密处理
* 对原始数据进行AES加密后，在进行Base64编码转化；
*/
public class AESOperator {
/*
* 加密用的Key 可以用26个字母和数字组成
* 此处使用AES-128-CBC加密模式，key需要为16位。
*/
private String sKey=&amp;#8221;0123456789abcdef&amp;#8221;;
private String ivParameter=&amp;#8221;0123456789abcdef&amp;#8221;;
private static AESOperator instance=null;
private AESOperator(){
}
public static AESOperator getInstance(){
if (instance==null)
instance= new AESOperator();
return instance;
}
// 加密
public String encrypt(String sSrc) throws Exception {
Cipher cipher = Cipher.getInstance(&amp;#8220;AES/CBC/PKCS5Padding&amp;#8221;);
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, &amp;#8220;AES&amp;#8221;);
IvParameterSpec iv = new IvParameterSpec(ivParameter.getBytes());//使用CBC模式，需要一个向量iv，可增加加密算法的强度
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
byte[] encrypted = [...]&lt;img src=&quot;http://www1.feedsky.com/t1/594662855/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_716.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>java基础</category><category>java</category><pubDate>Sun, 04 Dec 2011 15:43:17 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_716.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=716</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_716.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662855/5429992</fs:itemid></item><item><title>fop的流程控制语句</title><link>http://www.wenhq.com/article/view_715.html</link><content:encoded>&lt;p&gt;fop中条件判断有两种方式：&lt;/p&gt;
&lt;p&gt;第一、   if语句&lt;/p&gt;
&lt;p&gt;&amp;lt;xsl:if test=&amp;#8221;host =&amp;#8217;wenhq&amp;#8217;&amp;#8221;&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;fo:block&amp;gt;亲亲宝宝&amp;lt;/fo:block&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/xsl:if&amp;gt;&lt;/p&gt;
&lt;p&gt;host是xml中数据，可以动态设置&lt;/p&gt;
&lt;p&gt;第二、   when语句&lt;/p&gt;
&lt;pre&gt;&amp;lt;xsl:choose&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;lt;xsl:when test=&quot;host ='wenhq'&quot;&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;fo:block&amp;gt;亲亲宝宝&amp;lt;/fo:block&amp;gt;&lt;/p&gt;
&lt;pre&gt;    &amp;lt;/xsl:when&amp;gt;&lt;/pre&gt;
&lt;pre&gt;    &amp;lt;xsl:otherwise&amp;gt;&lt;/pre&gt;
&lt;p&gt;&amp;lt;fo:block&amp;gt;不是来自亲亲宝宝&amp;lt;/fo:block&amp;gt;&lt;/p&gt;
&lt;pre&gt;    &amp;lt;/xsl:otherwise&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;lt;/xsl:choose&amp;gt;&lt;/pre&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662856/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_715.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_715.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>fop中条件判断有两种方式：
第一、   if语句
&amp;#60;xsl:if test=&amp;#8221;host =&amp;#8217;wenhq&amp;#8217;&amp;#8221;&amp;#62;
&amp;#60;fo:block&amp;#62;亲亲宝宝&amp;#60;/fo:block&amp;#62;
&amp;#60;/xsl:if&amp;#62;
host是xml中数据，可以动态设置
第二、   when语句
&amp;#60;xsl:choose&amp;#62;
&amp;#60;xsl:when test=&quot;host ='wenhq'&quot;&amp;#62;
&amp;#60;fo:block&amp;#62;亲亲宝宝&amp;#60;/fo:block&amp;#62;
    &amp;#60;/xsl:when&amp;#62;
    &amp;#60;xsl:otherwise&amp;#62;
&amp;#60;fo:block&amp;#62;不是来自亲亲宝宝&amp;#60;/fo:block&amp;#62;
    &amp;#60;/xsl:otherwise&amp;#62;
&amp;#60;/xsl:choose&amp;#62;&lt;img src=&quot;http://www1.feedsky.com/t1/594662856/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_715.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>java</category><category>XSL-FO</category><pubDate>Wed, 30 Nov 2011 19:19:14 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_715.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=715</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_715.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662856/5429992</fs:itemid></item><item><title>fop动态引用图片</title><link>http://www.wenhq.com/article/view_714.html</link><content:encoded>&lt;p&gt;fop中一般是这样应用图片：&lt;/p&gt;
&lt;p&gt;&amp;lt;fo:external-graphic src=&amp;#8221;url(/path/cover1.jpg)&amp;#8221; /&amp;gt;&lt;/p&gt;
&lt;p&gt;这样图片是不会变的，有时需要根据条件换个图片，src属性值不能引入&amp;lt;xsl:value-of select= 去获取xml中的值。可以通过attribute的属性给src动态赋值，如：&lt;/p&gt;
&lt;p&gt;&amp;lt;fo:external-graphic&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;xsl:attribute name=&amp;#8221;src&amp;#8221;&amp;gt;&amp;lt;xsl:value-of select=&amp;#8221;concat(&amp;#8216;url(&amp;amp;quot;&amp;#8217;,Data/SealJpg, &amp;#8216;.jpg&amp;#8217;, &amp;#8216;&amp;amp;quot;)&amp;#8217;)&amp;#8221;/&amp;gt;&amp;lt;/xsl:attribute&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/fo:external-graphic&amp;gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662857/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_714.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_714.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>fop中一般是这样应用图片：
&amp;#60;fo:external-graphic src=&amp;#8221;url(/path/cover1.jpg)&amp;#8221; /&amp;#62;
这样图片是不会变的，有时需要根据条件换个图片，src属性值不能引入&amp;#60;xsl:value-of select= 去获取xml中的值。可以通过attribute的属性给src动态赋值，如：
&amp;#60;fo:external-graphic&amp;#62;
&amp;#60;xsl:attribute name=&amp;#8221;src&amp;#8221;&amp;#62;&amp;#60;xsl:value-of select=&amp;#8221;concat(&amp;#8216;url(&amp;#38;quot;&amp;#8217;,Data/SealJpg, &amp;#8216;.jpg&amp;#8217;, &amp;#8216;&amp;#38;quot;)&amp;#8217;)&amp;#8221;/&amp;#62;&amp;#60;/xsl:attribute&amp;#62;
&amp;#60;/fo:external-graphic&amp;#62;&lt;img src=&quot;http://www1.feedsky.com/t1/594662857/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_714.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>java</category><category>XSL-FO</category><pubDate>Fri, 25 Nov 2011 19:17:57 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_714.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=714</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_714.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662857/5429992</fs:itemid></item><item><title>mysql常用命令</title><link>http://www.wenhq.com/article/view_713.html</link><content:encoded>&lt;p&gt;1、查看当前的连接数&lt;/p&gt;
&lt;p&gt;mysqladmin -u root -proot  -h 127.0.0.1 processlist&lt;/p&gt;
&lt;p&gt;2关于自增字段重新赋初值的问题？&lt;/p&gt;
&lt;p&gt;ALTER TABLE tbl AUTO_INCREMENT = 1;&lt;/p&gt;
&lt;p&gt;3、查看当前最大连接数：&lt;/p&gt;
&lt;p&gt;mysqladmin -uroot -proot variables |find &amp;#8220;max_con&amp;#8221;&lt;/p&gt;
&lt;p&gt;mysqladmin -uroot -proot variables |find &amp;#8220;threads&amp;#8221;&lt;/p&gt;
&lt;p&gt;4、修改最大连接数&lt;/p&gt;
&lt;p&gt;客户端登录：mysql -uroot -proot&lt;/p&gt;
&lt;p&gt;设置新的最大连接数为200：mysql&amp;gt; set GLOBAL max_connections=1000&lt;/p&gt;
&lt;p&gt;显示当前运行的Query：mysql&amp;gt; show processlist&lt;/p&gt;
&lt;p&gt;显示完整的sql    mysql&amp;gt;show full processlist;&lt;/p&gt;
&lt;p&gt;显示当前状态：mysql&amp;gt; show status&lt;/p&gt;
&lt;p&gt;显示所有数据库 mysql&amp;gt;show databases;&lt;/p&gt;
&lt;p&gt;选定数据库 mysql&amp;gt;use database1111；&lt;/p&gt;
&lt;p&gt;显示数据库的表 mysql&amp;gt;show tables;&lt;/p&gt;
&lt;p&gt;退出客户端：mysql&amp;gt; exit&lt;/p&gt;
&lt;p&gt;列出所有表名：SHOW TABLES FROM `lvyeinfo`&lt;/p&gt;
&lt;p&gt;xplain来了解SQL执行的状态。&lt;/p&gt;
&lt;p&gt;explain select * from wp_posts\G;&lt;/p&gt;
&lt;p&gt;使用show status like &amp;#8220;Handler_read%&amp;#8221;; 来了解索引的效果。&lt;/p&gt;
&lt;p&gt;Handler_read_key 值高表示索引效果好，Handler_read_rnd_next值高表示索引低效。&lt;/p&gt;
&lt;p&gt;#######################################################&lt;/p&gt;
&lt;p&gt;mysql的函数：&lt;/p&gt;
&lt;p&gt;SELECT MOD(234, 10);  求余算法&lt;/p&gt;
&lt;p&gt;round 四舍五入；&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662858/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_713.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_713.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>1、查看当前的连接数
mysqladmin -u root -proot  -h 127.0.0.1 processlist
2关于自增字段重新赋初值的问题？
ALTER TABLE tbl AUTO_INCREMENT = 1;
3、查看当前最大连接数：
mysqladmin -uroot -proot variables &amp;#124;find &amp;#8220;max_con&amp;#8221;
mysqladmin -uroot -proot variables &amp;#124;find &amp;#8220;threads&amp;#8221;
4、修改最大连接数
客户端登录：mysql -uroot -proot
设置新的最大连接数为200：mysql&amp;#62; set GLOBAL max_connections=1000
显示当前运行的Query：mysql&amp;#62; show processlist
显示完整的sql    mysql&amp;#62;show full processlist;
显示当前状态：mysql&amp;#62; show status
显示所有数据库 mysql&amp;#62;show databases;
选定数据库 mysql&amp;#62;use database1111；
显示数据库的表 mysql&amp;#62;show tables;
退出客户端：mysql&amp;#62; exit
列出所有表名：SHOW TABLES FROM `lvyeinfo`
xplain来了解SQL执行的状态。
explain select * from wp_posts\G;
使用show status like &amp;#8220;Handler_read%&amp;#8221;; 来了解索引的效果。
Handler_read_key 值高表示索引效果好，Handler_read_rnd_next值高表示索引低效。
#######################################################
mysql的函数：
SELECT MOD(234, 10);  [...]&lt;img src=&quot;http://www1.feedsky.com/t1/594662858/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_713.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>IT杂谈</category><category>mysql</category><pubDate>Sun, 13 Nov 2011 10:48:37 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_713.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=713</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_713.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662858/5429992</fs:itemid></item><item><title>mysql 查询所有表名</title><link>http://www.wenhq.com/article/view_712.html</link><content:encoded>&lt;p&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt; &lt;w:View&gt;Normal&lt;/w:View&gt; &lt;w:Zoom&gt;0&lt;/w:Zoom&gt; &lt;w:PunctuationKerning /&gt; &lt;w:DrawingGridVerticalSpacing&gt;7.8 磅&lt;/w:DrawingGridVerticalSpacing&gt; &lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt; &lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt; &lt;w:ValidateAgainstSchemas /&gt; &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt; &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt; &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt; &lt;w:Compatibility&gt; &lt;w:SpaceForUL /&gt; &lt;w:BalanceSingleByteDoubleByteWidth /&gt; &lt;w:DoNotLeaveBackslashAlone /&gt; &lt;w:ULTrailSpace /&gt; &lt;w:DoNotExpandShiftReturn /&gt; &lt;w:AdjustLineHeightInTable /&gt; &lt;w:BreakWrappedTables /&gt; &lt;w:SnapToGridInCell /&gt; &lt;w:WrapTextWithPunct /&gt; &lt;w:UseAsianBreakRules /&gt; &lt;w:DontGrowAutofit /&gt; &lt;w:UseFELayout /&gt; &lt;/w:Compatibility&gt; &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;&lt;br /&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:普通表格;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:&quot;&quot;;
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:&quot;Times New Roman&quot;;
	mso-fareast-font-family:&quot;Times New Roman&quot;;
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
&lt;/style&gt;
&lt;p&gt; &lt;![endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;mysql&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;使用&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;sql&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;查询表名的两种方法：&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;、&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;show tables;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;、&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&amp;#8217;dbname&amp;#8217;;&amp;#8211;dbname&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;为&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;mysql&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;的数据库名称&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;查询指定数据库中指定表的所有字段名&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;select column_name from information_schema.columns&lt;span&gt; &lt;/span&gt;where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’&lt;/span&gt;&lt;/p&gt;
&lt;div id=&quot;_mcePaste&quot; style=&quot;position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;&quot;&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt; &lt;w:View&gt;Normal&lt;/w:View&gt; &lt;w:Zoom&gt;0&lt;/w:Zoom&gt; &lt;w:PunctuationKerning /&gt; &lt;w:DrawingGridVerticalSpacing&gt;7.8 磅&lt;/w:DrawingGridVerticalSpacing&gt; &lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt; &lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt; &lt;w:ValidateAgainstSchemas /&gt; &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt; &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt; &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt; &lt;w:Compatibility&gt; &lt;w:SpaceForUL /&gt; &lt;w:BalanceSingleByteDoubleByteWidth /&gt; &lt;w:DoNotLeaveBackslashAlone /&gt; &lt;w:ULTrailSpace /&gt; &lt;w:DoNotExpandShiftReturn /&gt; &lt;w:AdjustLineHeightInTable /&gt; &lt;w:BreakWrappedTables /&gt; &lt;w:SnapToGridInCell /&gt; &lt;w:WrapTextWithPunct /&gt; &lt;w:UseAsianBreakRules /&gt; &lt;w:DontGrowAutofit /&gt; &lt;w:UseFELayout /&gt; &lt;/w:Compatibility&gt; &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt; &lt;mce:style&gt;&lt;!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:普通表格; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:&quot;&quot;; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;; 	mso-ansi-language:#0400; 	mso-fareast-language:#0400; 	mso-bidi-language:#0400;} --&gt; &lt;!--[endif]--&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;mysql&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;使用&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;sql&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;查询表名的两种方法：&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;、&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;show tables;&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;、&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&amp;#8217;dbname&amp;#8217;;&amp;#8211;dbname&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;为&lt;/span&gt;&lt;span lang=&quot;EN-US&quot;&gt;mysql&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;的数据库名称&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;查询指定数据库中指定表的所有字段名&lt;/span&gt;&lt;/p&gt;
&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;select column_name from information_schema.columns&lt;span&gt; &lt;/span&gt;where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662859/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_712.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_712.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>mysql使用sql查询表名的两种方法：
1、show tables;
2、SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&amp;#8217;dbname&amp;#8217;;&amp;#8211;dbname为mysql的数据库名称
查询指定数据库中指定表的所有字段名
select column_name from information_schema.columns where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’
 
mysql使用sql查询表名的两种方法：
1、show tables;
2、SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA=&amp;#8217;dbname&amp;#8217;;&amp;#8211;dbname为mysql的数据库名称
 
查询指定数据库中指定表的所有字段名
select column_name from information_schema.columns where table_schema=’YOURDATABASENAME’ and table_name=’YOURTABLENAME’&lt;img src=&quot;http://www1.feedsky.com/t1/594662859/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_712.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>mysql</category><category>数据库</category><pubDate>Sun, 06 Nov 2011 10:48:29 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_712.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=712</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_712.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662859/5429992</fs:itemid></item><item><title>java访问未验证证书的HTTPS</title><link>http://www.wenhq.com/article/view_711.html</link><content:encoded>&lt;p&gt;用http进行连接的，客户端代码比较简单，直接使用URL类进行连接并获取输入流即可。https不需要客户端证书，并且服务器端的证书是已经受信任的也同http一样容易。当验证的证书每年的费用得好几千元，为了省钱，这里主要是说java访问未验证证书的https的访问。&lt;br /&gt;
通常有两种方案：1、将证书导入到TrustStore文件中；2、修改X509证书信任管理器类的实现。推荐使用第一种方案，我们可以尽量让服务器的证书稳定，不在使用中修改就可以了。&lt;br /&gt;
第一步、导出服务器端证书。用ie连接地址，然后出现了证书确认的提示框，点击查看证书－详细信息，点击复制到文件，选择base64编码，导出保存文件为test.cert。&lt;br /&gt;
第二步、把证书从其它文件导入到TrustStore文件中。&lt;br /&gt;
keytool -import -file test.cer -keystore test_store&lt;br /&gt;
第三步、设置java的javax.net.ssl.trustStore的系统属性&lt;br /&gt;
System.setProperty(&amp;#8220;javax.net.ssl.trustStore&amp;#8221;, &amp;#8220;D: \\test_store&amp;#8221;);//注意是绝对路径&lt;br /&gt;
这样通过HttpClient应用接口就可以访问我们自己的https服务了。&lt;br /&gt;
常见错误：javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 异常，有两种情况：&lt;br /&gt;
1、没有设置或者文件路径设置错误；&lt;br /&gt;
2、证书就采用keytool的默认jks类型就可以，否则也会报错，参考内容&lt;br /&gt;
An implementation of PKCS12 as JCA keystore type &amp;#8220;pkcs12&amp;#8243;. Storing trusted anchors in PKCS12 is not supported. Users should store trust anchors in JKS format and save private keys in PKCS12 format.&lt;br /&gt;
来自http://www.cs.nyu.edu/artg/internet/Spring2006/readings/JSSERefGuide.html&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662860/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_711.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_711.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>用http进行连接的，客户端代码比较简单，直接使用URL类进行连接并获取输入流即可。https不需要客户端证书，并且服务器端的证书是已经受信任的也同http一样容易。当验证的证书每年的费用得好几千元，为了省钱，这里主要是说java访问未验证证书的https的访问。
通常有两种方案：1、将证书导入到TrustStore文件中；2、修改X509证书信任管理器类的实现。推荐使用第一种方案，我们可以尽量让服务器的证书稳定，不在使用中修改就可以了。
第一步、导出服务器端证书。用ie连接地址，然后出现了证书确认的提示框，点击查看证书－详细信息，点击复制到文件，选择base64编码，导出保存文件为test.cert。
第二步、把证书从其它文件导入到TrustStore文件中。
keytool -import -file test.cer -keystore test_store
第三步、设置java的javax.net.ssl.trustStore的系统属性
System.setProperty(&amp;#8220;javax.net.ssl.trustStore&amp;#8221;, &amp;#8220;D: \\test_store&amp;#8221;);//注意是绝对路径
这样通过HttpClient应用接口就可以访问我们自己的https服务了。
常见错误：javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: Java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 异常，有两种情况：
1、没有设置或者文件路径设置错误；
2、证书就采用keytool的默认jks类型就可以，否则也会报错，参考内容
An implementation of PKCS12 as JCA keystore type &amp;#8220;pkcs12&amp;#8243;. Storing trusted anchors in PKCS12 is not supported. Users should store trust anchors in JKS format and save private keys in PKCS12 format.
来自http://www.cs.nyu.edu/artg/internet/Spring2006/readings/JSSERefGuide.html&lt;img src=&quot;http://www1.feedsky.com/t1/594662860/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_711.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>tomcat</category><category>java</category><pubDate>Thu, 20 Oct 2011 08:33:30 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_711.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=711</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_711.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662860/5429992</fs:itemid></item><item><title>tomcat中配置ssl</title><link>http://www.wenhq.com/article/view_710.html</link><content:encoded>&lt;p&gt;ssl是安全连接的缩写，也就是通过https访问，tomcat中配置ssl很方便，大致有几步：&lt;/p&gt;
&lt;p&gt;第一、   生成一个证书；&lt;/p&gt;
&lt;p&gt;Java中的keytool就可以很方便生成证书，在命令行先进入java的bin目录，然后执行：&lt;/p&gt;
&lt;p&gt;keytool -genkey -alias tomcat -keyalg RSA -validity 10000 -dname &amp;#8220;cn=127.0.0.1,o=qcb,c=cn&amp;#8221; -keystore tomcat.jks -storepass 123456  -keypass 123456&lt;/p&gt;
&lt;p&gt;就可以生成一个tomcat.jks的证书。&lt;/p&gt;
&lt;p&gt;第二、   修改配置文件；&lt;/p&gt;
&lt;p&gt;&amp;lt;Connector port=&amp;#8221;8443&amp;#8243; maxHttpHeaderSize=&amp;#8221;8192&amp;#8243;&lt;/p&gt;
&lt;p&gt;maxThreads=&amp;#8221;150&amp;#8243; minSpareThreads=&amp;#8221;25&amp;#8243; maxSpareThreads=&amp;#8221;75&amp;#8243;&lt;/p&gt;
&lt;p&gt;enableLookups=&amp;#8221;false&amp;#8221; disableUploadTimeout=&amp;#8221;true&amp;#8221;&lt;/p&gt;
&lt;p&gt;acceptCount=&amp;#8221;100&amp;#8243; scheme=&amp;#8221;https&amp;#8221; secure=&amp;#8221;true&amp;#8221;  keystoreFile=&amp;#8221;tomcat.jks&amp;#8221; keystorePass=&amp;#8221;123456&amp;#8243;&lt;/p&gt;
&lt;p&gt;clientAuth=&amp;#8221;false&amp;#8221; sslProtocol=&amp;#8221;TLS&amp;#8221; /&amp;gt;&lt;/p&gt;
&lt;p&gt;keystoreFile的路径是TOMCAT的安装路径下的tomcat. jks (使用keytool生成的证书库文件，并拷贝到tomcat的安装路径)&lt;/p&gt;
&lt;p&gt;keystoreFile保存了服务器端的证书库，用于客户端认证。&lt;/p&gt;
&lt;p&gt;常用的配置属性：&lt;/p&gt;
&lt;p&gt;clientAuth&lt;/p&gt;
&lt;p&gt;如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书，置该值为true。&lt;/p&gt;
&lt;p&gt;keystoreFile&lt;/p&gt;
&lt;p&gt;如果创建的keystore文件不在Tomcat认为的缺省位置（一个在Tomcat运行的home目录下的叫.keystore的文件），则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE环境变量的相对路径。&lt;/p&gt;
&lt;p&gt;keystorePass&lt;/p&gt;
&lt;p&gt;如果使用了一个与Tomcat预期不同的keystore（和证书）密码，则加入该属性。&lt;/p&gt;
&lt;p&gt;keystoreType&lt;/p&gt;
&lt;p&gt;如果使用了一个PKCS12 keystore，加入该属性。有效值是JKS和PKCS12。&lt;/p&gt;
&lt;p&gt;sslProtocol&lt;/p&gt;
&lt;p&gt;socket使用的加密/解密协议。如果使用的是Sun的JVM，则不建议改变这个值。据说IBM的1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下，使用SSL。&lt;/p&gt;
&lt;p&gt;ciphers&lt;/p&gt;
&lt;p&gt;此socket允许使用的被逗号分隔的密码列表。缺省情况下，可以使用任何可用的密码。&lt;/p&gt;
&lt;p&gt;algorithm&lt;/p&gt;
&lt;p&gt;使用的X509算法。缺省为Sun的实现（SunX509）。对于IBM JVMS应该使用ibmX509。对于其它JVM，参考JVM文档取正确的值。&lt;/p&gt;
&lt;p&gt;truststoreFile&lt;/p&gt;
&lt;p&gt;用来验证客户证书的TrustStore文件。&lt;/p&gt;
&lt;p&gt;truststorePass&lt;/p&gt;
&lt;p&gt;访问TrustStore使用的密码。缺省值是keystorePass。&lt;/p&gt;
&lt;p&gt;truststoreType&lt;/p&gt;
&lt;p&gt;如果使用一个不同于正在使用的KeyStore的TrustStore格式，加入该属性。有效值是JKS和PKCS12。&lt;/p&gt;
&lt;p&gt;第三、   通过浏览器访问验证；&lt;/p&gt;
&lt;p&gt;在地址栏中输入https://localhost:8443&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662861/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_710.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_710.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>ssl是安全连接的缩写，也就是通过https访问，tomcat中配置ssl很方便，大致有几步：
第一、   生成一个证书；
Java中的keytool就可以很方便生成证书，在命令行先进入java的bin目录，然后执行：
keytool -genkey -alias tomcat -keyalg RSA -validity 10000 -dname &amp;#8220;cn=127.0.0.1,o=qcb,c=cn&amp;#8221; -keystore tomcat.jks -storepass 123456  -keypass 123456
就可以生成一个tomcat.jks的证书。
第二、   修改配置文件；
&amp;#60;Connector port=&amp;#8221;8443&amp;#8243; maxHttpHeaderSize=&amp;#8221;8192&amp;#8243;
maxThreads=&amp;#8221;150&amp;#8243; minSpareThreads=&amp;#8221;25&amp;#8243; maxSpareThreads=&amp;#8221;75&amp;#8243;
enableLookups=&amp;#8221;false&amp;#8221; disableUploadTimeout=&amp;#8221;true&amp;#8221;
acceptCount=&amp;#8221;100&amp;#8243; scheme=&amp;#8221;https&amp;#8221; secure=&amp;#8221;true&amp;#8221;  keystoreFile=&amp;#8221;tomcat.jks&amp;#8221; keystorePass=&amp;#8221;123456&amp;#8243;
clientAuth=&amp;#8221;false&amp;#8221; sslProtocol=&amp;#8221;TLS&amp;#8221; /&amp;#62;
keystoreFile的路径是TOMCAT的安装路径下的tomcat. jks (使用keytool生成的证书库文件，并拷贝到tomcat的安装路径)
keystoreFile保存了服务器端的证书库，用于客户端认证。
常用的配置属性：
clientAuth
如果想要Tomcat为了使用这个socket而要求所有SSL客户出示一个客户证书，置该值为true。
keystoreFile
如果创建的keystore文件不在Tomcat认为的缺省位置（一个在Tomcat运行的home目录下的叫.keystore的文件），则加上该属性。可以指定一个绝对路径或依赖$CATALINA_BASE环境变量的相对路径。
keystorePass
如果使用了一个与Tomcat预期不同的keystore（和证书）密码，则加入该属性。
keystoreType
如果使用了一个PKCS12 keystore，加入该属性。有效值是JKS和PKCS12。
sslProtocol
socket使用的加密/解密协议。如果使用的是Sun的JVM，则不建议改变这个值。据说IBM的1.4.1版的TLS协议的实现和一些流行的浏览器不兼容。这种情况下，使用SSL。
ciphers
此socket允许使用的被逗号分隔的密码列表。缺省情况下，可以使用任何可用的密码。
algorithm
使用的X509算法。缺省为Sun的实现（SunX509）。对于IBM JVMS应该使用ibmX509。对于其它JVM，参考JVM文档取正确的值。
truststoreFile
用来验证客户证书的TrustStore文件。
truststorePass
访问TrustStore使用的密码。缺省值是keystorePass。
truststoreType
如果使用一个不同于正在使用的KeyStore的TrustStore格式，加入该属性。有效值是JKS和PKCS12。
第三、   通过浏览器访问验证；
在地址栏中输入https://localhost:8443&lt;img src=&quot;http://www1.feedsky.com/t1/594662861/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_710.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>tomcat</category><category>java</category><pubDate>Mon, 17 Oct 2011 18:11:19 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_710.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=710</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_710.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662861/5429992</fs:itemid></item><item><title>ora-00054的解决办法</title><link>http://www.wenhq.com/article/view_709.html</link><content:encoded>&lt;p&gt;连接oracle运行drop table遇到了ora-00054的错误，提示资源正忙，需要提交transaction, 或者杀掉session.&lt;br /&gt;
ORA-00054:resource busy and acquire with NOWAIT specified&lt;br /&gt;
Cause:Resource interested is busy.&lt;br /&gt;
Action:Retry if necessary.&lt;/p&gt;
&lt;p&gt;此错误发生在resource被锁了，同时又发出一个NOWAIT的命令。例如在update一个表的同时对他重建索引。解决方法，等待 resource的锁释放以后再试。释放的方法可以通过等待事务完成自动释放，也可以强制结束session的方法释放。具体方法根据实际需要来决定，下 面是强制结束session的方法释放此resource的锁：&lt;/p&gt;
&lt;p&gt;查看数据库中那些用户产生了锁，&lt;br /&gt;
select username,sid,serial#,logon_time from v$locked_object,v$session where v$locked_object.session_id=v$session.sid;&lt;/p&gt;
&lt;p&gt;然后kill掉未提交的进程, sid是sid值，serial#是serial#值:&lt;br /&gt;
alter system kill session &amp;#8216;&lt;em&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;sid,serial#&lt;/span&gt;&lt;/em&gt;&amp;#8216; ;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/594662862/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_709.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</content:encoded><wfw:commentRss>http://www.wenhq.com/article/view_709.html/feed</wfw:commentRss><slash:comments>2</slash:comments><description>连接oracle运行drop table遇到了ora-00054的错误，提示资源正忙，需要提交transaction, 或者杀掉session.
ORA-00054:resource busy and acquire with NOWAIT specified
Cause:Resource interested is busy.
Action:Retry if necessary.
此错误发生在resource被锁了，同时又发出一个NOWAIT的命令。例如在update一个表的同时对他重建索引。解决方法，等待 resource的锁释放以后再试。释放的方法可以通过等待事务完成自动释放，也可以强制结束session的方法释放。具体方法根据实际需要来决定，下 面是强制结束session的方法释放此resource的锁：
查看数据库中那些用户产生了锁，
select username,sid,serial#,logon_time from v$locked_object,v$session where v$locked_object.session_id=v$session.sid;
然后kill掉未提交的进程, sid是sid值，serial#是serial#值:
alter system kill session &amp;#8216;sid,serial#&amp;#8216; ;&lt;img src=&quot;http://www1.feedsky.com/t1/594662862/wenhq/feedsky/s.gif?r=http://www.wenhq.com/article/view_709.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;</description><category>oracle</category><category>数据库</category><pubDate>Mon, 29 Aug 2011 21:15:27 +0800</pubDate><author>admin</author><comments>http://www.wenhq.com/article/view_709.html#comments</comments><guid isPermaLink="false">http://www.wenhq.com/?p=709</guid><dc:creator>admin</dc:creator><fs:srclink>http://www.wenhq.com/article/view_709.html</fs:srclink><fs:srcfeed>http://www.wenhq.com/feed</fs:srcfeed><fs:itemid>feedsky/wenhq/~8264497/594662862/5429992</fs:itemid></item></channel></rss>
