KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > servlets > RedirectURLServlet


1 package com.dotmarketing.servlets;
2
3 import java.io.IOException JavaDoc;
4
5 import javax.servlet.ServletException JavaDoc;
6 import javax.servlet.http.HttpServlet JavaDoc;
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9
10 import com.dotmarketing.cms.factories.PublicUserFactory;
11 import com.dotmarketing.factories.ClickstreamFactory;
12 import com.dotmarketing.factories.InodeFactory;
13 import com.dotmarketing.portlets.campaigns.factories.ClickFactory;
14 import com.dotmarketing.portlets.campaigns.factories.RecipientFactory;
15 import com.dotmarketing.portlets.campaigns.model.Campaign;
16 import com.dotmarketing.portlets.campaigns.model.Click;
17 import com.dotmarketing.portlets.campaigns.model.Recipient;
18 import com.dotmarketing.util.Logger;
19 import com.liferay.portal.model.User;
20
21 public class RedirectURLServlet extends HttpServlet JavaDoc {
22
23     private static final long serialVersionUID = 1L;
24
25     public void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc, IOException JavaDoc {
26
27         String JavaDoc query = request.getQueryString();
28         String JavaDoc redir = null;
29
30         try {
31
32             redir = query.substring(query.indexOf("redir=") + 6);
33         }
34         catch (Exception JavaDoc e) {
35         }
36
37         Logger.debug(this, "redir" + redir);
38
39         if (redir != null) {
40             //do redirect first for optimal user expierience(tm)
41
response.sendRedirect(redir);
42             response.flushBuffer();
43
44             try {
45
46                 redir = redir.substring(0, redir.indexOf("&r="));
47             }
48
49             catch (Exception JavaDoc e) {
50             }
51
52             Recipient r = RecipientFactory.getRecipient(request.getParameter("r"));
53             Campaign c = (Campaign) InodeFactory.getParentOfClass(r, Campaign.class);
54             if (r.getInode() > 0) {
55
56                 //update recipient click through-links
57
Click click = ClickFactory.getClickByLinkAndRecipient(redir, r);
58                 click.setClickCount((click.getClickCount() + 1));
59                 click.setLink(redir);
60                 InodeFactory.saveInode(click);
61                 r.addChild(click);
62                 InodeFactory.saveInode(r);
63
64                 //update queue clickthrough links
65
click = ClickFactory.getClickByLinkAndCampaign(redir, c);
66                 click.setClickCount((click.getClickCount() + 1));
67                 click.setLink(redir);
68                 InodeFactory.saveInode(click);
69                 c.addChild(click);
70                 InodeFactory.saveInode(c);
71
72                 User user = PublicUserFactory.getUserByEmail(r.getEmail());
73                 ClickstreamFactory.setClickStreamUser(user.getUserId(), request);
74             }
75         }
76
77     }
78 }
79
Popular Tags