JSP页面代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<!--<style type="text/css">
#chat{
border:solid 1px #ccc;
padding:10px;
background-color:#ecfdce;
width:400px;
height:200px;
margin-bottom:5px;
overflow:auto;
}
#chat div{
border-bottom:dashed 1px #669ff00;
padding-bottom:2px;
margin-bottom:5px;
}
#username{
width:70px;
}
#message{
width:200px;
}
</style>-->
<script type="text/javascript">
function createRequest(){
var httpRequest;
if(window.XMLHttpRequest){
//firefox,safari
httpRequest = new XMLHttpRequest();
}else if(window.ActiveXObject){
//IE
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
return httpRequest;
}
function chat(){
var username = document.getElementById("username").value;
var message = document.getElementById("message").value;
document.getElementById("message").value="";
var req= createRequest();
req.onreadystatechange = function(){
if(req.readyState ==4){
var messageinfo = req.responseText;
document.getElementById("messageinfo").innerHTML = messageinfo;
}
}
req.open('POST','ChatRoomServlet',true);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send("username="+username+"&message="+message);
}
function chatrequest(){
var request = createRequest();
request.onreadystatechange = function(){
if(request.readyState == 4){
var messageinfo = request.responseText;
document.getElementById("messageinfo").innerHTML=messageinfo;
}
}
request.open('POST','ChatRoomServlet',true);
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
request.send(null);
}
function autoDownLoadmessage(){
window.setInterval(function(){chatrequest()},1000);
}
autoDownLoadmessage();
</script>
</head>
<body>
<div id="chat" style="height:400px;width:800px;background-color:#ccedcf"><span id="messageinfo"></span></div>
<div>
用户名:<input type="text" id="username" name="username" />
聊天信息: <input type="text" id="message" size="50" name="message"/>
<input type="button" value="提交" οnclick="chat()">
</div>
</body>
</html>
servlet代码:
package com.demo.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ChatRoomServlet
*/
public class ChatRoomServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static List<String> chatlist = new ArrayList<String>() ;
public ChatRoomServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String message = request.getParameter("message");
String messageall = username+":"+message;
if(username != null && message != null&&!username.equals("")&&!message.equals("")){
chatlist.add(messageall);
}
PrintWriter out = response.getWriter();
for(int i=0; i<chatlist.size();i++){
out.print(chatlist.get(i)+"</br>");
}
if(chatlist.size() == 30){
chatlist.removeAll(chatlist);
chatlist.add(messageall);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}