- 浏览: 386961 次
- 性别:
- 来自: 印度
最新评论
-
天天来注册:
...
多线程的死锁 -
memoryisking:
可以看看这篇文章,这个是struts教程网上一个简单的例子,构 ...
Java5中的线程池实例讲解 -
a123159521:
菜鸟不再菜 写道楼主很明显没有说明守护线程到底是怎么服务Use ...
守护线程总结 -
jjruanlili:
要搞个executor和nio的结合,差不多
Java5中的线程池实例讲解 -
josico:
纠正楼主一个问题‘如果四个队员都在忙时,再有新的任务,这个小组 ...
线程池ThreadPoolExecutor使用简介
文章列表
关于什么是http长连接我不废吐沫了,有专业的解释(http://www.ibm.com/developerworks/cn/web/wa-lo-comet/)你可以去看看
我们介绍一下在struts下的实现
首先写一个test.jsp(写一些片段)
<html:form action="/myAction" target="myiframe">
<%-- 这里写你的页面代码 --%>
<center><input type="button" value=& ...
这几天看到几篇关于http 长连接的文章,之前做过一个简单WebIM 采用ajax定时查询,效率一般,请求一多 iis 日志每天大概有80M左右。在线人数在40人左右(基本和挂QQ一样)。
今天特意研究了一下http 的长连接。有了一点点成果。现放出来大家一起讨论一下。
不清楚长连接请点这里。
1.客户端请求
<script type="text/javascript">
var HttpRequest;
function CreateXmlHttpRequest()
{
if(window.XMLHttpRequest)
...
HTTP是无状态的
也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏 ...
客户端HTTP请求的Header信息
1、HTTP请求方式
GET
向Web服务器请求一个文件
POST
向Web服务器发送数据让Web服务器进行处理
PUT
向Web服务器发送数据并存储在Web服务器内部
HEAD
检查一个对象是否存在
DELETE
从Web服务器上删除一个文件
CONNECT
对通道提供支持
TRACE
跟踪到服务器的路径
OPTIONS
查询Web服务器的性能
说明:
主要使用到“GET”和“POST”。
实例:
POST /test/tupian/cm HTTP/1.1
分成三部分:
(1)POST:HTTP请求方式
(2)/test/ ...
为了实现服务端向客户端推送的模式,如果自己写的socket到时顺理成章的很容易实现。但是,甲方要我们用标准的http协议。当然,自己写http服务器倒是也没什么题,我开始也时这么想的,而且都设计好了分布计算和负载平衡的方式。但有人暂时还建议我们用中间件,他们的意见就像天气的脸,一会儿这样,一会儿那样。于是在这方面考虑,无奈和喜悦同时而生。无奈的是,直接应用中间件,成就感将大打折扣。喜悦的是,直接应用中间件,我的开发量几乎可以说就是实现商业逻辑,分布计算和负载平衡都可以配置中间件实现。
那么如果用中间件写http服务,来应付客户端的请求并实现推送模式呢。在开会的时候, 一个同事使我猛醒。他说他就 ...
昨天看了comet的介绍后,虽然大概知道了comet的原理,不过没实际用过还是不太清楚,于是今天又在网上翻了一下别的网友共享的comet实现http长连接的例子,在 Comet Server Push 技术介绍 一文中分别提到了 ”基于长轮询(long polling)“、”基于iframe“、”基于流(stream)“三种实现comet的方式,下面我将网上找到的对应的例子链接做个汇总,就当目录吧,留作以后看
基于长轮询(long polling)的特点
1. 服务器端会阻塞请求直到有数据传递或超时才返回。
2. 客户端响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接 ...
web.xml:
<!-- begin xfire -->
<servlet>
<!-- 配合Spring容器中XFire一起工作的Servlet-->
<servlet-name>xfireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>
</servlet>
<se ...
使用spring的支持类开发JMS程序可以简化代码,确保开发质量。以下是使用ActiveMQ作为JMS实现的示例。
首先需要确保如下类库,这里使用maven的pom:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>2.5.6</version>
</dependency>
<dependency>
...
简介:
[1]
在介绍ActiveMQ之前,首先简要介绍一下JMS规范。
JMS的简介:
(1)
JMS(Java Message Service,Java消息服务)是一组Java应用程序接口(Java API),它提供创建、发送、接收、读取消息的服务。JMS 使您能够通过消息收发服务从一个 JMS 客户机向另一个 JML 客户机交流消息。
JMS是一种与厂商无关的 API,用来访问消息收发系统。它类似于 JDBC (Java Database Connectivity):这里,JDBC 是可以用来访问许多不同关系数据库的 API,而 JMS 则提供同样与厂商无关的访问方法,以访问消息收发服务 ...
ReentrantLock 的lock机制有2种,忽略中断锁和响应中断锁,这给我们带来了很大的灵活性。比如:如果A、B2个线程去竞争锁,A线程得到了锁,B线程等待,但是A线程这个时候实在有太多事情要处理,就是一直不返回,B线程可能就会等不及了,想中断自己,不再等待这个锁了,转而处理其他事情。这个时候ReentrantLock 就提供了2种机制,第一,B线程中断自己(或者别的线程中断它),但是ReentrantLock 不去响应,继续让B线程等待,你再怎么中断,我全当耳边风(synchronized原语就是如此);第二,B线程中断自己(或者别的线程中断它),ReentrantLock 处理了这个中 ...
在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。
当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由 ServletContextListener 来处理。在 ServletContextListener 接口中定义了处理ServletContextEvent事件的两个方法。
contextInitialized(ServletContextEvent sce):当Servlet容器启动Web应用时调用该方法。在调用完 ...
Java servlet是大家公认的服务器端web技术的标准,包括jsp,jsf,和大量的web框架,soap,RESTful web service api ,还有新闻供应。servlet运行在这些技术下面,以保证这些技术可以运行在任何java web服务器上。所以servlet的任何变化都会对所有与服务器有关的技术产生影响。
已经在2009年1月通过公众审核的servlet3.0,是一个包含很多重要特性的最新版本,它的出现将会给java web开发者带来更好的体验。下面就是servlet3.0所包含的新的特性。
1,支持异步处理。
2,配置简单。
3,可 ...
1、如果是原始比较器,key不可以为null
2、所有作为key的对象,必须实现comparable接口,基本数据类型会自动进行装箱,否则必须转入外部比较器comparator
3、因为需要比较,所以作为key的必须是同一种类型
不断总结中。。。。
Hashmap是一种非常常用的、应用广泛的数据类型。
加载因子:加载因子是表示Hsah表中元素的填满的程度.若:加载因子越大,填满的元素越多,好处是,空间利用率高了,但:冲突的机会加大了.反之,加载因子越小,填满的元素越少,好处是: ...
当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序。
一、Comparator
强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort。
接口方法:
1 /**
2 * @return o1小于、等于或大于o2,分别返回负整数、零或正整数。
3 */
4 int compare(Object o1, Object o2);
案例:
1 import java.util.Arrays;
2 impor ...