1 package org.claros.chat.ajax; 2 3 import java.io.IOException ; 4 import java.io.PrintWriter ; 5 import java.util.Iterator ; 6 7 import javax.servlet.ServletException ; 8 import javax.servlet.http.HttpServlet ; 9 import javax.servlet.http.HttpServletRequest ; 10 import javax.servlet.http.HttpServletResponse ; 11 12 import org.jivesoftware.smack.RosterEntry; 13 import org.jivesoftware.smack.XMPPConnection; 14 import org.jivesoftware.smack.XMPPException; 15 import org.jivesoftware.smack.packet.Presence; 16 17 public class Roaster extends HttpServlet { 18 19 22 private static final long serialVersionUID = -7926350754674872925L; 23 24 27 public Roaster() { 28 super(); 29 } 30 31 41 public void doGet(HttpServletRequest request, HttpServletResponse response) 42 throws ServletException , IOException { 43 doPost(request, response); 44 } 45 46 56 public void doPost(HttpServletRequest request, HttpServletResponse response) 57 throws ServletException , IOException { 58 response.setHeader("Expires","-1"); 59 response.setHeader("Pragma","no-cache"); 60 response.setHeader("Cache-control","no-cache"); 61 62 response.setContentType("text/html"); 63 PrintWriter out = response.getWriter(); 64 65 XMPPConnection conn = (XMPPConnection)request.getSession().getAttribute("conn"); 66 67 String act = request.getParameter("act"); 68 if (act.equals("save")) { 69 String buddy = request.getParameter("newBuddy"); 70 Presence pr = new Presence(Presence.Type.SUBSCRIBE); 71 pr.setTo(buddy); 72 conn.sendPacket(pr); 73 } else if (act.equals("remove")) { 74 String buddy = request.getParameter("removeBuddy"); 75 RosterEntry en = null; 76 for (Iterator i=conn.getRoster().getEntries(); i.hasNext(); ) { 77 en = (RosterEntry)i.next(); 78 if (en.getUser().equals(buddy)) { 79 try { 80 conn.getRoster().removeEntry(en); 81 } catch (XMPPException e) { 82 e.printStackTrace(); 83 } 84 break; 85 } 86 } 87 } 88 out.println("ok"); 89 out.flush(); 90 out.close(); 91 } 92 } 93 | Popular Tags |