当前位置:  编程技术>综合
本页文章导读:
    ▪android中ImageView、ImageButton、Button之间的区别       1.继承不同: java.lang.Object ↳ android.view.View ↳android.widget.ImageView ↳ android.widget.ImageButton  java.lang.Object ↳ android.view.View ↳ android.widget.TextView ↳android.widget.Button 因而ImageButton 不支持setTex.........
    ▪HTTP引擎Grizzly的介绍      对企业级的服务器软件,高性能和可扩展性是基本的要求。除此之外,还应该有应对各种不同环境的能力。例如,一个好的服务器软件不应该假设所有的客户端都有很快的处理能力和很好的网络环.........
    ▪HttpClient3.0.1 https配置 接收单个站点的SSL证书       1. 下载站点的证书文件 访问https站点,如下图: 点击Certificate Error  --> View certificates, 弹出该站点的证书信息,如下图:                       &nb.........

[1]android中ImageView、ImageButton、Button之间的区别
    来源: 互联网  发布时间: 2013-11-10

1.继承不同: java.lang.Object ↳ android.view.View ↳android.widget.ImageView ↳ android.widget.ImageButton 

java.lang.Object ↳ android.view.View ↳ android.widget.TextView ↳android.widget.Button

因而ImageButton 不支持setText,而Button支持。反之,ImageButton 支持setImageURI,而Button不支持。Button和ImageButton有Button的状态,但是ImageView没有。

2.显示差异:

imageView 加上可点击的属性同样实现button的点击功能,这样看来没啥区别,可是可是,最近我做的listView,一个imagebutton,一个imageView 显示圆角图片的时候,imageBotton 居然显示不出来.

ImageButton 拥有默认背景:

<style name="Widget.ImageButton">
     <item name="android:focusable">true</item>
     <item name="android:clickable">true</item>
     <item name="android:scaleType">center</item>
     <item name="android:background">@android:drawable/btn_default</item>
 </style>


3.支持图片:   

别人说 :ImageButton支持9.png 吧~imangeView就不行了。

作者:zapzqc 发表于2013-1-12 22:33:51 原文链接
阅读:23 评论:0 查看评论

    
[2]HTTP引擎Grizzly的介绍
    来源:    发布时间: 2013-11-10

对企业级的服务器软件,高性能和可扩展性是基本的要求。除此之外,还应该有应对各种不同环境的能力。例如,一个好的服务器软件不应该假设所有的客户端都有很快的处理能力和很好的网络环境。如果一个客户端的运行速度很慢,或者网络速度很慢,这就意味着整个请求的时间变长。而对于服务器来说,这就意味着这个客户端的请求将占用更长的时间。这个时间的延迟不是由服务器造成的,因此CPU的占用不会增加什么,但是网络连接的时间会增加,处理线程的占用时间也会增加。这就造成了当前处理线程和其他资源得不到很快的释放,无法被其他客户端的请求来重用。例如Tomcat,当存在大量慢速连接的客户端时,线程资源被这些慢速的连接消耗掉,使得服务器不能响应其他的请求了。 

前面介绍过,NIO的异步非阻塞的形式,使得很少的线程就能服务于大量的请求。通过Selector的注册功能,可以有选择性地返回已经准备好的频道,这样就不需要为每一个请求分配单独的线程来服务。 

在一些流行的NIO的框架中,都能看到对OP_ACCEPT和OP_READ的处理。很少有对OP_WRITE的处理。我们经常看到的代码就是在请求处理完成后,直接通过下面的代码将结果返回给客户端: 

【例17.7】不对OP_WRITE进行处理的样例: 

while (bb.hasRemaining()) { 

    int len = socketChannel.write(bb); 

    if (len < 0) { 

        throw new EOFException(); 

    } 



这样写在大多数的情况下都没有什么问题。但是在客户端的网络环境很糟糕的情况下,服务器会遭到很沉重的打击。 

因为如果客户端的网络或者是中间交换机的问题,使得网络传输的效率很低,这时候会出现服务器已经准备好的返回结果无法通过TCP/IP层传输到客户端。这时候在执行上面这段程序的时候就会出现以下情况。 

(1) bb.hasRemaining()一直为“true”,因为服务器的返回结果已经准备好了。 

(2) socketChannel.write(bb)的结果一直为0,因为由于网络原因数据一直传不过去。 

(3)   因为是异步非阻塞的方式,socketChannel.write(bb)不会被阻塞,立刻被返回。 

(4)   在一段时间内,这段代码会被无休止地快速执行着,消耗着大量的CPU的资源。事实上什么具体的任务也没有做,一直到网络允许当前的数据传送出去为止。 

这样的结果显然不是我们想要的。因此,我们对OP_WRITE也应该加以处理。在NIO中最常用的方法如下。 

【例17.8】一般NIO框架中对OP_WRITE的处理: 

while (bb.hasRemaining()) { 

    int len = socketChannel.write(bb); 

    if (len < 0){ 

        throw new EOFException(); 

    } 

    if (len == 0) { 

        selectionKey.interestOps( 

                        selectionKey.interestOps() | SelectionKey.OP_WRITE); 

        mainSelector.wakeup(); 

        break; 

    } 



上面的程序在网络不好的时候,将此频道的OP_WRITE操作注册到Selector上,这样,当网络恢复,频道可以继续将结果数据返回客户端的时候,Selector会通过SelectionKey来通知应用程序,再去执行写的操作。这样就能节约大量的CPU资源,使得服务器能适应各种恶劣的网络环境。 

可是,Grizzly中对OP_WRITE的处理并不是这样的。我们先看看Grizzly的源码吧。在Grizzly中,对请求结果的返回是在ProcessTask中处理的,经过SocketChannelOutputBuffer的类,最终通过OutputWriter类来完成返回结果的动作。在OutputWri

    
[3]HttpClient3.0.1 https配置 接收单个站点的SSL证书
    来源: 互联网  发布时间: 2013-11-10


1. 下载站点的证书文件

访问https站点,如下图:


点击Certificate Error  --> View certificates, 弹出该站点的证书信息,如下图:


                                   图2

根据颁发给,颁发者,有效起始日期等信息到IE中找相应的证书,具体步骤如下:

 在IE中依次选择Tools --> Internet Options --> Content --> 点击Certificates, 在弹出的【证书】对话框中选择【受信任的根证书颁发机构】,在这里找到与图2对应的证书,如下图所示:


                                                                 图3

点击【导出】,弹出【证书导出向导】对话框,如下图所示:


                                                           图4

点击【下一步】,选择默认的【DER编码二进制 X.509 (.CER)】就行,如下图


                                                                                图5

点击【下一步】,将证书导出为C:\cert\WIN-TSJZUR65S8T.cer, 如下图


                                                                        图6

点击【下一步】


                                                                图7

点击【完成】,弹出【导出成功】提示,如下图所示


                                                                                 图8

到此为止,站点的证书就成功导出了,下面要将证书添加到JRE环境中。


首先在WIN-TSJZUR65S8T.cer文件的同一目录下新建一个Add-SSL.bat文件,即C:\cert\WIN-TSJZUR65S8T.cer. Add-SSL.bat文件内容如下:

@echo off
C:/Java/jre6/bin/keytool -import -v -trustcacerts -file WIN-TSJZUR65S8T.cer -keystore 209.cer
pause


其中C:/Java/jre6/bin/keytool这个必须是运行项目所用的jre,这样才能在代码中使用证书的信息


双击运行Add-SSL.bat文件,出现如下图内容:


                                                                                                       图9

输入密码123456,回车,出现如下图所示:



再次输入密码123456,回车




输入【是】,回车




这是,在Add-SSL.bat文件的同一目录下生成了一个209.cer文件,即C:\cert\209.cer


将这个209.cer文件拷贝到jre目录下的lib\security\目录下,这里指C:\Java\jre6\lib\security\目录,这里的C:\Java\jre6\要与前面使用keytool命令时的是同一个jre,如下图所示:



这样,我们就可以在代码中使用之前配置的证书信息了。需要注意的是,运行代码的jre一定要和证书配置的jre一致,即C:\Java\jre6\,这样才能使证书生效。


在代码中使用证书信息,只要在使用commons-httpclient代码之前,设置【javax.net.ssl.trustStore】和【javax.net.ssl.trustStorePassword】两个系统变量即可

【javax.net.ssl.trustStore】变量的值指向209.cer文件, 即C:\Java\jre6\lib\security\209.cer

【javax.net.ssl.trustStorePassword】变量的值为之前设置的证书的密码,即123456


代码的顺序结构如下图所示:




    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
网络技术 iis7站长之家
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3