package wyf;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import dojox.cometd.Bayeux;
import dojox.cometd.Channel;
/**
* Project:AjaxCometChat
* Module:
* Description:
* Version:1.0
* Date:2013-7-31
* Copyright (C) 2012
*
* @author:beijing_qi
*/
public class AjaxReceiveServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
ServletContext application=this.getServletContext();
Bayeux b=(Bayeux)application.getAttribute(Bayeux.DOJOX_COMETD_BAYEUX);
List zxlb=(List)application.getAttribute("zxlb");
if(null==zxlb){
zxlb=new ArrayList();
}
String action=request.getParameter("action");
if(action!=null){
if(action.equals("nc")){
String nc=request.getParameter("nc");
if(zxlb.contains(nc)){
out.print("<#nccf#>");
}else{
zxlb.add(nc);
application.setAttribute("zxlb", zxlb);
out.print("<#ncok#>");
Channel c=b.getChannel("/Manage", true);
Map message=new HashMap();
String lbStr="";
for(String tempNc:zxlb){
lbStr=lbStr+tempNc+"<#>";
}
message.put("lbStr", lbStr);
message.put("pubStr", nc+"%u8fdb%u5165%u804a%u5929%u5ba4%uff01\n");
c.publish(b.newClient("server_user"), message, "new_server_message");
}
}else if(action.equals("tc")){
String nc=request.getParameter("nc");
zxlb.remove(nc);
out.print("<#tcok#>");
Channel c=b.getChannel("/Manage", true);
Map message=new HashMap();
String lbStr="";
for(String tempNc:zxlb){
lbStr=lbStr+tempNc+"<#>";
}
message.put("lbStr", lbStr);
message.put("pubStr", nc+"%u9000%u51fa%u804a%u5929%u5ba4%uff01\n");
c.publish(b.newClient("server_user"), message, "new_server_message");
}
}
}
}