2014年3月6日

ajax 异步请求webservice(XML格式)

摘要: function callAjaxWebservice(){ alert("call ajax"); try { $.ajax({ type: "POST", //访问WebService使用post方式请求 contentType: "text/xml;utf-8",//使用的xml格式的 url: "http://192.168.6.176:8899/arch/entr... 阅读全文

posted @ 2014-03-06 17:11 心笑峰 阅读(4993) 评论(0) 推荐(0) 编辑

2012年9月29日

Base64 加密之中文乱码

摘要: Base64编码将二进制数据按照每三个字节转换成四个字节可读字符,编码后的字符长度大约为136.1%。字符范围为 A-Z a-z 0-9 \ +。但编码后的字符串不太适合使用URL传输,中文加密后的乱码也多是因为这个原因引起:放在url中传输时+号会被替换成空格;并且每76个字符都会添加一个换行"\n",这个换行符合会丢失。例如:哈哈哈哈哈哈。。。。哈哈哈哈哈哈。。。。哈哈哈哈哈哈。。。。会被编码为:uf65/rn+uf65/rn+oaOho6GjDQoNCrn+uf65/rn+uf65/qGjoaOhow0KDQq5/rn+uf65/rn+uf6h\no6GjoaM=放在 阅读全文

posted @ 2012-09-29 12:16 心笑峰 阅读(16490) 评论(0) 推荐(0) 编辑

2012年9月26日

JAVA 笔记 Callable 与 FutureTask:有返回值的多线程

摘要: 常用的Thread类在run方法执行完之后是没有返回值的,要实现子线程完成任务后返回值给主线程需要借助第三方转存。Callable接口则提供了一种有返回值的多线程实现方法。下面以一个简单的地主、监工和长工的例子展示这种接口的用法。长工类:长工类实现了Callable接口,线程运行完成后返回一个Integer值。 importjava.util.concurrent.Callable;publicclass Changgong implementsCallable<Integer>{privateinthours=12;privateintamount;@Overridepublic 阅读全文

posted @ 2012-09-26 16:44 心笑峰 阅读(10042) 评论(0) 推荐(0) 编辑

2012年8月21日

MySQL 设置数据按条件查询下的序号

摘要: 一张表:mytable 有如下数据:现在要增加一列 序号,用于表示每行记录按类型、个数降序排列时的序号。 先按照 ftype 和 fnum 排序:select*frommytableorderbyftypeasc,fnumasc再查出当前排序下的每行的序号:SELECTa.*,(@rownum:=@rownum+1)ASforderFROMmytablea,(SELECT@rownum:=0)bORDERBYftypeASC,fnumASC然后修改表并将数据更新进去:ALTERTABLEmytableADDforderINTDEFAULT0;UPDATEmytabler,(SELECTa.f. 阅读全文

posted @ 2012-08-21 18:57 心笑峰 阅读(12469) 评论(0) 推荐(0) 编辑

2012年8月14日

MySQL 用户登录

摘要: 在数据库中创建一个用户 testuser@% 是无法在本地登录的。其原因就在于mysql库的user表中有如下的数据: 登录的时候先会去比对host再比对user再验证密码。使用用户名testuser登录,会先找到localhost,然后查找user时会查不到,所以无法登录。要想让testuser能本地登录,就要添加一个testuser@localhost。 另:不用用户名也可以本地登录MySQL,用的账号就是上面的@localhost。 阅读全文

posted @ 2012-08-14 15:17 心笑峰 阅读(3598) 评论(0) 推荐(0) 编辑

2012年8月8日

JAVA 笔记 ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别

摘要: Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。 例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下查找相应的资源。 如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。 ClassLoader.getResourceAsStream() 无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找。 阅读全文

posted @ 2012-08-08 16:19 心笑峰 阅读(34841) 评论(3) 推荐(5) 编辑

2012年8月3日

JAVA笔记 Form界面的log展示

摘要: importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowEvent;importjava.awt.event.WindowListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JScrollPane;i. 阅读全文

posted @ 2012-08-03 15:35 心笑峰 阅读(1542) 评论(0) 推荐(0) 编辑

2012年7月30日

移动互联网SP计费

摘要: 目前android应用不如人意的一点就是收费,大批开发者靠着内置广告点击、应用推广下载收入微薄。苹果开发者由于有苹果这么个平台,收入颇丰。这里介绍下android中的SP计费方式,为各位androider多一种赚钱的选择。 SP计费就是通过在手机应用中内置发送短信到SP提供商,直接从用户手机话费中扣费的计费方式。基本的流程如下:基本流程的说明: 0.首先开发者要拿到一个或多个可用的SP通道(方式方法不一而足,后面再讲,这里先关注技术)。这里的SP通道是SP提供商分配给你的一种计费途径,包括但不限于:点播短彩信、包月短彩信、WAP、IVR。点播是按条计费,包月则是按月计费。每个通道都会有... 阅读全文

posted @ 2012-07-30 19:07 心笑峰 阅读(9490) 评论(3) 推荐(1) 编辑

2012年7月25日

HTTP文件断点上传

摘要: 由于业务需要,手机需要采用http方式传输文件到后台WEB服务器,1、2百K的小文件不会有太大问题,几M甚至几百M的文件就很容易传输失败。所以考虑实现HTTP文件断点续传功能,基本流程如下:1.客户端计算本地要上传的文件的hashcode2.根据指定的块大小和文件大小计算最终的块数3.发送文件信息到服务器包括要上传的文件名、大小、类型、块数、Hashcode4.服务器根据hashcode查询服务器上是否已经存在对应的文件,以及文件的上传状态(上传是否完成、是否组装完成、已经上传了哪些块)5.6.已经上传完成的读取文件URL地址返回给客户端7.8.未上传完成的返回已经上传的块编号 9.客户端根. 阅读全文

posted @ 2012-07-25 15:25 心笑峰 阅读(18709) 评论(2) 推荐(2) 编辑

2012年7月17日

移动互联网中一种终端标识法

摘要: 移动应用软件开发中比较重要的一点就是客户端的标识。所谓的“标识”就是指给每个发布出去的客户端一定的预置属性,方便我们在软件更新、数据统计、商业合作、版本控制等等场合对这些客户端进行区别分类。天然的属性中比较重要的包括“平台类型”、“软件类型”、“版本号”,一般的应用通过这几个属性即可对客户端达到一定程度的控制。但是要达到更精细更准确的控制就需要开发者预置属性进去。 这里介绍一种之前山寨机时代SP公司对终端的标识法: 在客户端中预置以下属性: ChannelType 渠道类型 Channel 渠道 Custer 厂商 一个完整的客户端标识可能是这样:01#490#113 具体的应... 阅读全文

posted @ 2012-07-17 10:22 心笑峰 阅读(931) 评论(0) 推荐(0) 编辑

2012年6月27日

JAVA笔记 文件HASH

摘要: public static void main(String args[]) { try { System.out.println(getMD5Checksum("RationalRoseEnterpriseEditionforWindows.2003.06.00.391.000.exe")); } catch (Exception e) { e.printStackTrace(); } } public static byte[] createChecksum(String filename) throws Exception { InputStream fis = .. 阅读全文

posted @ 2012-06-27 16:18 心笑峰 阅读(4237) 评论(0) 推荐(1) 编辑

2012年6月4日

阿里云服务器上安装GCC

摘要: 最近抽空购买了个阿里的云服务器,不知道为什么上面默认没有安装GCC(据说是为了安全)。问了客服说这东西要自己去装,没办法只能自己动手了。安装GCC有很多方式: 可以用操作系统安装盘中的RPM二进制文件直接安装,可惜服务器是别人的,我手头也没安装盘。然后就是使用下载的gcc-4.1.2.tar.gz和gcc-4.1.2.tar.bz2包安装,不过这种我试过,在configure这一步就出错了。再下来就是麻烦的使用gcc和相应的四个依赖包来安装,这种我去csdn下载到了所有的依赖包,但只弄到一半,因为找到了个更方便的方法。还有就是接下来要说的使用yum安装的方式。 我自己购买的是阿里云的rh .. 阅读全文

posted @ 2012-06-04 15:38 心笑峰 阅读(4263) 评论(2) 推荐(1) 编辑

2012年5月17日

手机上的消息推送

摘要: 最近在找android手机上的消息推送的解决方案。目前看来有以下几种常用的方式: 1.定期查询:按照指定的时间间隔连接服务器查询获取最新的消息。实现起来简单,非实时,查询时间过短则流量耗费多,耗电量大。下面是一个爱立信的测试结果:2.短信方式:需要及时发送消息给客户端时也可以通过这种方式,但大家都懂的,这个很花钱。 3.长轮询:基本上与目前很多网站使用的方式一样(WEB阿里旺旺、微博、人人等等)。客户端发起一个很长超时时间的请求,然后服务器端在没有消息的时候阻塞这个请求(一直不给返回值)直到快要超时为止,有消息到来再返回响应。客户端收到响应或超时后立即再发起请求。 这种算是比较好的方式了,消. 阅读全文

posted @ 2012-05-17 21:02 心笑峰 阅读(15509) 评论(7) 推荐(2) 编辑

2012年4月16日

Instagram 的ID生成策略[翻译]

摘要: 项目中遇到一个ID生成策略的需求:需要在系统中为每个用户分配一个ID用作以后的用户标示。这个需求应该是非常普遍的,对于使用人数较少的系统而言不会是一个问题,不过对于向用户众多的互联网系统来讲这不是一个简单的问题。下面是翻译的最近最火爆的Instagram应用开发者的一篇文章,看看他们一个十几个人的公司是怎么解决这个问题的:先给出原文链接:http://instagram-engineering.tumblr.com/post/10853187575/sharding-ids-at-instagram以下为简单翻译(不清楚的地方请参照原文): Instagram 的分片和IDs 每秒接收2... 阅读全文

posted @ 2012-04-16 21:36 心笑峰 阅读(11432) 评论(2) 推荐(1) 编辑

JAVA 笔记 MD5加密

摘要: 简单的MD5加密代码: packagecom.test.md5;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;publicclassMD5Parase {publicstaticStringautType="MD5";publicstaticStringhash(Stringdata){try{returnhash(data.getBytes("UTF-8"));}catch(Exceptionex){returnnull;}}publicst 阅读全文

posted @ 2012-04-16 12:40 心笑峰 阅读(342) 评论(0) 推荐(0) 编辑

2012年4月13日

JAVA 笔记 CopyOnWriteArrayList

摘要: 在写代码时遇到了一个ConcurrentModificationException异常,百度了下发现是因为在使用Iterator遍历时原数据发生了变化导致的。业务的需求如下: 有一个数据监听器列表,当系统收到数据时遍历列表中的每一项并发送数据。当遍历的过程中有可以会新增或删除相应的监听器。 这种情况下可以使用CopyOnWriteArrayList 来实现监听器列表。 原理如下: JAVA中将引用从一个对象移到另外一个对象不需要消耗CPU时间,可以看做是一个原子操作。 JAVA中如果一个对象仍旧存在引用,则不会被CG回收。 CopyOnWriteArrayList就是根... 阅读全文

posted @ 2012-04-13 16:42 心笑峰 阅读(1707) 评论(1) 推荐(0) 编辑

JAVA 笔记 ReadWriteLock

摘要: ReadWriteLock适用于: 同一个对象,允许多个线程同时读,只允许一个线程写,且读写不能同时进行。 用法:ReadWriteLocklock=newReentrantReadWriteLock();lock.readLock().lock();try{//读取数据}finally{lock.readLock().unlock();}lock.writeLock().lock();try{//写数据}finally{lock.writeLock().unlock();} 阅读全文

posted @ 2012-04-13 12:28 心笑峰 阅读(386) 评论(0) 推荐(0) 编辑

2012年4月5日

Erlang 聊天室程序(十一) 主题房间之Supervisor引起的改造

摘要: 于由使用了Supervisor来管理当前所有的房间,每个房间都为单独的进程,所以要计对之前的chat_room.erl代码做相应的修改。 具体包括以下几点: 1.getPid/0 : 以前是由{local,?Module}房间进程来产生新的客户端进程。这次由于采用simple_one_to_one的启动方式,所以要重新指定客户端进程的产生方式(这里交由大厅来创建) 所以修改chat_room进程的创建方法,房间名由外部传入,再根据房间名为每个chat_room进程命名。start_link(Para)->#roominfo{name=Name,type=Type}=Para,... 阅读全文

posted @ 2012-04-05 16:43 心笑峰 阅读(1050) 评论(0) 推荐(0) 编辑

2012年3月13日

Erlang 聊天室程序(十) 主题房间3 ---创建、关闭和查询

摘要: 为了后面的功能,这里先实现主题房间的开启、关闭和查询。这些都是对客户端行为的响应,正常情况下需要管理员权限,由于权限部分还未实现所以这里暂时不考虑。 先定义消息格式: 开启: #message{type="set",subject="openroom",content=#roominfo{type="type",name="name"}} #message{type="result",subject="openroom",content="succ/failed&q 阅读全文

posted @ 2012-03-13 19:10 心笑峰 阅读(902) 评论(0) 推荐(1) 编辑

2012年3月10日

Erlang 聊天室程序(九) 主题房间2 ---房间信息管理

摘要: 接着上一篇,这次处理“维护当前可用的主题房间信息”问题。 每次使用startChild启动子进程的时候将当前的房间信息保存到ets表中。更重要的是每次主题房异常退出或重启都要更新对应的信息。 修改room_manager.erl中的内容:新建一个函数来初始化房间信息表:initTab()->ets:new(roominfo,[public,ordered_set,named_table,{keypos,#roominfo.id}]).再添加对房间表数据操作的方法:addRoomInfo(Record)->#roominfo{name=Name,type=Type}=Record,c 阅读全文

posted @ 2012-03-10 18:51 心笑峰 阅读(931) 评论(0) 推荐(0) 编辑

导航