KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > claros > chat > ajax > Logout


1 package org.claros.chat.ajax;
2
3 import java.io.IOException JavaDoc;
4 import java.io.PrintWriter JavaDoc;
5
6 import javax.servlet.ServletException JavaDoc;
7 import javax.servlet.http.HttpServlet JavaDoc;
8 import javax.servlet.http.HttpServletRequest JavaDoc;
9 import javax.servlet.http.HttpServletResponse JavaDoc;
10 import javax.servlet.http.HttpSession JavaDoc;
11
12 import org.claros.chat.controllers.TrafficController;
13 import org.claros.chat.threads.ChatListener;
14 import org.claros.chat.threads.ChatSender;
15 import org.jivesoftware.smack.XMPPConnection;
16
17 public class Logout extends HttpServlet JavaDoc {
18
19     /**
20      *
21      */

22     private static final long serialVersionUID = 418575745334176421L;
23
24     /**
25      * Constructor of the object.
26      */

27     public Logout() {
28         super();
29     }
30
31     /**
32      * Destruction of the servlet. <br>
33      */

34     public void destroy() {
35         super.destroy();
36     }
37
38     /**
39      * The doGet method of the servlet. <br>
40      *
41      * This method is called when a form has its tag value method equals to get.
42      *
43      * @param request the request send by the client to the server
44      * @param response the response send by the server to the client
45      * @throws ServletException if an error occurred
46      * @throws IOException if an error occurred
47      */

48     public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
49             throws ServletException JavaDoc, IOException JavaDoc {
50         response.setHeader("Expires","-1");
51         response.setHeader("Pragma","no-cache");
52         response.setHeader("Cache-control","no-cache");
53
54         response.setContentType("text/html");
55         PrintWriter JavaDoc out = response.getWriter();
56         
57         logout(request.getSession(false));
58         out.print("ok");
59         out.flush();
60         out.close();
61     }
62
63     /**
64      * The doPost method of the servlet. <br>
65      *
66      * This method is called when a form has its tag value method equals to post.
67      *
68      * @param request the request send by the client to the server
69      * @param response the response send by the server to the client
70      * @throws ServletException if an error occurred
71      * @throws IOException if an error occurred
72      */

73     public void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
74             throws ServletException JavaDoc, IOException JavaDoc {
75         doGet(request, response);
76     }
77
78     /**
79      *
80      * @param request
81      */

82     public static void logout(HttpSession JavaDoc sess) {
83         if (sess != null) {
84             String JavaDoc user = null;
85             try {
86                 XMPPConnection conn = (XMPPConnection)sess.getAttribute("conn");
87                 if (conn != null) {
88                     user = conn.getUser();
89                     conn.close();
90                     sess.setAttribute("conn", null);
91                 }
92             } catch (Throwable JavaDoc e) {}
93
94             try {
95                 ChatListener listener = TrafficController.getListener(user);
96                 if (listener != null) {
97                     listener.terminate();
98                     if (user != null) {
99                         TrafficController.removeListener(user);
100                     }
101                 }
102             } catch (Throwable JavaDoc e) {}
103             
104             try {
105                 ChatSender sender = TrafficController.getSender(user);
106                 if (sender != null) {
107                     sender.terminate();
108                     if (user != null) {
109                         TrafficController.removeSender(user);
110                     }
111                 }
112             } catch (Throwable JavaDoc e) {}
113
114             try {
115                 sess.invalidate();
116             } catch (Throwable JavaDoc e) {}
117         }
118     }
119
120 }
121
Popular Tags