??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲最大AV网站在线观看,亚洲视频.com,亚洲一区二区三区无码中文字幕http://www.tkk7.com/produ/zh-cnSat, 10 May 2025 07:33:46 GMTSat, 10 May 2025 07:33:46 GMT60spring bootQ闪电上?/title><link>http://www.tkk7.com/produ/archive/2016/06/01/430728.html</link><dc:creator>都较?/dc:creator><author>都较?/author><pubDate>Wed, 01 Jun 2016 04:00:00 GMT</pubDate><guid>http://www.tkk7.com/produ/archive/2016/06/01/430728.html</guid><wfw:comment>http://www.tkk7.com/produ/comments/430728.html</wfw:comment><comments>http://www.tkk7.com/produ/archive/2016/06/01/430728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/produ/comments/commentRss/430728.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/produ/services/trackbacks/430728.html</trackback:ping><description><![CDATA[<strong>spring-boot是什么?<br /></strong>spring-boot是spring的一个子目Qspring-boot旨在能够快速构建基于spring的独立的Q品别的应用Q拥?#8220;一键启?#8221;Q?#8220;配置U?#8221;Q?#8220;内置服务?#8221;Q?#8220;应用健康?#8221;{一pd高逼格的功能?br /><br /><strong>spring-boot hello world<br /></strong><span style="color: red;"><strong>注:q里的hello worldq没有一板一眼的官|的案例照搬Q而是希望以一U最快速的方式构徏一个由spring boot构徏的应用,让包括我在内的对spring boot陌生的同学对它有一个最直观的感受?br /></strong></span><br />java<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/21s6basfha.png" border="0" alt="" /><br /><br />IDE<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/6h1sd6h.png" border="0" alt="" /><br /><br />MavenQEclipse内置Q?br /><img src="http://www.tkk7.com/images/blogjava_net/produ/afoppoakw.png" border="0" alt="" /><br />你也可以自行配置一个外部MavenQ随?br /><br />接下来我们新Z个Maven目Q我们选取webapp模板<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/uawrn.png" border="0" alt="" /><br /><img src="http://www.tkk7.com/images/blogjava_net/produ/daf24s.png" border="0" alt="" /><br /><br />搭徏完毕之后Q我们需要修改pom.xml文gQ将spring boot相关的依赖添加进?br />首先Q添加parent节点到pom.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>     <span style="color: #0000FF; "><</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">2</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.springframework.boot<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">3</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000ff;">></span>spring-boot-starter-parent<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">4</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>1.3.5.RELEASE<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">5</span>     <span style="color: #0000FF; "></</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">></span></div>spring boot提供了一pd?#8220;<span style="background-color: #ffff00;">starter POMs</span>”,可以L的添加相关的jar到项目的c\径下Q?span style="background-color: #ffff00;">spring-boot-starter-parent</span>节点则是一个特D的“starter”Q它提供了很多maven默认的依赖,q且提供了依赖管理,使得我们可以忽略依赖的版本号Q也是说我们无需再声?span style="background-color: #ffff00;">version</span>标识?br /><strong style="color: red;"><br />*starter POMsQ可以理解一pd的依赖,每一个依赖都提供了该功能所需的jar?/strong><br /><br />我们d<span style="background-color: #ffff00;">spring-boot-starter-web</span>到pom.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span>     <span style="color: #0000FF; "><</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 2</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.springframework.boot<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 3</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>spring-boot-starter-parent<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 4</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>1.3.5.RELEASE<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 5</span>     <span style="color: #0000FF; "></</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 6</span>     <br /><span style="color: #008080; "> 7</span>     <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 8</span>         <span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; "> 9</span>             <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>org.springframework.boot<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">10</span>             <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>spring-boot-starter-web<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">11</span>         <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">12</span>     <span style="color: #0000FF; "></</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">></span></div>之后我们看到构徏web应用所需的jar包已l添加到Maven依赖中了<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/sbs28.png" border="0" alt="" /><br /><br />更多关于“starter”的信息可以查?br /><a target="_blank">http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter</a><br /><br />接下来可以写代码了,d一?#8220;控制?#8221;到src/main/java/demo?br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">package</span> demo;<br /><span style="color: #008080; "> 2</span> <br /><span style="color: #008080; "> 3</span> <span style="color: #0000FF; ">import</span> org.springframework.boot.*;<br /><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">import</span> org.springframework.boot.autoconfigure.*;<br /><span style="color: #008080; "> 5</span> <span style="color: #0000FF; ">import</span> org.springframework.web.bind.annotation.*;<br /><span style="color: #008080; "> 6</span> <br /><span style="color: #008080; "> 7</span> @RestController<br /><span style="color: #008080; "> 8</span> @EnableAutoConfiguration<br /><span style="color: #008080; "> 9</span> <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> Example {<br /><span style="color: #008080; ">10</span> <br /><span style="color: #008080; ">11</span>     @RequestMapping("/")<br /><span style="color: #008080; ">12</span>     String home() {<br /><span style="color: #008080; ">13</span>         <span style="color: #0000FF; ">return</span> "Hello World!";<br /><span style="color: #008080; ">14</span>     }<br /><span style="color: #008080; ">15</span> <br /><span style="color: #008080; ">16</span>     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> main(String[] args) <span style="color: #0000FF; ">throws</span> Exception {<br /><span style="color: #008080; ">17</span>         SpringApplication.run(Example.<span style="color: #0000FF; ">class</span>, args);<br /><span style="color: #008080; ">18</span>     }<br /><span style="color: #008080; ">19</span> <br /><span style="color: #008080; ">20</span> }</div>之后我们“run as Java application”或者通过Maven goals“spring-boot:run”Q就可以发现Q我们的服务已经在本地的8080端口启动了?br /><img src="http://www.tkk7.com/images/blogjava_net/produ/znz02sz.png" border="0" alt="" /><br />是不是太快了...我也q么觉得Q真的是“ȝ?#8221;的部|?br /><br /><span style="background-color: #ffff00;">@RestController</span><br />q个注解?#8220;stereotype annotation”Q不知道怎么译合适,或许可以理解?#8220;套版注解”Q,在阅M码的时候给读者提供必要的提示Q对于spring来说Q他扮演了一个特别的角色Q在案例中他是一个web的控制器Q所以spring会用他来处理对应的请求?br /><br /><div><span style="background-color: #ffff00;">@RequestMapping<br /></span></div>用过spring-MVC的同学都知道Q这个注解用来对应\?br /><br /><div><span style="background-color: #ffff00;">@EnableAutoConfiguration</span></div>q个注解比较牛皮了Q也是目前ؓ止个人感觉spring boot强大的地方之一。这个注解告知springQ去通过你添加的依赖Q?#8220;猜测”你想要怎么去配|springQ比如我们添加了start POM <span style="background-color: #ffff00;">spring-boot-starter-web</span>Q那么spring会认为我们需要部|一个web应用Q所以spring boot帮助我们启动tomcat服务Q配|springMVC{操作。官Ҏ档同时提刎ͼ@EnableAutoConfiguration注解在设计时׃start POMs协作良好Q但是二者ƈ不绝对相养Iq没有start POMQspring boot依然会尽最大努力去自动配置Q笑Q?br /><br />截止目前Q排除细节的情况下,已经通过最单粗暴的方式构造了一个spring boot的应用,希望在认知上能给大家一点帮助,但是q远q不够,后箋q要d更多与web应用相关的内宏V?img src ="http://www.tkk7.com/produ/aggbug/430728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/produ/" target="_blank">都较?/a> 2016-06-01 12:00 <a href="http://www.tkk7.com/produ/archive/2016/06/01/430728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>试水公众h章:你搞IT的?帮我修个电脑吧!http://www.tkk7.com/produ/archive/2016/05/30/430708.html都较?/dc:creator>都较?/author>Mon, 30 May 2016 10:10:00 GMThttp://www.tkk7.com/produ/archive/2016/05/30/430708.htmlhttp://www.tkk7.com/produ/comments/430708.htmlhttp://www.tkk7.com/produ/archive/2016/05/30/430708.html#Feedback2http://www.tkk7.com/produ/comments/commentRss/430708.htmlhttp://www.tkk7.com/produ/services/trackbacks/430708.html你搞IT的?帮我修个电脑吧!

 

某日

七大姑:“你是学什么的啊?”

我:“噢,我是学IT的?#8221;

八大姨:“啥?挨踢q用学?你是学武术的Q?#8221;

我:“?#8230;…我是学电脑的?#8221;

熊孩子:“叔叔我电脑坏了,帮我修修”

 

我:“叫哥哥才l你?#8221;

熊孩子:“叔叔你真矫情Q?#8221;

我:“……”

上面q个D子是广大IT人士真实的生zd照,在大多数人眼里,“计算Z?#8221;U等?#8220;会修电脑”Q不能否认的是,q两者之间确实有一定的联系。那?#8220;计算Z?#8221;?#8220;会修电脑”到底有什么关pdQ?/strong>

那么首先Q从概念上来Ԍ什么是计算机?

“接受使用者输入指令与数据Q经׃央处理器的数学与逻辑单元q算处理后,以生或储存成有用的信息”Q这句文l绉的概念就是对计算机的定义Q在生活中,我们l常用的W记本电脑就是计机的一U。根据这个定义,计算器、手机、^ѝGPS、ATM{等Q这些都是计机Q?/span>


现在我们知道Q电脑只是计机的一U,虽然电脑是计机的俗Uͼ但是修电脑可不能当修计算机理解。那么,我们所说的修,具体是指什么呢Q?/span>

 

看一下我们n边的W记本电脑,Ҏ概念Q从外观上我们可以把计算机的l成大致分ؓ三部分:
 

然而对于第2点,如果你曾l拆开q机,你会发现机箱内部最重要的部分是LQ上面插满了各种各样的组Ӟ整部L的核心在于中央处理器 (Central Processing Unit, CPU)。CPU的主要工作在于管理和q算Q因此在 CPU 内又可细分两个主要的单元Q分别是Q?数逻辑单元与控制单元。其中算数逻辑单元主要负责E序q算与逻辑判断Q控制单元则主要在协调各周边lg与之间的工作?/span>

 

输入讑֤获取的数据传输到内存QCPU再经׃内存获取q些数据q行q算和判断,处理完毕的数据写回到内存中Q最后,数据再由内存传输到输备?/span>


l合上面所说的Q我们会知道其实计算机是由几个设备所l成的,包括输入讑֤?输出讑֤、CPU内部的控制单元、算数逻辑单元与内存五大部分。而计机产生的故障,有可能来自以上q些g讑֤Q那么修的工作可能会来自q些g讑֤?/span>

 

*拓展阅读Q第一台计机


世界上第一台计机“ENIAC”?946q在国宑֤法尼亚大学诞生。发明h是美国hU翰·阿塔那烦夫(AtanasoffQ教授。美国国防部用它来进行弹道计。它是一个庞然大物,用了18000个电子管Q占?70qxcI重达30吨,耗电功率U?50千瓦Q每U钟可进?000ơ运,q在现在看来微不道Q但在当时却是破天荒的?ENIAC以电子管作ؓ元器Ӟ所以又被称为电子管计算机,是计机的第一代。电子管计算机由于用的电子体U很大,耗电量大Q易发热Q因而工作的旉不能太长?br />
然而大多数情况下,我们需要修复的是Y件的故障


一般来_软g被划分ؓpȝ软g和应用Y件。计机是硬件所l成Qؓ了有效率的控制这些硬件资源,需要操作系l的支持?操作pȝ除了有效率的控制q些g资源的分配,q要提供计算作所需要的功能(如网l功?QY件和g的简易关pd如下所C?/p>

  

操作pȝQ操作系l虽然只能提供对g最基本的支持,但是二者的联系非常紧密Q一旦操作系l出现异常,那么意味着上层软g都有可能无法正常工作Q所以异常关机,断电Q删除系l文件等操作都有可能会破坏操作系l,q而危害个人的应用E序和重要资料?/span>

 

应用E序Q如果你有额外的g讑֤Q比如玩游戏Q你需要一块性能优越的显C卡Q那么你需要单独在操作pȝ上安装这块显C卡的驱动程序,才能保证q块昄卡的正常使用。驱动程序ƈ不属于操作系l,它由g厂商开发ƈ提供Q针对特定操作系l,特定版本Q特定硬Ӟ所以一定要安装匚w的驱动程序,否则很容易导致常见的“蓝屏”效果。说?#8220;蓝屏”Q值得一提的是,量不要安装功能相近的YӞ比如杀毒YӞ他们之间L相爱相杀的,说不准就会打?#8220;战场”Q驱动程序的版本也没有必要追求最斎ͼ因ؓ新颖q不意味着E_Q用的时候主机应该保持稳定,不要随意晃动Q看了刚才的数据向Q如果主板和内存的插口松动,也很Ҏ出现pȝ异常?/span>

 

说了q么多,让我们回到最初的问题Q计机专业和修电脑到底什么关p?

电脑是计机的俗Uͼ但是修电脑ƈ不意味着会修所有的计算机,所以二者的关系是:计算Z业ƈ不等同会修电脑,因ؓ修电脑这个问题太大了。ITZ有很多类型,gQYӞ|络{等Q所以你的一?#8220;我的电脑q不上网?#8221;Q可能就会涉及到多方面的问题定位Q所以如果你的问题如果更清晰一些,比如Q?#8220;我按下电源没有反?#8221;Q你或许应该d询硬件工E师Q?#8220;我的pȝH然崩溃Q蟩Z堆我看不懂的东西”Q你或许该去咨询pȝ工程师;“我连不上|络?#8221;Q你或许该去咨询|络理员?/span>

 

严格来说Q修电脑q不是一件简单的事情Q但是我们有一U?#8220;病大治”的Y仉题解x?#8212;—重新安装Q希望各位读者合理用电脑,多一些流畅的使用体验Q少一些o人烦恼的异常?br />
http://mp.weixin.qq.com/s?__biz=MzA5NzMyODc5Ng==&mid=510224912&idx=4&sn=9b7fcd6e374f957b74ef89baf52781f9#rd



]]>
Java反编译工?/title><link>http://www.tkk7.com/produ/archive/2016/05/28/430691.html</link><dc:creator>都较?/dc:creator><author>都较?/author><pubDate>Sat, 28 May 2016 04:36:00 GMT</pubDate><guid>http://www.tkk7.com/produ/archive/2016/05/28/430691.html</guid><wfw:comment>http://www.tkk7.com/produ/comments/430691.html</wfw:comment><comments>http://www.tkk7.com/produ/archive/2016/05/28/430691.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/produ/comments/commentRss/430691.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/produ/services/trackbacks/430691.html</trackback:ping><description><![CDATA[最q生产环境上的项目L报一些不该出现的问题Q调查跟t很久也没发现问题,没办法,开始怀疑生产环境和试环境的代码不一_虽然q不该出玎ͼ但确实是一U可能?br />Ҏ比较单,获取生环境jar包,反编译之后和本地代码q行Ҏ。从接触反编译工具以来,到写下这笔讎ͼ我一直是使用的jd-gui<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/jdgui.png" border="0" alt="" /><br /><br />直到今天Q偏偏是我所需要的一?class文g不能反编译,出现了如下的情况<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/internalerror.png" border="0" alt="" /><br /><br />很慌啊,竟然不能反编译,其他?class文g却可以,真是伤心Q无奈求助搜索引擎,发现了一ƾjd-gui的同cdP但是却可以解军_?/ INTERNAL ERROR//的问题,真是太棒了,赶紧贴出?a >https://github.com/deathmarine/Luyten</a> <br /><br />有过比对才发现luyten的速度比jd-gui快很多,真是长江后浪推前,一代更比一代浪<br /><img src ="http://www.tkk7.com/produ/aggbug/430691.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/produ/" target="_blank">都较?/a> 2016-05-28 12:36 <a href="http://www.tkk7.com/produ/archive/2016/05/28/430691.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#对称加密法Java实现http://www.tkk7.com/produ/archive/2016/03/28/430629.html都较?/dc:creator>都较?/author>Mon, 28 Mar 2016 14:12:00 GMThttp://www.tkk7.com/produ/archive/2016/03/28/430629.htmlhttp://www.tkk7.com/produ/comments/430629.htmlhttp://www.tkk7.com/produ/archive/2016/03/28/430629.html#Feedback0http://www.tkk7.com/produ/comments/commentRss/430629.htmlhttp://www.tkk7.com/produ/services/trackbacks/430629.html最q因Z务需求,需要把一DC#~写的加密代码采用Javaq行实现Q在此记下我的实施过E和q程中碰到的一些问题以备后用。ؓ了便于观察,只脓上C#源码中关键的部分Q?br />
 1 ///
 2 ///<summary>
 3 /// 加密Ҏ
 4 /// </summary>
 5 /// <param name=\"Source\">待加密的?/span></param>
 6 /// <returns>l过加密的串</returns>
 7 public static string Encrypto(string Source)
 8 {
 9     byte[] bytIn = UTF8Encoding.UTF8.GetBytes(Source);
10     MemoryStream ms = new MemoryStream();
11     mobjCryptoService.Key = GetLegalKey();
12     mobjCryptoService.IV = GetLegalIV();
13     //创徏对称加密器对?br />14     //下面的控制台打印是我自己d方便观察?/span>
15     Console.WriteLine("KeySize:" + mobjCryptoService.KeySize);
16     Console.WriteLine("LegalKeySizes:" + mobjCryptoService.LegalKeySizes.Length);
17     Console.WriteLine("Mode:"+ mobjCryptoService.Mode);
18     Console.WriteLine("Padding:"+mobjCryptoService.Padding);
19     ICryptoTransform encrypto = mobjCryptoService.CreateEncryptor();
20     //定义数据流链接到加密{换的?/span>
21     CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Write);
22     cs.Write(bytIn, 0, bytIn.Length);
23     cs.FlushFinalBlock();
24     ms.Close();
25     byte[] bytOut = ms.ToArray();
26 
27     return Convert.ToBase64String(bytOut);
28 }
29 
30 ///
31 ///<summary>
32 /// 解密Ҏ
33 /// </summary>
34 /// <param name=\"Source\">待解密的?/span></param>
35 /// <returns>l过解密的串</returns>
36 public static string Decrypto(string Source)
37 {
38     try
39     {
40         byte[] bytIn = Convert.FromBase64String(Source);
41         MemoryStream ms = new MemoryStream(bytIn, 0, bytIn.Length);
42         mobjCryptoService.Key = GetLegalKey();
43         mobjCryptoService.IV = GetLegalIV();
44         //创徏对称解密器对?/span>
45         ICryptoTransform encrypto = mobjCryptoService.CreateDecryptor();
46         //定义数据流链接到加密{换的?/span>
47         CryptoStream cs = new CryptoStream(ms, encrypto, CryptoStreamMode.Read);
48         StreamReader sr = new StreamReader(cs);
49         return sr.ReadToEnd();
50     }
51     catch (Exception)
52     {
53         return string.Empty;
54     }
55 }

其中有一个问题:
1 //生成加密器的对象由RijndaelManaged得来Q那么这个RijndaelManaged对象是干嘛的Q第三方的?原生的?
2 private static SymmetricAlgorithm mobjCryptoService = new RijndaelManaged();

调查之后Q好吧,它是一U对U加密算法(可以理解为在双方之间可以实现加解密)Q以下来自百U:
高加密标准Q英语:Advanced Encryption StandardQ羃写:AESQ,在密码学中又URijndael加密法,是美国联邦政府采用的一U区块加密标准。这个标准用来替代原先的DESQ已l被多方分析且广为全世界所使用。经q五q的甄选流E,高加密标准q国国家标准与技术研IQNISTQ于2001q?1?6日发布于FIPS PUB 197Qƈ?002q??6日成为有效的标准?006q_高加密标准已然成ؓ对称密钥加密中最行的算法之一?/div>
之前对加密标准认识的q不多,但是通过代码来看Q似乎实现对U加密还需要别的材料,看到下面q两个方?/div>
 1 /// <summary>
 2 /// 获得密钥
 3 /// </summary>
 4 /// <returns>密钥</returns>
 5 private static byte[] GetLegalKey()
 6 {
 7     string _TempKey = Key;//Key已经预先写死在代码里?/span>
 8     mobjCryptoService.GenerateKey();
 9     byte[] bytTemp = mobjCryptoService.Key;
10     int KeyLength = bytTemp.Length;
11     if (_TempKey.Length > KeyLength)
12         _TempKey = _TempKey.Substring(0, KeyLength);
13     else if (_TempKey.Length < KeyLength)
14         _TempKey = _TempKey.PadRight(KeyLength, ' ');
15       return ASCIIEncoding.ASCII.GetBytes(_TempKey);
16 }
17 //GetLegalKeyҎ每次都会q回一个长度ؓ32的byte数组
18 //mobjCryptoService.Key = GetLegalKey();
19 
20 /// <summary>
21 /// 获得初始向量IV
22 /// </summary>
23 /// <returns>初试向量IV</returns>
24 private static byte[] GetLegalIV()
25 {
26     string _TempIV = "$%^&*()_osudghwe7%%2kdijskldglk2397^&*wigwuqwelkn";//q是虚构?/span>
27     mobjCryptoService.GenerateIV();
28     byte[] bytTemp = mobjCryptoService.IV;
29     int IVLength = bytTemp.Length;
30     if (_TempIV.Length > IVLength)
31         _TempIV = _TempIV.Substring(0, IVLength);
32     else if (_TempIV.Length < IVLength)
33         _TempIV = _TempIV.PadRight(IVLength, ' ');
34     return ASCIIEncoding.ASCII.GetBytes(_TempIV);
35 }
36 //GetLegalIVҎ每次都会q回一个长度ؓ16的byte数组
37 //mobjCryptoService.IV = GetLegalIV();

虽然是通过两个Ҏ来取得的KEY和IVQ二者都是byte数组Q,但是KEY和IV都是预先写死在代码里的,只不q是q回了特定长度的byte数组?/div>
1 //RijndaelManagedQ这是对U算法合法的key和IV的长度(分别以位来计)
2 //        Legal min key size = 128
3 //        Legal max key size = 256
4 //        Legal min block size = 128
5 //        Legal max block size = 256

l过调查Q还需要配|算法的mode和paddingQ此处ƈ没有q行讄Q所以默认分别ؓCipherMode.CBC和PaddingMode.PKCS7。详?a title="mode">mode?a title="padding">padding

目前来看Q需要调查的可以告一D落了,那么接下来,需要调查如何Java实现了。在Java中,实现加密需要用到JCE提供的Cipher对象Q类比C#的实玎ͼ借鉴q大E序员的智慧Q我首先试写了一下(只脓出关键部分)
 1 public void init(byte[] keyBytes) {
 2 
 3     // 如果密钥不16位,那么p? q个if 中的内容很重?/span>
 4     int base = 16;
 5     if (keyBytes.length % base != 0) {
 6         int groups = keyBytes.length / base
 7                 + (keyBytes.length % base != 0 ? 1 : 0);
 8         byte[] temp = new byte[groups * base];
 9         Arrays.fill(temp, (byte) 0);
10         System.arraycopy(keyBytes, 0, temp, 0, keyBytes.length);
11         keyBytes = temp;
12     }
13     // 转化成JAVA的密钥格?/span>
14     key = new SecretKeySpec(keyBytes, "AES");
15     try {
16         // 初始化cipher
17         cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
18     } catch (NoSuchAlgorithmException e) {
19         e.printStackTrace();
20     } catch (NoSuchPaddingException e) {
21         e.printStackTrace();
22     } 
23 }
24 
25 /**
26  * 加密Ҏ
27  * @param content 待加密內容字W串
28  * @param keySrc 加解密密U钥字符?br />29  * @param iv 法所需向量
30  * @return
31  * @throws UnsupportedEncodingException
32  */
33 public String encrypt(String content, String keySrc,String iv) throws UnsupportedEncodingException {
34     byte[] encryptedText = null;
35     init(keySrc.getBytes("utf-8"));
36     try {
37         cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec(iv.getBytes()));
38         encryptedText = cipher.doFinal(content.getBytes("utf-8"));
39     } catch (Exception e) {
40         e.printStackTrace();
41     }
42     return Base64.encodeBase64String(encryptedText);
43 }
44 
45 /**
46  * 解密Ҏ
47  * @param encryptedData 待解密数?br />48  * @param keySrc 加解密密U钥字符?br />49  * @param iv 法所需向量
50  * @return
51  * @throws UnsupportedEncodingException 
52  */
53 public String decrypt(String encryptedData, String keySrc,String iv) throws UnsupportedEncodingException {
54     byte[] decryptedText = null;
55     init(keySrc.getBytes("utf-8"));
56     try {
57         cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv.getBytes()));
58         decryptedText = cipher.doFinal(Base64.decodeBase64(encryptedData));
59     } catch (Exception e) {
60         e.printStackTrace();
61     }
62     return new String(decryptedText);
63 }
64 
65 public static void main(String[] args) throws UnsupportedEncodingException {
66     EncryptingUtil eu = new EncryptingUtil();
67     
68     String content = "abc";
69     // 加密字符?/span>
70     System.out.println("加密前的Q? + content);
71     // 加密Ҏ
72     String enc = eu.encrypt(content,"U钥?,"向量?);
73     System.out.println(enc);
74     // 解密Ҏ
75     String dec = eu.decrypt(enc,"U钥?, "向量?);
76     System.out.println("解密后的内容Q? + dec);
77 }

Java版本的实玎ͼ目前有几个问题,一个就是补齐方式的问题Q在C#中默认的补齐方式PKCS7Q但是Java默认q不支持该补齐方式,只有PKCS5Q其ơ就是秘钥的长度问题QC#代码中的U钥长度?56位的Q但是Java默认最大支?28位的Q执行时会报?#8221;Illegal key size”的问题。这位大牛的东东帮到我了Q感谢?a title="查看">查看

当需要?56位长度的U钥Ӟ需要下载对应Java版本的JCE拓展包,图中的问题就是因为JCE拓展包和Java版本不匹配引L


]]>现在开始做吧,要不你连成功的可能都没有http://www.tkk7.com/produ/archive/2016/01/02/430627.html都较?/dc:creator>都较?/author>Sat, 02 Jan 2016 14:00:00 GMThttp://www.tkk7.com/produ/archive/2016/01/02/430627.htmlhttp://www.tkk7.com/produ/comments/430627.htmlhttp://www.tkk7.com/produ/archive/2016/01/02/430627.html#Feedback0http://www.tkk7.com/produ/comments/commentRss/430627.htmlhttp://www.tkk7.com/produ/services/trackbacks/430627.htmlD
“没有M借口”体现的是一U负责、敬业的_Q一U服从,诚实的态度Q一U完的执行能力Q我们需要的正是q种_的hQ他们想办法去完成dQ而不是去L借口Q哪怕看似合理的借口?#8220;现在开始做吧,要不你连成功的可能都没有”
        ——诅R没有Q何借口》有?/div>
     
      一ơ偶然的ZQ部门开展了一ơ关?#8220;执行?#8221;的培训,说是偶然Q是因ؓ培训前我的工作状?#8220;不在状?#8221;Q我自我感觉在工作上效率偏低Qƈ没有发挥我应有的做事效率和状态,所以,有了这《没有Q何借口》的d感?br />做事情找借口Q而到最后没有完成,q或许是生活中最常见的场景了Q但是你或许会说Q生zM也确实有一些客观存在的其他因素Q导致了计划的g误,或者项目的p|Q这是不可避免的?br />
  • 上班的时候浏览网,开差Q看手机耽误了工作的旉Q工作效率低下,拖g工作旉Q实际存在的“大忙?#8221;Q?/li>
  • 开会的时候没有叫上我Q而只是事后给我安排Q务,心存不满而不愿承担(比v责QQ却选择了借口Q?/li>
  • 之前从来没有q么做过Q担心出错,不愿意尝试(不敢试错Q不敢创斎ͼ时代和科技都日新月异,你敢原地t步吗?Q?/li>
  • 没有参加q相兛_训,提出的发a没有性,不适合做这个工作(不自信,不称职,~Z责Q感,相比于盲目的发言Q倒不如说“不知?#8221;来得痛快直观Q?/li>
  • 同行做的那么好了Q我们差那么多,做了又有什么用Q(态度消极悲观Q你以ؓ你的胖是一天吃出来的?Q?/li>
      以上U种都只是冠冕堂皇的借口Q不但没有细化问题,去逐步解决Q只是放大了一个模p的问题Q抛l了其他人,qƈ不是l自己或者上U一个交代,q只是敷衍逃避而已。久而久之,我们一旦养成了习惯Q那么对自nQ对团队Q对企业是莫大的伤宻I你将L功越来越q,你将永远不会成ؓ你想象中的样子,成ؓ你想成ؓ的hQ?br />      倘若某g事情完不成,你就要被枪毙Q你q敢瞎比比吗Q?br />      我虽然不是职场小鲜肉Q但也还没到职场“老a?#8221;的程度,渐渐的,心态上也会也有一些{变?br />
  • 我们不单U是Z公司的利益而工作,更ؓ了自p工作啊。作为公司的成员Q我们是同手同脚休戚与共的,我们解决的问题不仅会出现在工作中Q也会出现在工作之外的时间或地点Q只要我们能把工作上升到Z提升自己而工作,Z变得更加U职而工作,我们也不会因为加班和工作带来的其他问题而烦恹{?/li>
  • 始终怀有饱满的热情Q对公司的品充满信心。没有h愿意和厌世的人做朋友Q也不会有h喜欢消极的hQ你对自己充满信心,对公司的产品和服务充满信心,周围的h自然会被你感染,你自然也会被重用?/li>
  • 敢于吃螃蟹,敢于扛大旗。这里说的不是出风头和占便宜Q而是_对于工作中棘手的问题敢于站出来,虽然我知道你心里可能没底Q但是这N不是一个加速自我提升的Z吗?
  • 消停点,别老是抱?#8220;公司里没有h带我Q这个做不了”。得了吧Q有人带你又能怎么P通过一q获得别Zq的工作l验Q你加班都加不出来啊Q参考上一条徏议吧?/li>
      一旦你开始找理由Q那么这件事做不好了,你离p|更q了一步?br />

      对于日常的工作,我们不仅要充分发挥主观能动性,不给借口生存的空_对于上的安排,我们更要摆正心态,切实落地执行?/div>
  • 对于上的命令和安排Q要切实的去执行Q这是达成共同目标的基本保证Q当Ӟ商场q战场Q不能完全照搬,虽然上也会犯错Q但是当下却是以执行为重Q?/li>
  • 团队内,乃至于整个公司,遵守U律是我们共同踏步向前的守则Q就好比每天中午的健w操一Pq虽然和工作没有直接的关p,但是q对于保持我们的工作状态却有着U极的帮助。在工作上的分歧Q很ҎD我们和同事,领导甚至公司之间产生对立情AQ这是万万不得的,我们是一个团体,l护共同的服务和产品Q公司的形象是我们自n的Ş象,我们自n的Ş象也是公司的形象?/li>
  • 事无巨细的对待工作,才能事无巨细的对待h生。大多数人的工作都是自己选择的,我们选择每天p8个小时或者更多的生命投入在其中,我们希望成就一些结果,那么p求我们锱铢必较的ȝ待它Q工作之中无事Q厚U才能薄发,工作能做好的人,生活也不会太差?/li>
  • 工作不论是不是自己选择的,不论工作带来的好与不好,它都是我们的工作Q我们要接受它,除非你走人,否则Q接受它Qƈ且现在就开始做Q现在!
      作ؓl织的一员,服从安排Q遵守纪律自然不必说Q无规矩不方圆的道理都懂得,但是我也不是从一开始就很从容的接收q些条条框框Q那些看似抠门不仁道的规定实际上是ؓ了塑造更优秀的自己,打造更优秀的团队,没听说过谁谁不关心你q愿意花心思去束你的Q想惌q亲妈吧?br />

      工作x责QQ选择了这份责任,p不遗余力的承担下去,承担的过E可能看h?#8220;愚蠢”的,但是却反映了你的负责E度?/div>
  • 在工作中职责Q那么将会受到同事的重Q领导的赏识Q在C会中你也会获得更好的生存条Ӟ推卸责QQ玩忽职守,那无非是在自q人生道\上设|障?/li>
  • 能力大Q责任越大,我们要有效运用手里的能力Qؓ自己和社会创造h|q也正是我们存在的意义。负责h的h也是能有效运用能力的人,不成熟的人ƈ不具备行责ȝ能力Q就好比英雄电媄里的英雄Q保护世界的愿望很美好,但是需要与之相匚w的能力?/li>
  • 负责一定是对结果负责。如果超U英雄保护地球失败,那还好意思说“我们会保护好地球”的吗Q如果你让一个负责h的h去负责某件事的过E,那么他肯定不会满意的Q因为只有结果才能满责hQ才会让他有成就感。对行ؓ负责某种E度上也是逃避责Q的一U表现?/li>
  • 对于承担责QQ忠诚是一个必ȝ品质Q没有忠诚,没有责任这一_要承担责任首先要对自己忠诚,在这个前提之下,你才有可能去达成惌的结果,你才能对得v信Q你的人,你才能对得v自己?/li>
      责Q是无形的Q是没有条g的,你在q求卓越的同Ӟ责Q是相伴相生的Q责L自朋友,家h和社会,成熟的h承担着更多的责任,有着更强大的能力Q幼E的人拒l责任,惶惶不可l日

      我们都听q,同岗不同酬,或者入职时间相同,但是成长和晋升不同的事情Q真是老生常谈了啊。我们都有一颗不甘于q_的心Q都不愿意打工一辈子Q都惛_老板Q但是很多h到最后都归于q_Q但是老板也不是从一开始就是老板的,那么我们如何在自q岗位上做到^凡而不q_呢?
  • “你追求卓,成功q求?#8221;Q这是一句来自《三d闹宝莱坞》的台词Q无Zw处什么岗位,你是客服Q服务好你的每一个客P你是E序员,服务好你的每一行代码,你是理者,服务好你的每一计划,事做多做好Q那么事情再多也能有条不?/li>
  • 过客户的预惻I不论客户是谁Q事情得出的l果Q那么你总能得到好评Q多做一点点Q你能收L可不止一点点Q倘若你都考虑理者或者老板该考虑的事情了Q那么你距离他们q会q吗Q?/li>
  • 路是出来的,做事的办法也是脑子想出来的,我们生来是要解决问题的Q食住行的问题我们能搞的定Q工作的问题同样搞的定,让困难放马过来,让它知道它不是最后一个死在自己手下的困难?/li>
  • 全局意识。有Q同L人摆在不同的位置Q就是不同的人,q是相对的,归根I底q是要看人本w的Q倘若一个h的心态不同,那么所Ȁ发的能量是l对的。我们应该都听过泥瓦匠砌墙的故事Q一个把工作只是当做砌墙的hQ和一个把工作看成是一个伟大工E的人,心态所带来的能量是l对不一LQ前者,无论让他ȝ一间小屋,或者是ȝ一座大厦,在他眼里都是砌墙Q但是在后者眼里,屋和大厦同h宏伟的工E,他将会以为拥有更高远的眼光而受到重用?/li>
      不甘于^凡,首先要正视^凡,q_不是q_Q我们追求卓,成功自然q求我们Q如果不是这P那么成功q求谁呢Q如果一个企业里员工的榜样不是老板Q那么这个企业一定岌岌可?/strong>

      “志同而事Q道同而谋”Q这是来自我们BOSS的一个观?br />
  • 我们是一个团队,我们在一条船上,同呼吸,共命q,p退Q我们对于目标的实现Q应该不受n份或者岗位的限制Q都应该投入100%的热情和_֊?/li>
  • 我们应该感谢企业l了我们一个施展才华的舞台Q让我们在团队中M现自q价|同样的,企业也会感激你的付出Q最l受益的Q还是我们自己?/li>
  • 不断充电Q不断提升,不给自己NQ互联网时代Q原地踏步就是退步?/li>
      以上U种不是鸡汤Q不是教条,大道理h人都懂,但是情l却难以自控Q我们都希望能出人头圎ͼ但请诸君时刻戒骄戒躁Q稳扎稳打,闷声儿装大逼~谢谢


]]>nginxQ菜鸟手?/title><link>http://www.tkk7.com/produ/archive/2015/12/01/430580.html</link><dc:creator>都较?/dc:creator><author>都较?/author><pubDate>Tue, 01 Dec 2015 09:32:00 GMT</pubDate><guid>http://www.tkk7.com/produ/archive/2015/12/01/430580.html</guid><wfw:comment>http://www.tkk7.com/produ/comments/430580.html</wfw:comment><comments>http://www.tkk7.com/produ/archive/2015/12/01/430580.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/produ/comments/commentRss/430580.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/produ/services/trackbacks/430580.html</trackback:ping><description><![CDATA[<div>以下讲记q的Q是为nginx入门U新人和打算学习nginx的h而准备的?/div><div></div><div><br />首先QnginxQ读作:engine xQ是一个反向代理服务器。这里顺侉KqC下相关的概念Q来帮助概念不清楚的朋友来获得最佳的学习体验?/div><div></div><div>服务器可以按照不同标准划分ؓ很多U,那么q里讨论的就是其中的一U,代理服务器。代理服务器可以再次l分Q分为正向代理服务器和反向代理服务器Q这两者是相对于目标服务器而言的。当我们QOQ希望访问某一台服务器QTQ是具体的服务器Q,但是׃U种原因Q我们不能去直接的访问TQ但是我们可以直接访问另一台服务器QPQ,而P却可以访问TQ那么正好,我们拜托P去访问TQ将获得的信息返回给我们Q这个过E中Q我们始l知道要讉K的那一台服务器Q所以,q个代理q程UCؓ正向代理Q那么与之相对,如果我们知道要访问的站点Q但是该站点可能同时部v在多个服务器上,不过最l我们获得了目标站点的内容,q个q程中,我们不知道具体访问过哪一台服务器Q所以,q个代理q程UCؓ反向代理?/div><div></div><div><br />那么nginx是q些q来使用率不断攀升的代理服务器,你可以查看一下中间g的用情况,q里l出一个调查,<a title="Ҏ查看">Ҏ查看</a><br /><br /><div>好了Q我们开始吧。我不管你什么系l,但是我假定你已经安装好了nginxQ排除那些系l上操作的差异,我们来感受一下最基本的操作?/div><div></div><div>nginx?strong>启动</strong>Q?strong>停止</strong>Q?strong>重新加蝲配置文g</strong></div><div>在控制台中定位到nginx所在的目录Q用nginx -s signal操作nginxQsignal可以是以下参?br /><div><ul><li>stop — 立刻停止Q不会等待当前工作结束)</li><li>quit — 延迟停止Q会{待当前工作l束Q?/li><li>reload — 重新加蝲配置文gQ会优先查新配置文g的格式,通过校验则启用新配置Q不通过则沿用旧配置Q?/li><li>reopen — 重新打开日志文g</li></ul></div><div>好了Q知道了基本操作之后Q我们就看一下配|文Ӟ看懂了配|文Ӟ我们p让nginx按照我们的需要来q作。打开nginx.cnf文g</div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#user  nobody;<br />#我左Ҏ?#8220;#”Pq说明这一行都是注?br />#下面的这个,看v来像一寚w值对Q这么理解也可以Q官方给出的解释?#8220;单指?#8221;<br />worker_processes  1;<br /><br />#error_log  logs/error.log;<br />#error_log  logs/error.log  notice;<br />#error_log  logs/error.log  info;<br /><br />#pid        logs/nginx.pid;<br /><br />#与简单指令相对,下面的event以及一对花括号Q称?#8220;块指?#8221;Q含有其他指令的“块指?#8221;Q我们称?#8220;上下?#8221;<br />#同时Q我们把不被包含在Q何其他上下文中的上下文称作主上下?br />#所以,“events”?#8220;http”是M下文Q?#8220;server”?#8220;location”׃是主上下?br />events {<br />    worker_connections  1024;<br />}<br /><br />http {<br />    include       mime.types;<br />    default_type  application/octet-stream;<br /><br />    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '<br />    #                  '$status $body_bytes_sent "$http_referer" '<br />    #                  '"$http_user_agent" "$http_x_forwarded_for"';<br /><br />    #access_log  logs/access.log  main;<br /><br />    sendfile        on;<br />    #tcp_nopush     on;<br /><br />    #keepalive_timeout  0;<br />    keepalive_timeout  65;<br /><br />    #gzip  on;<br /> <br />    #好了Q我们需要配|一个服务器最基本的功能,l出h相应l果<br />    #看到下面q个server上下文,它看上去但是也的是用来配制服务器的<br />    server {<br />        #q个server上下文监听的端口以及域名<br />        listen       80;<br />        server_name  localhost;<br /><br />        #charset koi8-r;<br /><br />        #access_log  logs/host.access.log  main;<br /><br />        #q里是路由规则了,location加空格再加匹配项Q这里的匚wҎ“/”Q也是说所有以“/”开头的h都符合这个\p?br />        #但是需要注意一点,nginx在匹配\q时候有一个最长前~匚w规则Q看C一个\p?br />        location / {<br />            #q里的root指的是响应资源所在的目录Q这是指明,资源在nginx目录下的index目录?br />            root   html;<br />            #index指o会响应指定的面Q按ơ序q行查找Q找Cp?br />            index  index.html index.htm;<br />        }<br />        <br />        #qlocation的匹配项?#8220;/demo”Q那么当一个请求是“/demo/get”的时候,q个h会匹配之前的“/”和这里的“/demo”Q但?br />        #nginx会选择前缀较长的匹配项来匹配,所以nginx会?demo路由的相应内?br />        location /demo {<br />            #q里又重新设定了root的|表示用nginx目录demo目录下的资源响应<br />            #如果root在主上下文之外设定,那么相当于一个全局的设定,在其他上下文中没有被覆盖的话Q则使用全局讑֮<br />            root   demo;<br />        }<br /><br />        #截止Cؓ目前的配|,nginx都是用来响应静态的资源Q比如我们访问localhost/demo/show.htmlQ那么nginx会返回nginx目录?br />        #demo目录下show.html的内容,所以,我们l常会把nginx当做一个静态内容缓存来使用Q来~解后箋服务器的响应压力<br /><br />        #对于location来说Q常用的q有正则匚w<br />        #静态资源配|,当然也可以来响应动态请求,不过q里有一炚w要注意,当用正则匹配时Q如果请求匹配了当前的\p则,那么<br />        #会以正则的匹配内容ؓdƈq回Q不会用非正则的匹配项内容q回Q以“~”开_pC匹配项是一个正则表辑ּQ当Ӟq有?br />        #他不同规则的前缀都表C正则,后箋再展开<br />            location ~ .*\.(css|js)(.*) {<br />             proxy_set_header Host $host;<br />             proxy_cache_valid 200 302 1h;<br />             proxy_cache_valid 301 1d;<br />             proxy_cache_valid any 1m;<br />             expires 7d;<br />        }<br /><br />        #对于代理服务器来_最基本的功能代理是必不可少的,而且配置也非常简?br />        #端口转发配置Q做出如下配|之后,W合匚w的h会原不动的转发到otherhost域名?br />        location /proxy{<br />         proxy_pass http://otherhost;<br />        }<br /><br />        #下面的配|显而易见,是错误页面的配置<br />        #error_page  404              /404.html;<br /><br />        # redirect server error pages to the static page /50x.html<br />        #<br />        error_page   500 502 503 504  /50x.html;<br />        location = /50x.html {<br />            root   html;<br />        }<br />    }<br />}</div><div>有了q套最基本的配|,可以试着开启nginxQ感受一下它的功?/div></div></div><img src ="http://www.tkk7.com/produ/aggbug/430580.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/produ/" target="_blank">都较?/a> 2015-12-01 17:32 <a href="http://www.tkk7.com/produ/archive/2015/12/01/430580.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javaScript_跨域资源׃nCORShttp://www.tkk7.com/produ/archive/2015/11/26/430531.html都较?/dc:creator>都较?/author>Thu, 26 Nov 2015 08:46:00 GMThttp://www.tkk7.com/produ/archive/2015/11/26/430531.htmlhttp://www.tkk7.com/produ/comments/430531.htmlhttp://www.tkk7.com/produ/archive/2015/11/26/430531.html#Feedback0http://www.tkk7.com/produ/comments/commentRss/430531.htmlhttp://www.tkk7.com/produ/services/trackbacks/430531.html要记录好q个问题Q首先需要描q清楚这个问题?/div>
有如下的一个场景:我们在实C个系l中某个功能的时候,可能pȝ的某些模块不在一个域名下。用户中心模块部|在user.xxx.com下,产品相关的功能部|在product.xxx.com下,在用户中心的某些面Q我们或许要h产品功能模块的功能,此时׃有问题出现。以Google ChromeQ版?45.0.2454.101 mQ浏览器ZQ当当前的页面在A域名下,我们在页面中构造了一个异步请求,我们需要调用位于B域名下的某个APIQ代码片D如下:
<script type="text/javascript">
    $(function() {
        //当前面所在域名:http://localhost:9000/
        //jQuery版本Qjquery-1.11.3.min.js
        $.ajax({
            url : "http://localhost:9001/order/pindexpost",
            type : "POST",
            dataType : 'json',
            success : function(data) {
                alert(data);
            }
        });
    });
</script>
但是h之后Q浏览器控制台给Z如下的错误信?/div>
那么q就是标题中所提到?strong>跨域资源׃nCORS问题了。我们把q个概念l化一下,首先Qؓ什么会有CORSQ简单点理解是Z安全考虑Q浏览器都遵循一个叫同源{略的东西,他约束浏览器?#8220;不是你的东西Q你问h家要Qh安认不l你Q除非h家同意给?#8221;Q基于这个策略,有了跨域资源共享的问题Q那么,怎么叫跨域了呢Q上面代码中的域名不是一L吗,都是指向本地的localhost啊。D个栗子说明下

http://www.tkk7.com:80,左边是一个完整的hQ包含了协议Q子域名{等若干部分Q我们把它理解ؓ域,但凡是在q个域下发生的请求,都无法直接访问到其他域的资源
  • http://www.tkk7.com:80能访问http://www.tkk7.com:81下的资源吗?不行Q?/li>
  • http://www.tkk7.com:80能访问http://abc.blogjava.net:80下的资源吗?不行Q?/li>
  • http://www.tkk7.com:80能访问http://www.tkk7.com:80下的资源吗?不行Q?/li>
  • http://www.tkk7.com:80能访问http://域名对应的真实IP:80下的资源吗?不行Q?/li>
  • http://www.tkk7.com:80能访问http://www.xyz.net:80下的资源吗?不行Q?/li>
域哪怕有一点点不一?/strong>Q?strong>一点点不一?/strong>Q?strong>一点点不一?/strong>Q都是不可以讉K的,那么问题来了Q如何实现跨域呢Q?目前有三U方案可以打破同源策略所带来的限Ӟ实现跨域h?/div>
  1. 使用JSONP。这U方案是使用HTML的script标签来实现的Qscript标签的src属性不受同源策略约束,可以讉KL站点的资源,但是Q该Ҏ有着自己的约束。首先,他只能发出GEThQ因为script标签的初衷就是ؓ了获取js脚本Q所以如果返回的数据内容不是js脚本的话Q也不会成功。基于这个约束,我们需要改造一下我们的hQ?br />
     1 <script type="text/javascript">
     2     $(function () {
     3     //当前面所在域名:http://localhost:9000/
     4     // jQuery版本Qjquery-1.11.3.min.js
     5         $.ajax({
     6             url: "http://localhost:9001/order/pindexpost",
     7             type: "POST", dataType: 'jsonp',
     8             jsonpCallback: "callback"
     9         });
    10     })
    11     ;
    12     function callback(result) {
    13         alert("suc:" + result);
    14     }
    15 </script> 
    刚才提到QJSONP方式是基于script标签的,所以我们要对返回的数据做一些处理,使返回的数据是一Djs脚本才可以。我们在客户端预定义好callback函数Q得服务端q回数据的时候可以直接调用这个callback函数Q服务端代码片段如下Q?/div>
    1 response().setContentType("application/javascript");
    2 return ok("callback(" + data + ")");
    要注明返回的格式Qƈ且data的格式也要符合js的语法。其实说白了QJSONP是h目标数据Q然后将目标数据和回调函数进行拼接,以javascript的Ş式返回给览器,之后览器执行的q个回调函数?br />
  2. 使用代理服务?/strong>。这个比较好理解Q不q运l的成分多一些,讄一个代理服务器Q根据请求API所在命名空间的不同Q{发到相应的域去,q样一来就骗过了浏览器Q让览器以为所有的数据都来自一个域?br />
  3. 讄h的相应头。在目标API的响应头中添?#8220;Access-Control-Allow-Origin”Q设|gؓ“*”Q这是让服务器通知览器,?#8220;我这个API的响应,是面向所有h的,*׃表这个意思啊”Q但是,q也会带来一个安全性的问题Q所以你可以讄部分站点可以跨域讉KQ比如Access-Control-Allow-Origin: http://www.tkk7.com/Q但是这个响应头存在一定的兼容问题Q具体支持情况可以查?a title="caniuse.com">caniuse.com


]]>Css3实现一个坐标闪烁效?/title><link>http://www.tkk7.com/produ/archive/2015/11/20/430573.html</link><dc:creator>都较?/dc:creator><author>都较?/author><pubDate>Fri, 20 Nov 2015 07:54:00 GMT</pubDate><guid>http://www.tkk7.com/produ/archive/2015/11/20/430573.html</guid><wfw:comment>http://www.tkk7.com/produ/comments/430573.html</wfw:comment><comments>http://www.tkk7.com/produ/archive/2015/11/20/430573.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/produ/comments/commentRss/430573.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/produ/services/trackbacks/430573.html</trackback:ping><description><![CDATA[最l效果如下:<br /><img src="http://www.tkk7.com/images/blogjava_net/produ/radiation.gif" border="0" alt="" /><br /><br />面内容如下Q?br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span> <span style="color: #0000FF; "><</span><span style="color: #800000; ">body</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">2</span>     <br /><span style="color: #008080; ">3</span> <span style="color: #0000FF; "><</span><span style="color: #800000; ">div </span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="target animatecommon"</span><span style="color: #0000FF; ">></</span><span style="color: #800000; ">div</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">4</span> <span style="color: #0000FF; "><</span><span style="color: #800000; ">div </span><span style="color: #FF0000; ">class</span><span style="color: #0000FF; ">="radiation animatecommon"</span><span style="color: #0000FF; ">></</span><span style="color: #800000; ">div</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">5</span> <br /><span style="color: #008080; ">6</span> <span style="color: #0000FF; "></</span><span style="color: #800000; ">body</span><span style="color: #0000FF; ">></span><br /><span style="color: #008080; ">7</span> </div><br />css如下Q?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #800000; "><br /><style type="text/css"><br /><br />.animatecommon</span>{<span style="color: #FF0000; "><br />    animation-timing-function</span>:<span style="color: #0000FF; ">liner</span>;<span style="color: #FF0000; "><br />    animation-iteration-count</span>:<span style="color: #0000FF; ">infinite</span>;<span style="color: #FF0000; "><br />    animation-play-state</span>:<span style="color: #0000FF; ">running</span>;<span style="color: #FF0000; "><br />    animation-direction</span>:<span style="color: #0000FF; ">normal</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Firefox: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -moz-animation-duration</span>:<span style="color: #0000FF; ">1s</span>;<span style="color: #FF0000; "><br />    -moz-animation-timing-function</span>:<span style="color: #0000FF; ">liner</span>;<span style="color: #FF0000; "><br />    -moz-animation-iteration-count</span>:<span style="color: #0000FF; ">infinite</span>;<span style="color: #FF0000; "><br />    -moz-animation-play-state</span>:<span style="color: #0000FF; ">running</span>;<span style="color: #FF0000; "><br />    -moz-animation-direction</span>:<span style="color: #0000FF; ">normal</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Safari and Chrome: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -webkit-animation-duration</span>:<span style="color: #0000FF; ">1s</span>;<span style="color: #FF0000; "><br />    -webkit-animation-timing-function</span>:<span style="color: #0000FF; ">liner</span>;<span style="color: #FF0000; "><br />    -webkit-animation-iteration-count</span>:<span style="color: #0000FF; ">infinite</span>;<span style="color: #FF0000; "><br />    -webkit-animation-play-state</span>:<span style="color: #0000FF; ">running</span>;<span style="color: #FF0000; "><br />    -webkit-animation-direction</span>:<span style="color: #0000FF; ">normal</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Opera: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -o-animation-duration</span>:<span style="color: #0000FF; ">1s</span>;<span style="color: #FF0000; "><br />    -o-animation-timing-function</span>:<span style="color: #0000FF; ">liner</span>;<span style="color: #FF0000; "><br />    -o-animation-iteration-count</span>:<span style="color: #0000FF; ">infinite</span>;<span style="color: #FF0000; "><br />    -o-animation-play-state</span>:<span style="color: #0000FF; ">running</span>;<span style="color: #FF0000; "><br />    -o-animation-direction</span>:<span style="color: #0000FF; ">normal</span>;<span style="color: #FF0000; "><br /></span>}<span style="color: #800000; "><br /><br />.radiation</span>{<span style="color: #FF0000; "><br />    width</span>:<span style="color: #0000FF; ">50px</span>;<span style="color: #FF0000; "><br />    height</span>:<span style="color: #0000FF; ">50px</span>;<span style="color: #FF0000; "><br />    border-radius</span>:<span style="color: #0000FF; ">50%</span>;<span style="color: #FF0000; "><br />    background</span>:<span style="color: #0000FF; ">red</span>;<span style="color: #FF0000; "><br />    position</span>:<span style="color: #0000FF; ">fixed</span>;<span style="color: #FF0000; "><br />    top</span>:<span style="color: #0000FF; ">50%</span>;<span style="color: #FF0000; "><br />    left</span>:<span style="color: #0000FF; ">50%</span>;<span style="color: #FF0000; "><br />    margin-left</span>:<span style="color: #0000FF; ">-25px</span>;<span style="color: #FF0000; "><br />    margin-top</span>:<span style="color: #0000FF; ">-25px</span>;<span style="color: #FF0000; "><br />    z-index</span>:<span style="color: #0000FF; "> 99</span>;<span style="color: #FF0000; "><br />    animation-name</span>:<span style="color: #0000FF; ">radiation</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Firefox: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -moz-animation-name</span>:<span style="color: #0000FF; ">radiation</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Safari and Chrome: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -webkit-animation-name</span>:<span style="color: #0000FF; ">radiation</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Opera: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -o-animation-name</span>:<span style="color: #0000FF; ">radiation</span>;<span style="color: #FF0000; "><br /></span>}<span style="color: #800000; "><br /><br /><br />.target<br /></span>{<span style="color: #FF0000; "><br />    width</span>:<span style="color: #0000FF; ">100px</span>;<span style="color: #FF0000; "><br />    height</span>:<span style="color: #0000FF; ">100px</span>;<span style="color: #FF0000; "><br />    margin-left</span>:<span style="color: #0000FF; ">-50px</span>;<span style="color: #FF0000; "><br />    margin-top</span>:<span style="color: #0000FF; ">-50px</span>;<span style="color: #FF0000; "><br />    border-radius</span>:<span style="color: #0000FF; ">50%</span>;<span style="color: #FF0000; "><br />    background</span>:<span style="color: #0000FF; ">red</span>;<span style="color: #FF0000; "><br />    position</span>:<span style="color: #0000FF; ">fixed</span>;<span style="color: #FF0000; "><br />    top</span>:<span style="color: #0000FF; ">50%</span>;<span style="color: #FF0000; "><br />    left</span>:<span style="color: #0000FF; ">50%</span>;<span style="color: #FF0000; "><br />    z-index</span>:<span style="color: #0000FF; "> 98</span>;<span style="color: #FF0000; "><br />    <br />    animation-name</span>:<span style="color: #0000FF; ">location</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Firefox: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -moz-animation-name</span>:<span style="color: #0000FF; ">location</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Safari and Chrome: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -webkit-animation-name</span>:<span style="color: #0000FF; ">location</span>;<span style="color: #FF0000; "><br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "> Opera: </span><span style="color: #008000; ">*/</span><span style="color: #FF0000; "><br />    -o-animation-name</span>:<span style="color: #0000FF; ">location</span>;<span style="color: #FF0000; "><br /><br /></span>}<span style="color: #800000; "><br /><br />@keyframes location <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  </span>}<span style="color: #800000; "><br />}<br />@-moz-keyframes location <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  </span>}<span style="color: #800000; "><br />}<br />@-webkit-keyframes location <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  </span>}<span style="color: #800000; "><br />}<br />@-o-keyframes location <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  </span>}<span style="color: #800000; "><br />}<br /><br /><br />@keyframes radiation <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> white</span>}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=100)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">1</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> red</span>}<span style="color: #800000; "><br />}<br />@-moz-keyframes radiation <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> white</span>}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=100)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">1</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> red</span>}<span style="color: #800000; "><br />}<br />@-webkit-keyframes radiation <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> white</span>}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=100)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">1</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> red</span>}<span style="color: #800000; "><br />}<br />@-o-keyframes radiation <br /></span>{<span style="color: #FF0000; "><br />0%   {transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(3)scaleY(3)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=0)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">0</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 0</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> white</span>}<span style="color: #800000; "><br />100% </span>{<span style="color: #FF0000; ">transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-webkit-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-moz-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">-o-transform</span>:<span style="color: #0000FF; ">scaleX(1)scaleY(1)</span>;<span style="color: #FF0000; ">filter</span>:<span style="color: #0000FF; ">alpha(opacity=100)</span>;<span style="color: #FF0000; ">  -moz-opacity</span>:<span style="color: #0000FF; ">1</span>;<span style="color: #FF0000; ">  -khtml-opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">  opacity</span>:<span style="color: #0000FF; "> 1</span>;<span style="color: #FF0000; ">background</span>:<span style="color: #0000FF; "> red</span>}<span style="color: #800000; "><br />}<br /><br /></style><br /></span></div><br /><img src ="http://www.tkk7.com/produ/aggbug/430573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/produ/" target="_blank">都较?/a> 2015-11-20 15:54 <a href="http://www.tkk7.com/produ/archive/2015/11/20/430573.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文本操作Q回文校?/title><link>http://www.tkk7.com/produ/archive/2015/11/18/430574.html</link><dc:creator>都较?/dc:creator><author>都较?/author><pubDate>Wed, 18 Nov 2015 08:04:00 GMT</pubDate><guid>http://www.tkk7.com/produ/archive/2015/11/18/430574.html</guid><wfw:comment>http://www.tkk7.com/produ/comments/430574.html</wfw:comment><comments>http://www.tkk7.com/produ/archive/2015/11/18/430574.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/produ/comments/commentRss/430574.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/produ/services/trackbacks/430574.html</trackback:ping><description><![CDATA[<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">package</span> demo_2015_11_18;<br /><span style="color: #008080; "> 2</span> <br /><span style="color: #008080; "> 3</span> <span style="color: #0000FF; ">import</span> java.util.Arrays;<br /><span style="color: #008080; "> 4</span> <span style="color: #0000FF; ">import</span> java.util.Scanner;<br /><span style="color: #008080; "> 5</span> <br /><span style="color: #008080; "> 6</span> <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> DEMO {<br /><span style="color: #008080; "> 7</span> <br /><span style="color: #008080; "> 8</span>     <span style="color: #008000; ">/**</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 9</span> <span style="color: #008000; ">     * 判断输入的内Ҏ否是回文<br /></span><span style="color: #008080; ">10</span> <span style="color: #008000; ">     * </span><span style="color: #808080; ">@param</span><span style="color: #008000; "> args<br /></span><span style="color: #008080; ">11</span> <span style="color: #008000; ">     </span><span style="color: #008000; ">*/</span><br /><span style="color: #008080; ">12</span>     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> main(String[] args) {<br /><span style="color: #008080; ">13</span>         Scanner s = <span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">14</span>         <span style="color: #0000FF; ">try</span> {<br /><span style="color: #008080; ">15</span>             <span style="color: #008000; ">//</span><span style="color: #008000; ">d数据?/span><span style="color: #008000; "><br /></span><span style="color: #008080; ">16</span> <span style="color: #008000; "></span>            s = <span style="color: #0000FF; ">new</span> Scanner(System.in);<br /><span style="color: #008080; ">17</span>             String srcStr = s.nextLine();<br /><span style="color: #008080; ">18</span>             <span style="color: #0000FF; ">char</span>[] srcChars = srcStr.toCharArray();<br /><span style="color: #008080; ">19</span>             <br /><span style="color: #008080; ">20</span>             <span style="color: #008000; ">//</span><span style="color: #008000; ">判断数组长度奇偶</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">21</span> <span style="color: #008000; "></span>            <span style="color: #0000FF; ">char</span>[] t1 = <span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">22</span>             <span style="color: #0000FF; ">char</span>[] t2 = <span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">23</span>             <span style="color: #008000; ">//</span><span style="color: #008000; ">分割数组</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">24</span> <span style="color: #008000; "></span>            t1 = Arrays.copyOfRange(srcChars, 0, srcChars.length/2);<br /><span style="color: #008080; ">25</span>             <span style="color: #0000FF; ">if</span>(srcChars.length%2 == 0){<br /><span style="color: #008080; ">26</span>                 <span style="color: #008000; ">//</span><span style="color: #008000; ">偶数</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">27</span> <span style="color: #008000; "></span>                t2 = Arrays.copyOfRange(srcChars, srcChars.length/2, srcChars.length);<br /><span style="color: #008080; ">28</span>             }<span style="color: #0000FF; ">else</span>{<br /><span style="color: #008080; ">29</span>                 <span style="color: #008000; ">//</span><span style="color: #008000; ">奇数</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">30</span> <span style="color: #008000; "></span>                t2 = Arrays.copyOfRange(srcChars, srcChars.length/2 + 1, srcChars.length);<br /><span style="color: #008080; ">31</span>             }<br /><span style="color: #008080; ">32</span>             <br /><span style="color: #008080; ">33</span>             <span style="color: #008000; ">//</span><span style="color: #008000; ">反{后半截数l?/span><span style="color: #008000; "><br /></span><span style="color: #008080; ">34</span> <span style="color: #008000; "></span>            <span style="color: #0000FF; ">char</span>[] temp = <span style="color: #0000FF; ">new</span> <span style="color: #0000FF; ">char</span>[t2.length];<br /><span style="color: #008080; ">35</span>             <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = t2.length - 1; i >= 0; i--) {<br /><span style="color: #008080; ">36</span>                 temp[t2.length - 1 - i] = t2[i];<br /><span style="color: #008080; ">37</span>             }<br /><span style="color: #008080; ">38</span>             <br /><span style="color: #008080; ">39</span>             System.out.println(Arrays.equals(t1,temp));<br /><span style="color: #008080; ">40</span>             <br /><span style="color: #008080; ">41</span>         } <span style="color: #0000FF; ">catch</span> (Exception e) {<br /><span style="color: #008080; ">42</span>             s.close();<br /><span style="color: #008080; ">43</span>             e.printStackTrace();<br /><span style="color: #008080; ">44</span>         }<br /><span style="color: #008080; ">45</span>         <br /><span style="color: #008080; ">46</span>     }<br /><span style="color: #008080; ">47</span>     <br /><span style="color: #008080; ">48</span> }<br /><span style="color: #008080; ">49</span> </div><br />l果展示Q?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->asddsa<br /><span style="color: #0000FF; ">true</span><br /><br />asdsasd<br /><span style="color: #0000FF; ">false</span><br /><br />asdasd<br /><span style="color: #0000FF; ">false</span><br /><br />asdxdsa<br /><span style="color: #0000FF; ">true</span></div><img src ="http://www.tkk7.com/produ/aggbug/430574.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/produ/" target="_blank">都较?/a> 2015-11-18 16:04 <a href="http://www.tkk7.com/produ/archive/2015/11/18/430574.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文本操作Q元韛_W统?/title><link>http://www.tkk7.com/produ/archive/2015/11/17/430575.html</link><dc:creator>都较?/dc:creator><author>都较?/author><pubDate>Tue, 17 Nov 2015 08:11:00 GMT</pubDate><guid>http://www.tkk7.com/produ/archive/2015/11/17/430575.html</guid><wfw:comment>http://www.tkk7.com/produ/comments/430575.html</wfw:comment><comments>http://www.tkk7.com/produ/archive/2015/11/17/430575.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/produ/comments/commentRss/430575.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/produ/services/trackbacks/430575.html</trackback:ping><description><![CDATA[<div>泛泛的说Q今天的需求就是需要统计特定字W出现的个数Q想必各位都会,如果仅仅是实玎ͼ传统的实现应该像下面q样<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span> Map<String, Integer> counts = <span style="color: #0000FF; ">new</span> HashMap<String, Integer>();<br /><span style="color: #008080; ">2</span> <span style="color: #0000FF; ">for</span> (String word : words) {<br /><span style="color: #008080; ">3</span>     Integer count = counts.get(word);<br /><span style="color: #008080; ">4</span>     <span style="color: #0000FF; ">if</span> (count == <span style="color: #0000FF; ">null</span>) {<br /><span style="color: #008080; ">5</span>         counts.put(word, 1);<br /><span style="color: #008080; ">6</span>     } <span style="color: #0000FF; ">else</span> {<br /><span style="color: #008080; ">7</span>         counts.put(word, count + 1);<br /><span style="color: #008080; ">8</span>     }<br /><span style="color: #008080; ">9</span> }</div><br /><div>q么做没问题Q简单粗暴快Q只不过q次我希望更优雅的实现它。今天特地要用一下Google的Guava工程提供的APIQMultiset。看上去他是一个集合,他也的确是,我们可以单的理解Z是一个元素顺序无养I元素可重的集合,q里不细Ԍ以用ؓ丅R后l有Z展开一下Guava的内宏V?/div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; "> 1</span> <span style="color: #0000FF; ">package</span> demo_2015_11_17;<br /><span style="color: #008080; "> 2</span> <br /><span style="color: #008080; "> 3</span> <span style="color: #0000FF; ">import</span> java.util.Scanner;<br /><span style="color: #008080; "> 4</span> <br /><span style="color: #008080; "> 5</span> <span style="color: #0000FF; ">import</span> com.google.common.collect.HashMultiset;<br /><span style="color: #008080; "> 6</span> <span style="color: #0000FF; ">import</span> com.google.common.collect.Multiset;<br /><span style="color: #008080; "> 7</span> <br /><span style="color: #008080; "> 8</span> <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">class</span> DEMO <br /><span style="color: #008080; "> 9</span> {<br /><span style="color: #008080; ">10</span>     <span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">static</span> <span style="color: #0000FF; ">void</span> main( String[] args )<br /><span style="color: #008080; ">11</span>     {<br /><span style="color: #008080; ">12</span>         <br /><span style="color: #008080; ">13</span>         Scanner s = <span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">14</span>         <span style="color: #0000FF; ">try</span> {<br /><span style="color: #008080; ">15</span>             <span style="color: #008000; ">//</span><span style="color: #008000; ">讑֮数据?/span><span style="color: #008000; "><br /></span><span style="color: #008080; ">16</span> <span style="color: #008000; "></span>            s = <span style="color: #0000FF; ">new</span> Scanner(System.in);<br /><span style="color: #008080; ">17</span>             String srcStr = s.nextLine();<br /><span style="color: #008080; ">18</span>             String vowels = "aeiou";<br /><span style="color: #008080; ">19</span>             <br /><span style="color: #008080; ">20</span>             Multiset<String> ms = HashMultiset.create();<br /><span style="color: #008080; ">21</span>             <br /><span style="color: #008080; ">22</span>             <span style="color: #0000FF; ">char</span>[] srcChars = srcStr.toCharArray();<br /><span style="color: #008080; ">23</span>             String curChar = <span style="color: #0000FF; ">null</span>;<br /><span style="color: #008080; ">24</span>             <br /><span style="color: #008080; ">25</span>             <span style="color: #008000; ">//</span><span style="color: #008000; ">遍历数据?/span><span style="color: #008000; "><br /></span><span style="color: #008080; ">26</span> <span style="color: #008000; "></span>            <span style="color: #0000FF; ">for</span> (<span style="color: #0000FF; ">int</span> i = srcChars.length - 1; i >= 0; i--) {<br /><span style="color: #008080; ">27</span>                 curChar = String.valueOf(srcChars[i]);<br /><span style="color: #008080; ">28</span>                 <span style="color: #0000FF; ">if</span>(vowels.indexOf(curChar) != -1){<br /><span style="color: #008080; ">29</span>                     ms.add(curChar);<br /><span style="color: #008080; ">30</span>                 }<br /><span style="color: #008080; ">31</span>             }<br /><span style="color: #008080; ">32</span>             <br /><span style="color: #008080; ">33</span>             <span style="color: #0000FF; ">for</span> (String stemp : ms.elementSet()) {<br /><span style="color: #008080; ">34</span>                 System.out.println("元音字母[" + stemp + "]的出现次CؓQ? + ms.count(stemp));<br /><span style="color: #008080; ">35</span>             }<br /><span style="color: #008080; ">36</span>             <br /><span style="color: #008080; ">37</span>         } <span style="color: #0000FF; ">finally</span> {<br /><span style="color: #008080; ">38</span>             s.close();<br /><span style="color: #008080; ">39</span>         }<br /><span style="color: #008080; ">40</span>     }<br /><span style="color: #008080; ">41</span> }</div><br />l果演示如下Q?br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->one twe three four five<br />元音字母[e]的出现次CؓQ?<br />元音字母[u]的出现次CؓQ?<br />元音字母[i]的出现次CؓQ?<br />元音字母[o]的出现次CؓQ?</div><div><br />因ؓ使用了Guava工程Q用maven理依赖Q所以把Guava的版本脓一?/div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; "><</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span>com.google.guava<span style="color: #0000FF; "></</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span>guava<span style="color: #0000FF; "></</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">></span><br />    <span style="color: #0000FF; "><</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span>19.0-rc2<span style="color: #0000FF; "></</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">></span><br /><span style="color: #0000FF; "></</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">></span></div><br /></div><img src ="http://www.tkk7.com/produ/aggbug/430575.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/produ/" target="_blank">都较?/a> 2015-11-17 16:11 <a href="http://www.tkk7.com/produ/archive/2015/11/17/430575.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://hcdigi.com" target="_blank">ۺɫĻ</a>| <a href="http://1877808.com" target="_blank">avӰѿ</a>| <a href="http://www678678.com" target="_blank">Avznlu</a>| <a href="http://www-5453.com" target="_blank">ĻѾþ</a>| <a href="http://miya77772.com" target="_blank">޸Ӱһ?</a>| <a href="http://123470c.com" target="_blank">ձ߹ۿv</a>| <a href="http://xsjxp.com" target="_blank">Ƶ</a>| <a href="http://kkjk123.com" target="_blank">ޱר</a>| <a href="http://27simnjingmiguan.com" target="_blank">츾avһ</a>| <a href="http://lwjiheng.com" target="_blank">Ƶ</a>| <a href="http://ymtphoto.com" target="_blank">91Ʒ߹ۿ</a>| <a href="http://9196528.com" target="_blank">þþƷĻվ </a>| <a href="http://www6yg6yg.com" target="_blank">JIZZJIZZŮ</a>| <a href="http://ivr69.com" target="_blank">޾Ʒרþþ</a>| <a href="http://chowngroup.com" target="_blank">97ѹۿƵ߹ۿ</a>| <a href="http://0515bh.com" target="_blank">һػɫѴƬƵ</a>| <a href="http://788qj.com" target="_blank">޾Ʒͼ</a>| <a href="http://bjqhkf.com" target="_blank">AVרAWWW</a>| <a href="http://dyj696.com" target="_blank">ŷ޺ڴ</a>| <a href="http://tlyyt.com" target="_blank">Ƶ</a>| <a href="http://u6u6u6.com" target="_blank">޹Һ2020</a>| <a href="http://https357171.com" target="_blank">޹ۺרߵӰ</a>| <a href="http://paweax.com" target="_blank">߲Ƶ</a>| <a href="http://szzdjl.com" target="_blank">˾Ƶ</a>| <a href="http://jinluffcl.com" target="_blank">aƵѹۿ</a>| <a href="http://qzllw.com" target="_blank">Ʒ޾Ʒˬˬ</a>| <a href="http://www003924.com" target="_blank">޹ģ߲</a>| <a href="http://tbw77.com" target="_blank">ͬ˧GAYƬ߹ۿ</a>| <a href="http://g8zb.com" target="_blank">߾Ʒ</a>| <a href="http://www-554757.com" target="_blank">Ƶ߹ۿѲӰԺ </a>| <a href="http://www-7479.com" target="_blank">컶ëƬ</a>| <a href="http://tj-zhongfa.com" target="_blank">Ļó</a>| <a href="http://aa7852.com" target="_blank">ŷǾƷһ</a>| <a href="http://zblinghang.com" target="_blank">AëƬר</a>| <a href="http://pite2.com" target="_blank">츾һ</a>| <a href="http://x3013.com" target="_blank">þþþþav</a>| <a href="http://yaboxxx125.com" target="_blank">ֻˬ͵ëƬ</a>| <a href="http://mtspvip.com" target="_blank">Ƶ</a>| <a href="http://taoh2510.com" target="_blank">91߲</a>| <a href="http://asdfghjklzxcv.com" target="_blank">mv߹ۿ</a>| <a href="http://ipx588.com" target="_blank">fc2ѹƵվ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>