<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_值得</title><subtitle type="text">只要有初恋般的热情和宗教般的意志方能成就某种事业－－－路遥！</subtitle><id>http://feed.cnblogs.com/blog/u/20964/rss</id><updated>2012-02-09T07:17:47Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/20964/rss"/><entry><id>http://www.cnblogs.com/yuanermen/archive/2012/02/09/2343993.html</id><title type="text">Lucene 3.5 提供深度分页支持 searchAfter方法 方法的应用</title><summary type="text">最近Lucene项目管理委员会宣布Apache Lucene 3.5.0和Apache Solr 3.5.0已经可以使用。Lucene是一个高性能、支持全文搜索的文本搜索开发库。Solr是一个独立的搜索服务器，其核心使用了Lucene来做索引和搜索。 Lucene 3.5其中一个最新的特征就是深度分页支持，在之前的版本是提供分页的方法，只能根据自己的应用场景去写分页的方法！在《lucene in action》一书中提现两种分页的方法：1、将首次搜索获得的多页搜索结果收集起来并保存在ScoreDocs和IndexSearcher实例中，并在用户换页浏览时展现这几页的结果。 2、每次用户换页浏.</summary><published>2012-02-09T07:13:00Z</published><updated>2012-02-09T07:13:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2012/02/09/2343993.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2012/02/09/2343993.html"/><content type="html">&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 最近Lucene项目管理委员会宣布Apache Lucene 3.5.0和Apache Solr 3.5.0已经可以使用。Lucene是一个高性能、支持全文搜索的文本搜索开发库。Solr是一个独立的搜索服务器，其核心使用了Lucene来做索引和搜索。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;Lucene 3.5&lt;/span&gt;其中一个最新的特征就是&lt;span style="font-size: 16px;"&gt;&lt;strong&gt;深度分页支持，&lt;/strong&gt;&lt;span style="font-size: 14px;"&gt;在之前的版本是提供分页的方法，只能根据自己的应用场景去写分页的方法！在《lucene in action》一书中提现两种分页的方法：&lt;strong&gt;1、将首次搜索获得的多页搜索结果收集起来并保存在ScoreDocs和IndexSearcher实例中，并在用户换页浏览时展现这几页的结果。&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&lt;span style="font-size: 16px;"&gt;&lt;strong&gt;&lt;span style="font-size: 14px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2、每次用户&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&lt;span style="font-size: 16px;"&gt;&lt;span style="font-size: 14px;"&gt;换页浏览&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;时都重新进行查询操作。&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;按这两个方法是可以做出分页的，只是效果及性能影响大小而已！&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 现在&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;Lucene 3.5&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;加入IndexSearcher.searchAfter方法，它在特定的ScoreDoc之后会返回结果。你可以将上一页的最后一个document传递给searchAfter方法，以得到下一页的结果。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 实例如下：&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('f8b93a93-0524-4467-8f74-dc28b5a8af36')"&gt;&#xD;
&lt;div id="cnblogs_code_open_f8b93a93-0524-4467-8f74-dc28b5a8af36" &gt;&#xD;
&lt;pre&gt;&lt;span style="color: #008080;"&gt; 1&lt;/span&gt; @Override&lt;br /&gt;&lt;span style="color: #008080;"&gt; 2&lt;/span&gt;     &lt;span style="color: #0000ff;"&gt;public&lt;/span&gt; List&amp;lt;BlogsDO&amp;gt; searchBlogsList(String content,String bTypeId,String sDate,String eDate,Page page) &lt;span style="color: #0000ff;"&gt;throws&lt;/span&gt; IOException, ParseException {&lt;br /&gt;&lt;span style="color: #008080;"&gt; 3&lt;/span&gt;         List&amp;lt;BlogsDO&amp;gt; blogList=&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; ArrayList&amp;lt;BlogsDO&amp;gt;() ;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 4&lt;/span&gt;         &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; TODO Auto-generated method stub&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 5&lt;/span&gt;          TokenStream tokenStream=&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt; 6&lt;/span&gt;          &lt;span style="color: #0000ff;"&gt;try&lt;/span&gt;{&lt;br /&gt;&lt;span style="color: #008080;"&gt; 7&lt;/span&gt;                 analyzer = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; IKAnalyzer();&lt;br /&gt;&lt;span style="color: #008080;"&gt; 8&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;获取IndexSearcher 对象&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt; 9&lt;/span&gt;                 IndexSearcher indexSearch =commonIndexWriter.getIndexSearcher();&lt;br /&gt;&lt;span style="color: #008080;"&gt;10&lt;/span&gt;                 QueryParser queryParser= commonIndexWriter.getQueryParser();&lt;br /&gt;&lt;span style="color: #008080;"&gt;11&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;搜索条件的结合&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;12&lt;/span&gt;                 String str="";&lt;br /&gt;&lt;span style="color: #008080;"&gt;13&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(StringUtils.isNotEmpty(content)){&lt;br /&gt;&lt;span style="color: #008080;"&gt;14&lt;/span&gt;                     str="title:"+content+" content:"+content;&lt;br /&gt;&lt;span style="color: #008080;"&gt;15&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;16&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(StringUtils.isNotEmpty(bTypeId) &amp;amp;&amp;amp; !bTypeId.equals("-1")){&lt;br /&gt;&lt;span style="color: #008080;"&gt;17&lt;/span&gt;                    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(StringUtils.isNotEmpty(str)){&lt;br /&gt;&lt;span style="color: #008080;"&gt;18&lt;/span&gt;                      str=str+" AND bTypeId:"+bTypeId;&lt;br /&gt;&lt;span style="color: #008080;"&gt;19&lt;/span&gt;                    }&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;20&lt;/span&gt;                      str=str+" bTypeId:"+bTypeId;&lt;br /&gt;&lt;span style="color: #008080;"&gt;21&lt;/span&gt;                    }&lt;br /&gt;&lt;span style="color: #008080;"&gt;22&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;23&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(StringUtils.isNotEmpty(sDate)){&lt;br /&gt;&lt;span style="color: #008080;"&gt;24&lt;/span&gt;                      &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(StringUtils.isNotEmpty(str)){&lt;br /&gt;&lt;span style="color: #008080;"&gt;25&lt;/span&gt;                          str=str+" AND gmt_create:["+sDate+" TO "+eDate+"]";&lt;br /&gt;&lt;span style="color: #008080;"&gt;26&lt;/span&gt;                      }&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;27&lt;/span&gt;                          str=str+" gmt_create:["+sDate+" TO "+eDate+"]";&lt;br /&gt;&lt;span style="color: #008080;"&gt;28&lt;/span&gt;                      }&lt;br /&gt;&lt;span style="color: #008080;"&gt;29&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;30&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置搜索条件&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;31&lt;/span&gt;                 Query query=queryParser.parse(str);&lt;br /&gt;&lt;span style="color: #008080;"&gt;32&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;查询搜索引擎&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;33&lt;/span&gt;                 TopDocs result = indexSearch.search(query, 10);&lt;br /&gt;&lt;span style="color: #008080;"&gt;34&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;上一页的最后一个document索引&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;35&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; index=(page.getCurrentPage()-1)*page.getPerPageSize();&lt;br /&gt;&lt;span style="color: #008080;"&gt;36&lt;/span&gt;                 ScoreDoc scoreDoc=&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;37&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;如果当前页是第一页面scoreDoc=null。&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;38&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(index&amp;gt;0){&lt;br /&gt;&lt;span style="color: #008080;"&gt;39&lt;/span&gt;                     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;因为索引是从0开始所以要index-1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;40&lt;/span&gt;                     scoreDoc=result.scoreDocs[index-1];&lt;br /&gt;&lt;span style="color: #008080;"&gt;41&lt;/span&gt;                 }&lt;br /&gt;&lt;span style="color: #008080;"&gt;42&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;分页处理&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;43&lt;/span&gt;                 TopDocs hits= indexSearch.searchAfter(scoreDoc, query, page.getPerPageSize());&lt;br /&gt;&lt;span style="color: #008080;"&gt;44&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;设置分页的总记录数&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;45&lt;/span&gt;                 page.setCounts(hits.totalHits);&lt;br /&gt;&lt;span style="color: #008080;"&gt;46&lt;/span&gt;                 BlogsDO blog=&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080;"&gt;47&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;循环hits.scoreDocs数据，并使用indexSearch.doc方法把Document还原，再拿出对应的字段的值&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;48&lt;/span&gt;                 &lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; hits.scoreDocs.length; i++) {&lt;br /&gt;&lt;span style="color: #008080;"&gt;49&lt;/span&gt;                     ScoreDoc sdoc = hits.scoreDocs[i];&lt;br /&gt;&lt;span style="color: #008080;"&gt;50&lt;/span&gt;                     Document doc = indexSearch.doc(sdoc.doc);&lt;br /&gt;&lt;span style="color: #008080;"&gt;51&lt;/span&gt;                     blog=&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; BlogsDO();&lt;br /&gt;&lt;span style="color: #008080;"&gt;52&lt;/span&gt;                     String title=doc.get("title");&lt;br /&gt;&lt;span style="color: #008080;"&gt;53&lt;/span&gt;                     String mark=doc.get("content");&lt;br /&gt;&lt;span style="color: #008080;"&gt;54&lt;/span&gt;                     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加亮处理&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;55&lt;/span&gt;                     SimpleHTMLFormatter simplehtml=&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; SimpleHTMLFormatter("&amp;lt;font color='red'&amp;gt;", "&amp;lt;/font&amp;gt;");&lt;br /&gt;&lt;span style="color: #008080;"&gt;56&lt;/span&gt;                     Highlighter highlighter = &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; Highlighter(simplehtml,&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; QueryScorer(query));  &lt;br /&gt;&lt;span style="color: #008080;"&gt;57&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(title!=&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;){&lt;br /&gt;&lt;span style="color: #008080;"&gt;58&lt;/span&gt;                             tokenStream = analyzer.tokenStream("title",&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; StringReader(title));    &lt;br /&gt;&lt;span style="color: #008080;"&gt;59&lt;/span&gt;                             String highLightText = highlighter.getBestFragment(tokenStream, title);&lt;br /&gt;&lt;span style="color: #008080;"&gt;60&lt;/span&gt;                             blog.setTitle(highLightText==&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;?title:highLightText);&lt;br /&gt;&lt;span style="color: #008080;"&gt;61&lt;/span&gt;                     }&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;62&lt;/span&gt;                         blog.setTitle(title);&lt;br /&gt;&lt;span style="color: #008080;"&gt;63&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;64&lt;/span&gt;                     &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt;加亮处理&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;65&lt;/span&gt;                     &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt;(mark!=&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;){&lt;br /&gt;&lt;span style="color: #008080;"&gt;66&lt;/span&gt;                         tokenStream = analyzer.tokenStream("content",&lt;span style="color: #0000ff;"&gt;new&lt;/span&gt; StringReader(mark));    &lt;br /&gt;&lt;span style="color: #008080;"&gt;67&lt;/span&gt;                         String highLightText = highlighter.getBestFragment(tokenStream, mark);&lt;br /&gt;&lt;span style="color: #008080;"&gt;68&lt;/span&gt;                         blog.setContent(highLightText==&lt;span style="color: #0000ff;"&gt;null&lt;/span&gt;?mark:highLightText);&lt;br /&gt;&lt;span style="color: #008080;"&gt;69&lt;/span&gt;                     }&lt;span style="color: #0000ff;"&gt;else&lt;/span&gt;{&lt;br /&gt;&lt;span style="color: #008080;"&gt;70&lt;/span&gt;                         blog.setContent(mark);&lt;br /&gt;&lt;span style="color: #008080;"&gt;71&lt;/span&gt;                     }&lt;br /&gt;&lt;span style="color: #008080;"&gt;72&lt;/span&gt;                     blog.setBlogsId(Integer.valueOf(doc.get("blogsId")));&lt;br /&gt;&lt;span style="color: #008080;"&gt;73&lt;/span&gt;                     blog.setNickName(doc.get("nickName"));&lt;br /&gt;&lt;span style="color: #008080;"&gt;74&lt;/span&gt;                     blog.setbTypeId(doc.get("bTypeId"));&lt;br /&gt;&lt;span style="color: #008080;"&gt;75&lt;/span&gt;                     blog.setbTypeName(doc.get("bTypeName"));&lt;br /&gt;&lt;span style="color: #008080;"&gt;76&lt;/span&gt;                     blog.setRevDate(doc.get("gmt_create"));&lt;br /&gt;&lt;span style="color: #008080;"&gt;77&lt;/span&gt;                     SimpleDateFormat sdf =  &lt;span style="color: #0000ff;"&gt;new&lt;/span&gt;  SimpleDateFormat("yyyyMMddHHmmss"); &lt;br /&gt;&lt;span style="color: #008080;"&gt;78&lt;/span&gt;                     blog.setGmtCreate(sdf.parse(doc.get("gmt_create")));&lt;br /&gt;&lt;span style="color: #008080;"&gt;79&lt;/span&gt;                     blogList.add(blog);&lt;br /&gt;&lt;span style="color: #008080;"&gt;80&lt;/span&gt;                 }    &lt;br /&gt;&lt;span style="color: #008080;"&gt;81&lt;/span&gt;                 indexSearch.close();&lt;br /&gt;&lt;span style="color: #008080;"&gt;82&lt;/span&gt;          }&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (java.text.ParseException e) {&lt;br /&gt;&lt;span style="color: #008080;"&gt;83&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; TODO Auto-generated catch block&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;84&lt;/span&gt;                 e.printStackTrace();&lt;br /&gt;&lt;span style="color: #008080;"&gt;85&lt;/span&gt;          }&lt;span style="color: #0000ff;"&gt;catch&lt;/span&gt; (InvalidTokenOffsetsException e) {&lt;br /&gt;&lt;span style="color: #008080;"&gt;86&lt;/span&gt;                 &lt;span style="color: #008000;"&gt;//&lt;/span&gt;&lt;span style="color: #008000;"&gt; TODO Auto-generated catch block&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080;"&gt;87&lt;/span&gt;                 e.printStackTrace();&lt;br /&gt;&lt;span style="color: #008080;"&gt;88&lt;/span&gt;          } &lt;br /&gt;&lt;span style="color: #008080;"&gt;89&lt;/span&gt;          &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; blogList;&lt;/pre&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;Lucene 3.5&lt;/span&gt;&lt;/span&gt; 在学习中，请多多指教！呵呵！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000; font-family: Verdana,sans-serif,宋体; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-indent: 28px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; background-color: #ffffff; display: inline ! important; float: none;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2343993.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2012/02/09/2343993.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261391.html</id><title type="text">Ubuntu安装后root 用户无法使用的解决方法</title><summary type="text">Ubuntu安装后root是没有默认的密码的，因为你还没给root设置密码，你第一个 user 是在 admin 组，他可以给 root 设置密码，所以大家不要费脑筋想当初自己设的密码是 多少了，因为根本就不存在。 端口输入如下命令：sudo passwd root[sudo] password for you ：---&amp;gt; 输入你的密码，不回显Enter new UNIX password: --- &amp;gt; 设置root 密码Retype new UNIX password: --&amp;gt; 重复</summary><published>2011-11-24T03:27:00Z</published><updated>2011-11-24T03:27:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261391.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261391.html"/><content type="html">&lt;pre&gt;&lt;span&gt;&amp;nbsp;Ubuntu安装后root是没有默认的密码的，因为你还没给root设置密码，你第一个 user 是在 admin 组，他可以给 root 设置密码，所以大家不要费脑筋想当初自己设的密码是 &amp;nbsp; &amp;nbsp; 多少了，因为根本就不存在。&lt;/span&gt;&lt;/pre&gt;&#xD;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp; 端口输入如下命令：&lt;br /&gt;&amp;nbsp;&amp;nbsp;sudo passwd root&lt;br /&gt;&amp;nbsp;&amp;nbsp;[sudo] password for you ：---&amp;gt; 输入你的密码，不回显&lt;br /&gt;&amp;nbsp;&amp;nbsp;Enter new UNIX password: --- &amp;gt; 设置root 密码&lt;br /&gt;&amp;nbsp;&amp;nbsp;Retype new UNIX password: --&amp;gt; 重复&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2261391.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261391.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261387.html</id><title type="text">WinSCP无法连接 ubuntu 的解决方法</title><summary type="text">ubuntu默认不安装sshd服务需要sudo apt-get install ssh你可以在ubuntu本机ssh localhost测试是否成功安装了ssh因为WinSCP是基于ssh的sftp来连接的</summary><published>2011-11-24T03:25:00Z</published><updated>2011-11-24T03:25:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261387.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261387.html"/><content type="html">&lt;pre&gt;ubuntu默认不安装sshd服务&#xD;
需要sudo apt-get install ssh&#xD;
你可以在ubuntu本机ssh localhost测试是否成功安装了ssh&#xD;
因为WinSCP是基于ssh的sftp来连接的 &lt;/pre&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2261387.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/11/24/2261387.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/09/02/2163477.html</id><title type="text">Linux上安装ImageMagick和JMagick</title><summary type="text">一、软件列表 ImageMagick-6.7.1-0.tar.gz jmagick-6.4.0-src.tar.gz jpegsrc.v6b.tar.gz libpng-1.5.4.tar.gz tiff-3.8.2.tar.gz freetype-2.3.11.tar.gz zlib-1.2.5.tar.bz2二、安装过程注意：如果安装过程中因为gcc导致不能安装时，使用yuminstallgcc*或者yumupdate1、安装jpeg支持软件jpegsrc.v6b.tar.gztarzvxfjpegsrc.v6b.tar.gzcdjpeg-6b./configure--ena...</summary><published>2011-09-02T03:01:00Z</published><updated>2011-09-02T03:01:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/09/02/2163477.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/09/02/2163477.html"/><content type="html">&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-weight: bold; font-size: 10.5pt; font-family: 宋体;"&gt;一、软件列表&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;　　ImageMagick-6.7.1-0.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;　　&lt;/span&gt;jmagick-6.4.0-src.tar.gz&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;　　jpegsrc.v6b.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;　　libpng-1.5.4.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;　 &amp;nbsp;tiff-3.8.2.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span&gt;　 &amp;nbsp;freetype-2.3.11.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;zlib-1.2.5.tar.bz2&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-weight: bold; font-size: 10.5pt; font-family: 宋体;"&gt;二、安装过程&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-weight: bold; font-size: 10.5pt; font-family: 宋体;"&gt;注意：如果安装过程中因为gcc导致不能安装时，使用&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;yum&amp;nbsp;install&amp;nbsp;gcc*&lt;/span&gt;&lt;span style="color: #ff0000; font-weight: bold; font-size: 10.5pt; font-family: 宋体;"&gt;或者&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;yum&amp;nbsp;update&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;1、安装jpeg支持软件&lt;/span&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;jpegsrc&lt;/span&gt;.v6b.tar.gz&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tar&amp;nbsp;zvxf&amp;nbsp;&lt;/span&gt;&lt;span&gt;jpegsrc.v6b.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd&amp;nbsp;jpeg-6b&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;./configure&amp;nbsp;--enable-shared&amp;nbsp;--enable-static&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;install&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;2、&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;安装&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;png&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;支持&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;软件&lt;/span&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;libpng-&lt;/span&gt;&lt;span&gt;1.5.4.tar.gz&lt;/span&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;［&lt;/span&gt;&lt;span style="color: #ff0000; font-weight: bold; font-size: 9pt; font-family: 宋体;"&gt;安装libpng1.4.0以上包后&lt;/span&gt;&lt;span style="color: #ff0000; font-weight: bold; font-size: 9pt; font-family: 宋体;"&gt;ImageMagick&lt;/span&gt;&lt;span style="color: #ff0000; font-weight: bold; font-size: 9pt; font-family: 宋体;"&gt;安装失败&lt;/span&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;］（安装支持软件&lt;/span&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;zlib-1.2.5&lt;/span&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;）&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd&amp;nbsp;zlib-1.2.5&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;CFLAGS="-O3&amp;nbsp;-fPIC"&amp;nbsp;./configure&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;//&lt;span&gt;使用&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;64&lt;/span&gt;&lt;span&gt;位元的方法进行编译&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; make&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;install&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tar&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;zvxf&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;libpng-1.5.4.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd&amp;nbsp;libpng-1.5.4&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;./configure&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;make&amp;nbsp;install&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;3、&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;安装&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tiff&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;支持&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;软件&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tar&amp;nbsp;zvxf&amp;nbsp;tiff-3.8.2.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd&amp;nbsp;tiff-3.8.2&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;./configure&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;install&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;4、安装freetype字体支持软件&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;freetype-2.3.11.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tar&amp;nbsp;zxvf&amp;nbsp;freetype-2.3.11.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd&amp;nbsp;freetype-2.3.11&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;./configure&amp;nbsp;--prefix=/usr/local/freetype-2.3.11&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;install&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;5、安装&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;ImageMagick-&lt;/span&gt;&lt;span&gt;6.7.1-0.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tar&amp;nbsp;zvxf&amp;nbsp;ImageMagick-&lt;/span&gt;&lt;span&gt;6.7.1-0.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd ImageMagick-6.7.1-0&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;./configure&amp;nbsp;--prefix=/usr/local/ImageMagick&amp;nbsp;--enable-share&amp;nbsp;LDFLAGS="-L/usr/lib"&amp;nbsp;CPPFLAGS="- &amp;nbsp; I/usr/include"&amp;nbsp;--enable-lzw&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;install&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;6、&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.infomall.cn/cgi-bin/mallgate/20040514/http:/www.yeo.nu/jmagick/" style="color: #108ac6; text-decoration: underline;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;JMagick&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;是一个开源API，利用JNI(Java&amp;nbsp;Native&amp;nbsp;Interface)技术实现了对&lt;/span&gt;&lt;span&gt;&lt;a href="http://www.infomall.cn/cgi-bin/mallgate/20040514/http:/www.imagemagick.org/" style="color: #108ac6; text-decoration: underline;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;ImageMagick&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;API的Java访问接口&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;。安装&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;jmagick-6.4.0-src.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;tar&amp;nbsp;xvfz&amp;nbsp;jmagick-6.4.0-src.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;cd&amp;nbsp;6.4.0&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;./configure&amp;nbsp;--prefix=/usr/local/jmagick-6.4.0&amp;nbsp;--with-magick-home=/usr/local/ImageMagick&amp;nbsp;--enable-share&amp;nbsp;--enable-static&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;make&amp;nbsp;install&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;将JMagic库加入到共享库中&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;vi&amp;nbsp;/etc/profile&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;Mac&amp;nbsp;OS时:&lt;/span&gt;&lt;span style="color: #000000; font-size: 12pt; font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;export&amp;nbsp;DYLD_LIBRARY_PATH=&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;$DYLD&amp;nbsp;_LIBRARY_PATH:/usr/local/jmagick-6.4.0/lib:/usr/local/ImageMagick/lib&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;Linux系统时：&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;export&amp;nbsp;LD_LIBRARY_PATH&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;=&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;$LD_LIBRARY_PATH:/usr/local/jmagick-6.4.0/lib:/usr/local/ImageMagick/lib&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-align: left; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;在&lt;span style="font-family: 'Times New Roman';"&gt;export&amp;nbsp;CLASSPATH&lt;/span&gt;&lt;span&gt;中加入&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;:/usr/local/jmagick-6.4.0/lib&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;source&amp;nbsp;/etc/profile&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span&gt;三、测试&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;convert&amp;nbsp;logo:&amp;nbsp;logo.jpg&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;convert&amp;nbsp;logo:&amp;nbsp;logo.png&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 'Times New Roman';"&gt;convert&amp;nbsp;logo:&amp;nbsp;logo.&lt;/span&gt;&lt;span style="color: #ff0000; font-size: 10.5pt; font-family: 宋体;"&gt;gif&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-indent: 15.75pt; padding: 0px;"&gt;&lt;span style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 25px;"&gt;&lt;span style="color: #ff0000;"&gt;convert -geometry 600x200 1503.jpg 1503_small.gif&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;div &gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;将其拷贝出来，看是否能显示&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-weight: bold; font-size: 10.5pt; font-family: 宋体;"&gt;四、在JAVA工程中使用Jmagick压缩生成图片&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span  style="color: #006699; text-decoration: none; font-size: 10pt; font-family: 宋体;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;将&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;jmagick-6.4.0.jar&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;拷贝至jre的lib&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;&amp;nbsp;/ext&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;下，&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;比如&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;/usr/java/jdk1.6.0_12/jre/lib/ext&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;/&lt;/span&gt;&lt;span style="font-size: 10.5pt; font-family: 'Times New Roman';"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; font-size: 10.5pt; font-family: 宋体;"&gt;jmagick-6.4.0.jar&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; text-align: left; padding: 0px;"&gt;&lt;strong style="font-weight: bold;"&gt;&lt;span&gt;五、下载文件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;1、&amp;nbsp;&lt;span&gt;ImageMagick-6.7.1-0.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735811.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735811.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;2、&lt;span&gt;jmagick－6.4.0－src.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735818.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735818.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;&amp;nbsp; 3、jpegsrc.v6b.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735814.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735814.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;&amp;nbsp; 4、libpng-1.5.4.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735815.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735815.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span style="color: #000000; font-size: 9pt; font-family: 宋体;"&gt;&amp;nbsp; 5、tiff-3.8.2.tar.gz&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735816.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735816.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;6、freetype-2.3.11.tar.gz&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735810.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735810.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;7、zlib-1.2.5.tar.bz2&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;a href="http://www.kuaipan.cn/file/id_17085478687735817.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735817.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;&lt;strong style="font-weight: bold;"&gt;&lt;span style="font-size: medium;"&gt;六、linux要安装64位的JDK&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p  style="margin-top: 0pt; margin-right: 0px; margin-bottom: 0pt; margin-left: 0px; padding: 0px;"&gt;下载地址：&lt;a href="http://www.kuaipan.cn/file/id_17085478687735812.html" style="color: #108ac6; text-decoration: underline;"&gt;http://www.kuaipan.cn/file/id_17085478687735812.html&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p style="padding: 0px; margin: 0px;"&gt;&lt;strong style="font-weight: bold;"&gt;&lt;span style="font-size: medium;"&gt;七、安装遇到的问题及解决方法&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2163477.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/09/02/2163477.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/07/12/2104685.html</id><title type="text">struts2 上传 文件 注意问题</title><summary type="text">1、struts.multipart.saveDir 指明了在上传文件时建立的目录 struts.xml配置文件中增加如下： &amp;lt;constant name=&amp;quot;struts.multipart.saveDir&amp;quot; value=&amp;quot;c:/tem&amp;quot;&amp;gt;&amp;lt;/constant&amp;gt; 是在c:/tem 下建立的文件。 struts.properties 配置文件中增加如下： struts.multipart.saveDir = c:/tmp 是在c:/tem 下建立的文件。2、 struts.multipart.maxSize 指明了上传文件的最大值 </summary><published>2011-07-12T12:55:00Z</published><updated>2011-07-12T12:55:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/07/12/2104685.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/07/12/2104685.html"/><content type="html">&lt;p&gt;1、struts.multipart.saveDir 指明了在上传文件时建立的目录&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struts.xml配置文件中增加如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;constant name="struts.multipart.saveDir" value="c:/tem"&amp;gt;&amp;lt;/constant&amp;gt; 是在c:/tem 下建立的文件。&lt;/p&gt;&#xD;
&lt;p&gt;struts.properties &lt;span style="color: #000000;"&gt;配置文件中增加如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;struts.multipart.saveDir = c:/tmp&amp;nbsp; 是在c:/tem 下建立的文件。&lt;/p&gt;&#xD;
&lt;p&gt;2、 struts.multipart.maxSize 指明了上传文件的最大值&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt; struts.xml配置文件中增加如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;constant name="struts.multipart.maxSize" value="2000000"&amp;gt;&amp;lt;/constant&amp;gt;&amp;nbsp; &lt;span style="color: #000000;"&gt;value&lt;/span&gt;是单位是字节&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp; struts.properties &lt;span style="color: #000000;"&gt;配置文件中增加如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;struts.multipart.maxSize=&lt;span style="color: #000000;"&gt;2000000&lt;/span&gt;&amp;nbsp; &lt;span style="color: #000000;"&gt;单位是字节&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;3、表单的属性上指明： enctype="multipart/form-data" &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;比如：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;form action="infor_Add" method="post" enctype="multipart/form-data"&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;span id="note"&amp;gt;附件一：&amp;lt;/span&amp;gt;&amp;lt;input type="file" name="file" id="upfile"/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;span id="note"&amp;gt;附件二：&amp;lt;/span&amp;gt;&amp;lt;input type="file" name="file" id="upfile"/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;span id="note"&amp;gt;附件三：&amp;lt;/span&amp;gt;&amp;lt;input type="file" name="file" id="upfile"/&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;p&amp;gt;&amp;lt;input type="submit"&amp;nbsp; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2104685.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/07/12/2104685.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/06/22/2087596.html</id><title type="text">Oracle中实现中文字符串的首字母简拼转换</title><summary type="text">/***实现中文字符串的首字母简拼转换*@in i_str nvarchar2 要转换的字符串*@return result varchar2 返回值*/create or replace function CHS2Short(i_str in nvarchar2) return varchar2 is c1 varchar2(5); c2 varchar2(2); p number(6); n1 integer; n2 integer; result varchar2(32767);beginp:=length(i_str);--dbms_output.put_line(i_str||&amp;#3</summary><published>2011-06-22T13:01:00Z</published><updated>2011-06-22T13:01:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/06/22/2087596.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/06/22/2087596.html"/><content type="html">&lt;p&gt;/**&lt;br /&gt;&amp;nbsp;*实现中文字符串的首字母简拼转换&lt;br /&gt;&amp;nbsp;*@in i_str nvarchar2 要转换的字符串&lt;br /&gt;&amp;nbsp;*@return result varchar2 返回值&lt;br /&gt;&amp;nbsp;*/&lt;br /&gt;create or replace function CHS2Short(i_str in nvarchar2) return varchar2 is&lt;br /&gt;&amp;nbsp; c1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; varchar2(5);&lt;br /&gt;&amp;nbsp; c2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; varchar2(2);&lt;br /&gt;&amp;nbsp; p&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; number(6);&lt;br /&gt;&amp;nbsp; n1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer;&lt;br /&gt;&amp;nbsp; n2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer;&lt;br /&gt;&amp;nbsp; result&amp;nbsp;&amp;nbsp; varchar2(32767);&lt;br /&gt;begin&lt;br /&gt;&lt;br /&gt;p:=length(i_str);&lt;br /&gt;--dbms_output.put_line(i_str||':'||p);&lt;br /&gt;for i in 1..p&lt;br /&gt;loop&lt;br /&gt;c2:=substr(i_str,i,1);&lt;br /&gt;n1:=floor(ascii(c2)/256);&lt;br /&gt;n2:=mod(ascii(c2),256);&lt;br /&gt;if n1=0 and n2&amp;lt;=129 then c1:=c2;&lt;br /&gt;elsif n2&amp;lt;&amp;gt;127 and n2&amp;lt;&amp;gt;255 and not (n2 between 0 and 63)&lt;br /&gt;then&lt;br /&gt;select&amp;nbsp; case &lt;br /&gt;when c2&amp;gt;='丂' and c2&amp;lt;'芭'then 'A'　&lt;br /&gt;when c2&amp;gt;='芭' and c2&amp;lt;'擦'then 'B'&lt;br /&gt;when c2&amp;gt;='擦' and c2&amp;lt;'搭'then 'C'&lt;br /&gt;when c2&amp;gt;='搭' and c2&amp;lt;'蛾'then 'D'&lt;br /&gt;when c2&amp;gt;='蛾' and c2&amp;lt;'发'then 'E'&lt;br /&gt;when c2&amp;gt;='发' and c2&amp;lt;'噶'then 'F'&lt;br /&gt;when c2&amp;gt;='噶' and c2&amp;lt;'哈'then 'G'&lt;br /&gt;when c2&amp;gt;='哈' and c2&amp;lt;'击'then 'H'&lt;br /&gt;when c2&amp;gt;='击' and c2&amp;lt;'喀'then 'J'&lt;br /&gt;when c2&amp;gt;='喀' and c2&amp;lt;'垃'then 'K'&lt;br /&gt;when c2&amp;gt;='垃' and c2&amp;lt;'妈'then 'L'&lt;br /&gt;when c2&amp;gt;='妈' and c2&amp;lt;'拿'then 'M'&lt;br /&gt;when c2&amp;gt;='拿' and c2&amp;lt;'哦'then 'N'&lt;br /&gt;when c2&amp;gt;='哦' and c2&amp;lt;'啪'then 'O'&lt;br /&gt;when c2&amp;gt;='啪' and c2&amp;lt;'期'then 'P'&lt;br /&gt;when c2&amp;gt;='期' and c2&amp;lt;'然'then 'Q'&lt;br /&gt;when c2&amp;gt;='然' and c2&amp;lt;'撒'then 'R'&lt;br /&gt;when c2&amp;gt;='撒' and c2&amp;lt;'塌'then 'S'&lt;br /&gt;when c2&amp;gt;='塌' and c2&amp;lt;'挖'then 'T'&lt;br /&gt;when c2&amp;gt;='挖' and c2&amp;lt;'稀'then 'W'&lt;br /&gt;when c2&amp;gt;='稀' and c2&amp;lt;'压'then 'X'&lt;br /&gt;when c2&amp;gt;='压' and c2&amp;lt;'匝'then 'Y'&lt;br /&gt;when c2&amp;gt;='匝' and c2&amp;lt;='鼱' then 'Z'&lt;br /&gt;end&lt;br /&gt;into c1 &lt;br /&gt;from dual;&lt;br /&gt;else&lt;br /&gt;c1:='error';&lt;br /&gt;end if;&lt;br /&gt;result:=result||c1;&lt;br /&gt;end loop;&lt;br /&gt;dbms_output.put_line(i_str||':'||result);&lt;br /&gt;return result;&lt;br /&gt;end CHS2Short;&lt;/p&gt;&#xD;
&#xD;
&lt;p&gt;测试：&lt;/p&gt;&#xD;
&lt;p&gt;select CHS2Short('中国') as r from dual ;&lt;/p&gt;&#xD;
&lt;p&gt;结果：&lt;/p&gt;&#xD;
&lt;p&gt;ZG&lt;/p&gt;&#xD;
&lt;p&gt;测试OK!&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2087596.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/06/22/2087596.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/05/19/2051153.html</id><title type="text">配置Memcache服务器并实现主从复制功能（repcached）(转)</title><summary type="text">1、repcached介绍repcached是日本人开发的实现memcached复制功能，它是一个单 master单 slave的方案，但它的 master/slave都是可读写的，而且可以相互同步，如果 master坏掉， slave侦测到连接断了，它会自动 listen而成为 master；而如果 slave坏掉， master也会侦测到连接断，它就会重新 listen等待新的 slave加入2、安装在两台服务器上分别安装memcached服务，另注本文libevent的版本为：libevent-1.4.13，下载地址:http://www.monkey.org/~provos/libev</summary><published>2011-05-19T07:42:00Z</published><updated>2011-05-19T07:42:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/05/19/2051153.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/05/19/2051153.html"/><content type="html">&lt;div &gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;1、repcached介绍&lt;br /&gt;repcached是日本人开发的实现memcached复制功能，它是一个单 master单 slave的方案，但它的 master/slave都是可读写的，而且可以相互同步，如果 master坏掉， slave侦测到连接断了，它会自动 listen而成为 master；而如果 slave坏掉， master也会侦测到连接断，它就会重新 listen等待新的 slave加入&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;2、安装&lt;br /&gt;在两台服务器上分别安装memcached服务，另注本文libevent的版本为：libevent-1.4.13，下载地址:&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://www.monkey.org/%7Eprovos/libevent-1.4.13-stable.tar.gz" style="text-decoration: none; color: #006699;"&gt;http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz&lt;/a&gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;repcached有两种方式：&lt;br /&gt;方式一、下载对应的repcached版本&lt;br /&gt;#wget&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz" style="text-decoration: none; color: #006699;"&gt;http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz&lt;/a&gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;#tar zxf memcached-1.2.8-repcached-2.2.tar.gz&lt;br /&gt;#cd memcached-1.2.8-repcached-2.2&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;【方式二、下载对应patch版本&lt;br /&gt;#wget&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://downloads.sourceforge.net/repcached/repcached-2.2-1.2.8.patch.gz" style="text-decoration: none; color: #006699;"&gt;http://downloads.sourceforge.net/repcached/repcached-2.2-1.2.8.patch.gz&lt;/a&gt;&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;#gzip -cd ../repcached-2.2-1.2.8.patch.gz | patch -p1】&lt;br /&gt;#./configure &amp;ndash;enable-replication&lt;br /&gt;# make&lt;br /&gt;# make install&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;3、启动：&lt;br /&gt;启动master&lt;br /&gt;#/usr/local/bin/memcached -v -l 192.168.0.160 -p 11211 -uroot&lt;br /&gt;replication: listen (master监听)&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;启动salve&lt;br /&gt;#/usr/local/bin/memcached -v -l 192.168.0.163 -p 11213 -uroot -x 192.168.0.160 -X 11212&lt;br /&gt;replication: connect (peer=192.168.0.160:11212)&lt;br /&gt;replication: marugoto copying&lt;br /&gt;replication: start&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;启动正常后，master将accept。&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;4、测试：&lt;br /&gt;操作master&lt;br /&gt;#telnet 192.168.0.160 11211&lt;br /&gt;#set key1 0 0 3&lt;br /&gt;blog.5sail.com&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;查看slave&lt;br /&gt;#telnet 192.168.0.163 11213&lt;br /&gt;#get key1&lt;br /&gt;如果正常显示blog.5sail.com，则表示repcached配置成功&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;5、应用：&lt;br /&gt;可以实现cache冗余，避免因cache服务器down掉而导致数据丢失。&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;&lt;span style="line-height: 21px; color: #ff0000;"&gt;注意：如果master down机，slave接管并成为master，这时down机的master只能启用slave,他们之间互换角色，才能保持复制功能。换句话说，master没有抢占功能。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 1em 0px 0.5em; color: #444444; padding: 0px;"&gt;&lt;span style="line-height: 21px; color: #ff0000;"&gt;&lt;span style="color: #000000;"&gt;来源：&lt;/span&gt;&lt;/span&gt;&lt;a href="http://blog.csdn.net/sanshiqiduer/archive/2011/04/20/6336902.aspx"&gt;http://blog.csdn.net/sanshiqiduer/archive/2011/04/20/6336902.aspx&lt;/a&gt;&lt;span style="line-height: 21px; color: #ff0000;"&gt;&lt;span style="color: #000000;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;/div&gt;&#xD;
&lt;br  /&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2051153.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/05/19/2051153.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/03/31/2000993.html</id><title type="text">linux 下 Nginx 0.8.40的安装</title><summary type="text">Nginx作为一个后起之秀，他的迷人之处已经让很多人都投入了他的怀抱。配置简单，实现原理简单。做一个负载平衡的再好不过了。一、依赖的程序1. gzip module requires zlib library2. rewrite module requires pcre library3. ssl support requires openssl library二、依赖的程序的安装的方法有两种：一种是比较原始的方法一个一个来安装，另一个是最好的方法用YUM一次性安装（1）、方法一如下：这下方法原始、麻烦、容易出错。不过安装的过程可以熟悉一下Linux 命令，呵呵。1、zlib 现在最新的版本是</summary><published>2011-03-31T06:27:00Z</published><updated>2011-03-31T06:27:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/03/31/2000993.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/03/31/2000993.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "&gt;&amp;nbsp;&amp;nbsp;Nginx作为一个后起之秀，他的迷人之处已经让很多人都投入了他的怀抱。配置简单，实现原理简单。做一个负载平衡的再好不过了。&amp;nbsp;&lt;br /&gt;一、依赖的程序&amp;nbsp;&lt;br /&gt;1. gzip module requires zlib library&amp;nbsp;&lt;br /&gt;2. rewrite module requires pcre library&amp;nbsp;&lt;br /&gt;3. ssl support requires openssl library&amp;nbsp;&lt;br /&gt;二、依赖的程序的安装的方法有两种：一种是比较原始的方法一个一个来安装，另一个是最好的方法用YUM一次性安装&amp;nbsp;&lt;br /&gt;（1）、方法一如下：这下方法原始、麻烦、容易出错。不过安装的过程可以熟悉一下Linux 命令，呵呵。&amp;nbsp;&lt;br /&gt;1、zlib 现在最新的版本是zlib-1.2.5&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 官网下载地址：http://www.zlib.net/zlib-1.2.5.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $tar -xvzf zlib-1.2.5.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $cd zlib-1.2.5.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $./configure&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $make&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $make install&amp;nbsp;&lt;br /&gt;2、 pcre现在的最新版本是pcre-8.02.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 官网下载地址：ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-&amp;nbsp; 8.02.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $tar -xvzf pcre-8.02.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $cd pcre-8.02&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $./configure --prefix=/usr/local/pcre --enable-utf8 --enable-unicode-properties&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $ make &amp;amp;&amp;amp; make install&amp;nbsp;&lt;br /&gt;3、openssl现在最新版本是openssl-1.0.0a.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 官网下载地址：http://openssl.org/source/openssl-1.0.0a.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $tar zvxf openssl-1.0.0.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $cd openssl-1.0.0&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $./config --prefix=/usr/local/ssl-1.0.0 shared zlib-dynamic enable-camellia&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $make &amp;amp;&amp;amp; make install&amp;nbsp;&lt;br /&gt;4、安装Nginx 0.8.40，这种方法./configure 要带很多参数。大家要注意。&amp;nbsp;&lt;br /&gt;&amp;nbsp; Nginx 最新的版本是Nginx 0.8.40&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 官网下载地址：http://www.nginx.org/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $tar zvxf Nginx 0.8.40.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $cd Nginx 0.8.40&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $./configure&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $ make&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $ make install&amp;nbsp;&lt;br /&gt;&amp;nbsp; 默认安装的路径是/usr/local/nginx&amp;nbsp;&lt;br /&gt;&amp;nbsp; 更多的安装配置&amp;nbsp;&lt;br /&gt;&amp;nbsp; ./configure --prefix=/usr/local/nginx&amp;nbsp;&lt;br /&gt;&amp;nbsp; --with-openssl=/usr/include (启用ssl)&amp;nbsp;&lt;br /&gt;&amp;nbsp; --with-pcre=/usr/include/pcre/ (启用正规表达式)&amp;nbsp;&lt;br /&gt;&amp;nbsp; --with-http_stub_status_module (安装可以查看nginx状态的程序)&amp;nbsp;&lt;br /&gt;&amp;nbsp; --with-http_memcached_module (启用memcache缓存)&amp;nbsp;&lt;br /&gt;&amp;nbsp; --with-http_rewrite_module (启用支持url重写)&amp;nbsp;&lt;br /&gt;（2）、方法二如下：这种方法就好，不容易出错，如果网速快10分内可以完成，网速不好也可以在20分内完成。&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; yum &amp;#8211;y install zlib zlib-devel openssl openssl-devel pcre pcre-devel&amp;nbsp;&lt;br /&gt;现在三个依赖的程序的安装成功，下面是安装Nginx 0.8.40了。&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 官网下载地址：http://www.nginx.org/&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $tar zvxf Nginx 0.8.40.tar.gz&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $cd Nginx 0.8.40&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $./configure&amp;nbsp; //默认安装在/usr/local/nginx下&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $ make&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; $ make install&amp;nbsp;&lt;br /&gt;&lt;br /&gt;四、启动及重启&amp;nbsp;&lt;br /&gt;1、启动：&amp;nbsp;&lt;br /&gt;&amp;nbsp; $ cd /usr/local/nginx/sbin&amp;nbsp;&lt;br /&gt;&amp;nbsp; $ ./nginx&amp;nbsp;&lt;br /&gt;&amp;nbsp; 打开浏览器在地址栏输入127.0.0.1然后会出现一句话 welcome to nginx&amp;nbsp;&lt;br /&gt;2、重启：kill -HUP `cat /usr/local/nginx/logs/nginx.pid`&amp;nbsp;&lt;br /&gt;3、测试配置文件：./nginx -t&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;五、依赖的程序及Nginx 0.8.40下载&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span  style="font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "&gt;&lt;a href="http://dl.javaeye.com/topics/download/9a6e8a33-2213-3581-b375-2b1aae70976d" style="color: #108ac6; text-decoration: underline; "&gt;安装包&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2000993.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/03/31/2000993.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000153.html</id><title type="text">TOMCAT 6 中配置HTTPS</title><summary type="text">上一篇已详细说了java 自带工具keytool来对证书操作的过程，本篇将实战TOMCAT 6 中配置HTTPS并能在通过web service及hessian来访问。一、生成keystore keytool -genkey -alias 4sonline -keyalg RSA -keystore 4sonline.keystore -dname &amp;quot;CN=4sonline.cn, OU=4sonline.cn, O=4sonline.cn, L=SH, ST=SH, C=CN&amp;quot; -keypass 4sonline -storepass 4sonline (CN 为域名这样</summary><published>2011-03-30T09:35:00Z</published><updated>2011-03-30T09:35:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000153.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000153.html"/><content type="html">&lt;p&gt;上一篇已详细说了java 自带工具keytool来对证书操作的过程，本篇将实战TOMCAT 6 中配置HTTPS&lt;span  style="color: #333333; font-family: Georgia, 'Times New Roman', Times, san-serif; line-height: 25px; "&gt;并能在通过web service及hessian来访问。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;一、生成keystore&lt;/p&gt;&lt;p&gt;keytool -genkey -alias 4sonline -keyalg RSA -keystore 4sonline.keystore -dname "CN=4sonline.cn, OU=4sonline.cn, O=4sonline.cn, L=SH, ST=SH, C=CN" -keypass &amp;nbsp; &amp;nbsp; &amp;nbsp;4sonline -storepass 4sonline (CN 为域名这样能确保&lt;span  style="color: #333333; font-family: Georgia, 'Times New Roman', Times, san-serif; line-height: 25px; "&gt;web service及hessian能访问&lt;/span&gt;)。&lt;/p&gt;&lt;p&gt;二、 导出证书&lt;/p&gt;&lt;p&gt;keytool -export -alias 4sonline -keystore 4sonline.keystore -file 4sonline.cer -storepass 4sonline&lt;/p&gt;&lt;p&gt;三、 导入证书&lt;/p&gt;&lt;p&gt;keytool -import -file 4sonline.cer -storepass 4sonline -keystore 4sonline.truststore -alias serverkey -noprompt&lt;/p&gt;&lt;p&gt;四、&lt;span  style="color: #464646; font-family: simsun; "&gt;将所访问的https站点的证书加入jre的信任证书中&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;keytool -import -alias 4sonline -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/cacerts" &amp;nbsp;-trustcacerts -file 4sonline.cer -storepass 4sonline&lt;/p&gt;&lt;p&gt;如果出现&amp;nbsp;keytool错误： java.io.IOException: Keystore was tampered with, or password was incorrect&amp;nbsp;则把%JAVA_HOME%/JRE/LIB/SECURITY的cacerts文件删除就可以了。&lt;/p&gt;&lt;p&gt;五、&amp;nbsp;TOMCAT 6中server.xml文件配置&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; "&gt;&amp;lt;Connector port="443" &amp;nbsp;&lt;span style="font-family: Arial, sans-serif, Helvetica, Tahoma; line-height: 18px; font-size: 12px; "&gt;protocol&lt;/span&gt;="org.apache.coyote.http11.Http11Protocol"&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="font-family: verdana, sans-serif; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; maxThreads="150" minSpareThreads="25" maxSpareThreads="75"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enableLookups="true" disableUploadTimeout="true"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; acceptCount="100" scheme="https" secure="true"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SSLEnabled="true" clientAuth="false"&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;keystoreFile="c:\4sonline.keystore" keystorePass="4sonline"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; truststoreFile="c:\4sonline.truststore" truststorePass="4sonline"/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong style="font-family: arial, sans-serif; font-size: 13px; line-height: normal; "&gt;属性说明：&lt;/strong&gt;&lt;br /&gt;&lt;font  face="arial, sans-serif" size="2"&gt;&lt;span  style="line-height: normal; "&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span  style="line-height: normal; "&gt;port： &amp;nbsp; &amp;nbsp; 这个port属性(默认值是8443)是 TCP/IP端口数码，Tomcat在其上监听安全连接。你可以把它更改成任何你愿意要的数值(如默认的https通信，数目是443)。不过&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ，在许多操 作系统中，要想在比1024小的端口数码上运行Tomcat，需要特殊的设置(它超出了这个文档资料的范围)。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;redirectPort： 如 果你在这里更改端口数值，你还必须更改在non-SSL连接器上的redirectPort 这个属性特定的值。这允许Tomcat自动地redirect那些试图访问有安全限制&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 页面的用户，指明根据 Servlet 2.4 Specification要求，SSL是必需的。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;clientAuth： 如果你想要Tomcat要求所有的SSL客户在使用这个socket时出示用户认证书，把这个值设定为 true 。如果你想要Tomcat要求出示用户认证书，但是如果没有认&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 证书也可以， 就把这个值设定为want 。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;keystoreFile： 如 果你产生的keystore文件不在Tomcat期望的默认地方(一个叫做.keystore 的文件在Tomcat运行的主目录)，就添加这个属性。你可以指定一个绝对路径名&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 称， 或者一个由$CATALINA_BASE环境变量而派生的相对路径名称。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;keystorePass： 如果你使用一个不同的keystore(以及认证书)密码，而不是Tomcat期望的密码 (就是changeit)，添加这个元素。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;keystoreType： 如果使用一个PKCS12 keystore的话，就添加这个element。 有效的值是JKS 和 PKCS12。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;sslProtocol： 要在这个socket上被使用的加密／解密协定。如果你在使用Sun的JVM，我们不提倡更改 这个值。据报道，TLS协定的IBM's 1.4.1 实现与一些通用的浏览器不&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 兼容。 如果是这样，就使用value SSL。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;ciphers： 这个socket允许使用的由逗号分隔开的加密密码列单。默认的情况下，任何可用的密码都允许被使用。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;algorithm： 可用的X509算法。默认是Sun的实现( SunX509 )。 对于IBM JVMs，你应该使用值 IbmX509。对于其他卖主，查阅JVM文档资料来 找正确的值。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;truststoreFile： 用来验证用户认证书的TrustStore文件。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;truststorePass： 访问TrustStore的密码。默认值就是keystorePass的值。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;truststoreType： 如果你在使用与KeyStore不同格式的TrustStore，添加这个元素。 合法的值是JKS和PKCS12&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal;"&gt;keyAlias： 如果 keystore 里面有多个 key，你可以为用这个选项为加入的 key 起一个名字。 如果没有指定名字，使用时 keystore 内的第一个 key 将会被使用。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2000153.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000153.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000060.html</id><title type="text">用java 自带工具KeyTool 来配置HTTPS</title><summary type="text">一、HTTPS介绍: HTTPS（Secure Hypertext Transfer Protocol）全超文本传输协议，它是由Netscape开发并内置于其浏览器中，用于对数据进行压缩和解压操作，并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层（SSL）作为HTTP应用层的子层。（HTTPS使用端口443，而不是象HTTP那样使用端口80来和TCP/IP进行通信。）SSL使用40 位关键字作为RC4流加密算法，这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证，如果需要的话用户可以确认发送者是谁。。 https是以安全为目标的HTTP通道</summary><published>2011-03-30T08:37:00Z</published><updated>2011-03-30T08:37:00Z</updated><author><name>sunney</name><uri>http://www.cnblogs.com/yuanermen/</uri></author><link rel="alternate" href="http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000060.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000060.html"/><content type="html">&lt;div&gt;&lt;span style="font-family: arial, 宋体, sans-serif; line-height: 24px; "&gt;一、HTTPS介绍:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: arial, 宋体, sans-serif; line-height: 24px; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; HTTPS（Secure Hypertext Transfer Protocol）全超文本传输协议，它是由Netscape开发并内置于其浏览器中，用于对数据进行压缩和解压操作，并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层（SSL）作为HTTP应用层的子层。（HTTPS使用端口443，而不是象HTTP那样使用端口80来和TCP/IP进行通信。）SSL使用40 位关键字作为RC4流加密算法，这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证，如果需要的话用户可以确认发送者是谁。。　　https是以安全为目标的HTTP通道，简单讲是HTTP的安全版。即HTTP下加入SSL层，https的安全基础是SSL，因此加密的详细内容请看SSL。&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span  style="font-family: arial, 宋体, sans-serif; line-height: 24px; "&gt;　　它是一个URI scheme(抽象标识符&lt;/span&gt;&lt;span  style="font-family: arial, 宋体, sans-serif; line-height: 24px; "&gt;体系)，句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP，但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层（在HTTP与TCP之间）。这个系统的最初研发由网景公司进行，提供了身份验证与加密通讯方法，现在它被广泛用于万维网上安全敏感的通讯，例如交易支付方面。&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;二、java 自带的工具keyTool 描述&lt;/p&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥（key）和证书（certificates）存在一个称为keystore的文件中 在keystore里，包含两种数据：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; 密钥实体（Key entity）&amp;#8212;&amp;#8212;密钥（secret key）又或者是私钥和配对公钥（采用非对称加密）&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; 可信任的证书实体（trusted certificate entries）&amp;#8212;&amp;#8212;只包含公钥&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ailas(别名)每个keystore都关联这一个独一无二的alias，这个alias通常不区分大小写&amp;nbsp;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;三、 JDK中KeyTool常用命令&lt;/div&gt;&lt;div&gt;-genkey &amp;nbsp; &amp;nbsp; &amp;nbsp;在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名，mykey中包含用户的公钥、私钥和证书&lt;/div&gt;&lt;div&gt;(在没有指定生成位置的情况下,keystore会存在用户系统默认目录，如：对于window xp系统，会生成在系统的C:\Documents and Settings\UserName\文件名为&amp;#8220;.keystore&amp;#8221;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;)&lt;/div&gt;&lt;div&gt;-alias &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;产生别名&lt;/div&gt;&lt;div&gt;-keystore &amp;nbsp; &amp;nbsp; &amp;nbsp;指定密钥库的名称(产生的各类信息将不在.keystore文件中)&lt;/div&gt;&lt;div&gt;-keyalg &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 指定密钥的算法 (如 RSA &amp;nbsp;DSA（如果不指定默认采用DSA）)&lt;/div&gt;&lt;div&gt;-validity &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;指定创建的证书有效期多少天&lt;/div&gt;&lt;div&gt;-keysize &amp;nbsp; &amp;nbsp; &amp;nbsp; 指定密钥长度&lt;/div&gt;&lt;div&gt;-storepass &amp;nbsp; &amp;nbsp;指定密钥库的密码(获取keystore信息所需的密码)&lt;/div&gt;&lt;div&gt;-keypass &amp;nbsp; &amp;nbsp; &amp;nbsp;指定别名条目的密码(私钥的密码)&lt;/div&gt;&lt;div&gt;-dname &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;指定证书拥有者信息 例如： &amp;nbsp;"CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"&lt;/div&gt;&lt;div&gt;-list &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示密钥库中的证书信息 &amp;nbsp; &amp;nbsp; &amp;nbsp;keytool -list -v -keystore 指定keystore -storepass 密码&lt;/div&gt;&lt;div&gt;-v &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;显示密钥库中的证书详细信息&lt;/div&gt;&lt;div&gt;-export &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;将别名指定的证书导出到文件 &amp;nbsp;keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 码&lt;/div&gt;&lt;div&gt;-file &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 参数指定导出到文件的文件名&lt;/div&gt;&lt;div&gt;-delete &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 删除密钥库中某条目 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keytool -delete -alias 指定需删除的别 &amp;nbsp;-keystore 指定keystore &amp;nbsp;-storepass 密码&lt;/div&gt;&lt;div&gt;-printcert &amp;nbsp; &amp;nbsp; &amp;nbsp;查看导出的证书信息 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;keytool -printcert -file yushan.crt&lt;/div&gt;&lt;div&gt;-keypasswd &amp;nbsp; 修改密钥库中指定条目口令 &amp;nbsp; &amp;nbsp;keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new &amp;nbsp;新密码 &amp;nbsp;-storepass keystore密码 &amp;nbsp;-keystore sage&lt;/div&gt;&lt;div&gt;-storepasswd 修改keystore口令 &amp;nbsp; &amp;nbsp; &amp;nbsp;keytool -storepasswd -keystore e:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)&lt;/div&gt;&lt;div&gt;-import &amp;nbsp; &amp;nbsp; &amp;nbsp;将已签名数字证书导入密钥库 &amp;nbsp;keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;下面是各选项的缺省值。&amp;nbsp;&lt;/div&gt;&lt;div&gt;-alias "mykey"&lt;/div&gt;&lt;div&gt;-keyalg "DSA"&lt;/div&gt;&lt;div&gt;-keysize 1024&lt;/div&gt;&lt;div&gt;-validity 90&lt;/div&gt;&lt;div&gt;-keystore 用户宿主目录中名为 .keystore 的文件&lt;/div&gt;&lt;div&gt;-file 读时为标准输入，写时为标准输出 &amp;nbsp;&lt;/div&gt;&lt;p&gt;四、对KEY的操作&lt;/p&gt;&lt;p&gt;1、生成keystore&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&amp;nbsp;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 19px; color: #ff0000; "&gt;-genkey&lt;/span&gt;&amp;nbsp;-alias&amp;nbsp;4sonline(别名) -keypass 4sonline(别名密码) -keyalg RSA(算法) -keysize 1024(密钥长度) -validity 365(有效期，天单位) -keystore &amp;nbsp;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;e:\4sonline&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 21px; "&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;.keystore(指定生成证书的位置和证书名称) -storepass 4sonline(获取keystore信息的密码) &amp;nbsp;&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 21px; "&gt;-dname "CN=4sonline.com.cn, OU=192.168.0.86, O=192.168.0.86, L=SH, ST=SH, C=CN"&lt;/span&gt;&lt;span  style="font-family: verdana, 'courier new'; font-size: 14px; line-height: 21px; "&gt;&amp;nbsp;&amp;nbsp;(CN最好为服务的域名，否则配置web service 或hessian 访问https时会有麻烦,CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2、keystore信息查看&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 19px; color: #ff0000; "&gt;-list&amp;nbsp; -v&lt;/span&gt;&amp;nbsp;-keystore e:\4sonline.keystore -storepass 4sonline&lt;/span&gt;&lt;/p&gt;&lt;p&gt;(&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;缺省情况下，-list&amp;nbsp;命令打印证书的&amp;nbsp;MD5&amp;nbsp;指纹。而如果指定了&amp;nbsp;-v&amp;nbsp;选项，将以可读格式打印证书，如果指定了&amp;nbsp;-rfc&amp;nbsp;选项，将以可打印的编码格式输出证书。)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;3、导出证书&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 19px; color: #ff0000; "&gt;-export&lt;/span&gt;&amp;nbsp;-alias 4sonline -keystore e:\4sonline.keystore -file e:\4sonline.cer(指定导出的证书位置及证书名称) -storepass 4sonline&lt;/span&gt;&lt;/p&gt;&lt;p&gt;4、查看导出的证书&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; color: red; "&gt;-printcert&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt; -file 4sonline.cer&lt;/span&gt;&lt;/p&gt;&lt;p&gt;5、删除证书条目&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&amp;nbsp;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 19px; color: #ff0000; "&gt;-delete&lt;/span&gt;&amp;nbsp;-alias 4sonline(指定需删除的别名) -keystore 4sonline.keystore -storepass 4sonline&lt;/span&gt;&lt;/p&gt;&lt;p&gt;6、证书条目密码修改&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 19px; color: #ff0000; "&gt;-keypasswd&amp;nbsp;&lt;/span&gt;-alias 4sonline(需要修改密码的别名) -keypass 4sonline(原始密码) -new 123456(别名的新密码)&amp;nbsp; -keystore e:\4sonline.keystore -storepass 4sonline&lt;/span&gt;&lt;/p&gt;&lt;p&gt;7、keystore密码修改&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&amp;nbsp;&lt;span style="line-height: 19px; color: red; "&gt;-storepasswd&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; color: red; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;-keystore e:\4sonline.keystore(需修改口令的keystore) -storepass 4sonline(原始密码) -new 123456(新密码)&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;8、&amp;nbsp;keystore别人信息修改&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&lt;span style="line-height: 19px; "&gt;keytool&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&lt;span style="line-height: 19px; color: red; "&gt;-selfcert&lt;/span&gt;&lt;/span&gt;&lt;span  style="font-family: verdana, sans-serif; line-height: 19px; font-size: small; "&gt;&amp;nbsp;-alias 4sonline -keypass 4sonline -keystore e:\4sonline.keystore -storepass 4sonline -dname "cn=4sonline,ou=4sonline,o=4sonline,c=us"&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;总结：这都是&amp;nbsp;KeyTool 工具常用的属性及方法，下一篇我们将实战在TOMCAT 6 中配置HTTPS并能在通过web service及hessian来访问的。&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/yuanermen/aggbug/2000060.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/yuanermen/archive/2011/03/30/2000060.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
