• 大小: 429KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-10
  • 语言: Java
  • 标签: java  web  servlet  

资源简介

在线聊天,就是多人在线,一个人发消息其他人也能看见,而且不是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.xml
     文件          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\meta-INF\
     文件          39  2013-10-18 16:54  chatrooms\WebContent\meta-INF\MANIFEST.MF
     目录           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.xml
     文件        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个文件信息

评论

共有 条评论