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"); } } } }