摘要:
获取网页客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了;经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问 阅读全文
摘要:
新浪微博开放平台提供了丰富的API接口,利用这些接口,开发者能够开发出独具特色的微博应用。但是,大部分接口都需要用户授权给应用,应用利用授权得到的Access Token来调用相应的接口来获取内容。新浪微博的授权机制目前主要有3种应用场景:Web应用移动应用站内应用本文主要介绍Web应用如何授权、获取Access Token。步骤一:添加网站进入新浪微博开放平台,进入“管理中心“,点击”创建应用”,选择“网页应用”,填写相应的信息后提交。步骤二:Oauth2.0授权设置应用创建完后可以在“管理中心”-“我的应用”中查看信息,在“应用信息”--“高级信息”中可以设置网站的授权回调页和取消授权回调 阅读全文
摘要:
如何实现页面加载完成后自动滚动到指定的位置?例如点击一篇博客,使页面的滚动条自动滚动到评论框所在的位置,这个功能只用一句代码就可以搞定:window.location.hash例如博客的地址是http://52java.sinaapp.com/e2#comm注意到url后面带有#comm这个参数。当页面加载完毕后,浏览器就会自动滚动到dom对象id='comm'的位置。附window.location的其他属性:hash 设置或获取 href 属性中在井号“#”后面的分段。host 设置或获取 location 或 URL 的 hostname 和 port 号码。... 阅读全文
摘要:
2012-12-19修复评论名可以插入html代码的bug2012-12-18为评论增加邮件通知的功能2012-12-17小幅调整首页显示UI,修复几个浏览器兼容问题2012-12-12 至2012-12-15添加富文本编辑器和代码高亮显示功能2012-12-5博客在新浪SAE上线 阅读全文
摘要:
最近做网站的时候遇到一个需求:给定一个视频地址,获取它的swf地址。例如,给一个优酷的视频地址:http://v.youku.com/v_show/id_XNDg4MzY5ODU2.html,想获取它的swf文件的地址,通常情况我们是通过爬取网页的方式来获取相关标签内的值,可是这种方法有很多不便,效率不高,准确度不能得到保证,不同的网站筛选的方法也不一样,有的网站的flash地址是用js动态生成的(例如爱奇艺),这时候通过爬取网页就得不到想要的结果了。 今天突然想到新浪微博支持在发微博的时候直接插入视频地址,就想看看新浪是怎么做的。于是试着发一条带视频的微博,此时页面上并没有视频的真实地... 阅读全文
摘要:
单例模式 一、饿汉式 在类初始化时,已经自行实例化 public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } public static Singleto 阅读全文
摘要:
进程和线程的区别进程是程序的一次执行,线程可以理解为进程中执行的一段程序片段。进程是操作系统分配资源的单位,线程是操作系统执行的单位;或者说:进程是资源分配和拥有的单位,线程是处理器调度的基本单位。一个线程只属于一个进程,一个进程可以有多个线程。进程间是独立的,拥有独立的系统资源;线程运行在进程空间内,不拥有系统资源,但同一进程的不同线程可以共享该进程的资源。在创建或撤销进程的时候,由于系统要为之分配或回收资源,导致系统开销明显大于创建或撤销线程的开销进程有独立的运行空间,当进程崩溃后,不会对其他进程产生隐形;而线程只是一个进程中不同的执行路径,线程有自己的堆栈和变量,但没有单独的地址空间,一 阅读全文
摘要:
一、基本概念要掌握堆排序,先要了解堆这种数据结构。堆是一个近似完全二叉树的结构,其任意节点满足性质:Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2]即任何一非叶节点的键值不大于或者不小于其左右孩子节点的键值。大顶堆:满足Key[i]>=Key[2i+1]&&key>=key[2i+2]小顶堆:满足Key[i]<=Key[2i+1]&&key<=key[2i+2]排序过程:将初始带排序列构造成 阅读全文
摘要:
一、基本概念 归并排序是将两个有序序列合并成一个有序序列的过程。 详细步骤: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某 阅读全文