资源简介
在线聊天,就是多人在线,一个人发消息其他人也能看见,而且不是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即时通信系统设计
- openCV java的API文档
- JAVA发送HTTP请求操作类
- JAVA做MVC架构的扫雷游戏
- NativeIO.java 的源文件
- Jsf 项目源代码
- Java+MySql数据库 模拟ATM自助存取款b
- Jsp+JavaBean+Servlet的简单大学的web课程设
- 局域网聊天工具Java版
- Spring+Mybatis+Atomikos实现JAVA初始化并控
- commons-io-2.5.jar
- OnlineBookStore.rar
- java创建DBF文件官方jar修订版(修正插
- java创建DBF文件官方jar修订版(修正中
- java+mysql图书馆管理系统45625
- java企业真实项目需求
- java拼图游戏(有难度选择)
- java读取properties文件
- 用java+sqlservser2005写的旅行社信息管理
- java 排序算法可视化
- java实现的决策树算法
- java实现的一个画板小程序画直线,矩
- java正则实现解析算术表达式 仅限
- JAVA程序小游戏五子棋大作业
- K3Cloud-WebAPI-Client.jar
- Java通过邮箱找回密码和注册
- HITS java实现
- java聊天小程序.java聊天小程序
- Java的Jtable、从数据库取数据显示在表
- javax.websocket-api-1.1
评论
共有 条评论