资源简介
在线聊天,就是多人在线,一个人发消息其他人也能看见,而且不是AJAX一直刷后台,因为那样很占用服务器资源,这个例子的思想是使用长连接,只有当有人说话的时候才会返回。里边是个工程可以使用eclipse打开。通过这个代码可以扩展很多需要长连接才能实现的功能。

代码片段和文件信息
package chartroom;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
/**
* Servlet implementation class ChartRoomAction
*/
@WebServlet(“/ChartRoomAction“)
public class ChartRoomAction extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* Default constructor.
*/
public ChartRoomAction() {
}
/**
* @see HttpServlet#doGet(HttpServletRequest request HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request HttpServletResponse response) throws ServletException IOException {
//得到chartroom文件
File file = new File(“d:/chartroom.txt“);
//毫秒数
long modifiedTime = file.lastModified();
long currentTime = System.currentTimeMillis();
while (modifiedTime <= currentTime){
try {
Thread.sleep(1000L);
modifiedTime = file.lastModified();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
Scanner sc = new Scanner(new FileReader(file)); //创建读取流
String line=null;
while((sc.hasNextLine()&&(line=sc.nextLine())!=null)){
if(!sc.hasNextLine());
}
String resultStr = ““;
if(line!=null){
String[] tmp = line.split(“\t“);
Map result = new HashMap();
result.put(“time“ tmp[0]);
result.put(“nick“ tmp[1]);
result.put(“msg“ tmp[2]);
resultStr = JSON.toJSONString(result);
}
//这句话的意思,是让浏览器用utf8来解析返回的数据
response.setHeader(“Content-type“ “text/html;charset=UTF-8“);
//这句话的意思,是告诉servlet用UTF-8转码,而不是用默认的ISO8859
response.setCharacterEncoding(“UTF-8“);
PrintWriter out = response.getWriter();
out.print(resultStr);
out.flush();
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request HttpServletResponse response) throws ServletException IOException {
// TODO Auto-generated method stub
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-10-18 17:07 chatrooms\
文件 882 2013-10-18 17:09 chatrooms\.classpath
文件 1042 2013-10-18 16:54 chatrooms\.project
目录 0 2013-10-18 17:07 chatrooms\.settings\
文件 503 2013-10-18 16:54 chatrooms\.settings\.jsdtscope
文件 395 2013-10-18 16:54 chatrooms\.settings\org.eclipse.jdt.core.prefs
文件 481 2013-10-18 16:54 chatrooms\.settings\org.eclipse.wst.common.component
文件 305 2013-10-18 16:54 chatrooms\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2013-10-18 16:54 chatrooms\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2013-10-18 16:54 chatrooms\.settings\org.eclipse.wst.jsdt.ui.superType.name
目录 0 2013-10-18 17:07 chatrooms\WebContent\
目录 0 2013-10-18 17:07 chatrooms\WebContent\me
文件 39 2013-10-18 16:54 chatrooms\WebContent\me
目录 0 2013-10-18 17:07 chatrooms\WebContent\WEB-INF\
目录 0 2013-10-18 17:07 chatrooms\WebContent\WEB-INF\lib\
文件 252277 2013-10-18 16:54 chatrooms\WebContent\WEB-INF\lib\fastjson-1.1.2.jar
文件 177209 2013-10-18 16:55 chatrooms\WebContent\WEB-INF\lib\servlet-api.jar
文件 1131 2013-10-18 17:03 chatrooms\WebContent\WEB-INF\web.xm
文件 2039 2013-10-18 16:54 chatrooms\WebContent\index.jsp
文件 91573 2013-10-18 16:54 chatrooms\WebContent\jquery-1.6.2.min.js
目录 0 2013-10-18 17:07 chatrooms\build\
目录 0 2013-10-18 17:09 chatrooms\build\classes\
目录 0 2013-10-18 17:09 chatrooms\build\classes\chartroom\
文件 2920 2013-10-18 17:09 chatrooms\build\classes\chartroom\ChartRoomAction.class
文件 2457 2013-10-18 17:09 chatrooms\build\classes\chartroom\SendAction.class
文件 793 2013-10-18 17:09 chatrooms\build\classes\chartroom\Test.class
目录 0 2013-10-18 17:07 chatrooms\src\
目录 0 2013-10-18 17:07 chatrooms\src\chartroom\
文件 2630 2013-10-18 17:08 chatrooms\src\chartroom\ChartRoomAction.java
文件 2070 2013-10-18 17:08 chatrooms\src\chartroom\SendAction.java
文件 546 2013-10-18 17:09 chatrooms\src\chartroom\Test.java
............此处省略0个文件信息
相关资源
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
- 操作系统作业 (pv,作业管理,等5个
- 基于C/S架构考试系统(Java)
- java access 仓库管理系统 源码
- 一元多项式相加 java实现
评论
共有 条评论