KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > edu > rice > rubbos > servlets > StoriesOfTheDay


1 /**
2  * RUBBoS: Rice University Bulletin Board System.
3  * Copyright (C) 2001-2004 Rice University and French National Institute For
4  * Research In Computer Science And Control (INRIA).
5  * Contact: jmob@objectweb.org
6  *
7  * This library is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU Lesser General Public License as published by the
9  * Free Software Foundation; either version 2.1 of the License, or any later
10  * version.
11  *
12  * This library is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
15  * for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public License
18  * along with this library; if not, write to the Free Software Foundation,
19  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
20  *
21  * Initial developer(s): Emmanuel Cecchet.
22  * Contributor(s): Niraj Tolia.
23  */

24
25 package edu.rice.rubbos.servlets;
26
27 import java.io.IOException JavaDoc;
28 import java.sql.Connection JavaDoc;
29 import java.sql.PreparedStatement JavaDoc;
30 import java.sql.ResultSet JavaDoc;
31
32 import javax.servlet.ServletException JavaDoc;
33 import javax.servlet.http.HttpServletRequest JavaDoc;
34 import javax.servlet.http.HttpServletResponse JavaDoc;
35
36 public class StoriesOfTheDay extends RubbosHttpServlet
37 {
38
39   public int getPoolSize()
40   {
41     return Config.BrowseCategoriesPoolSize;
42   }
43
44   private void closeConnection(PreparedStatement JavaDoc stmt, Connection JavaDoc conn)
45   {
46     try
47     {
48       if (stmt != null)
49         stmt.close(); // close statement
50
}
51     catch (Exception JavaDoc ignore)
52     {
53     }
54
55     try
56     {
57       if (conn != null)
58           releaseConnection(conn);
59     }
60     catch (Exception JavaDoc ignore)
61     {
62     }
63
64   }
65
66   /** Build the html page for the response */
67   public void doGet(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
68       throws IOException JavaDoc, ServletException JavaDoc
69   {
70
71     ServletPrinter sp = null;
72     PreparedStatement JavaDoc stmt = null;
73     Connection JavaDoc conn = null;
74
75     int bodySizeLimit = 512;
76     ResultSet JavaDoc rs = null;
77
78     sp = new ServletPrinter(response, "StoriesOfTheDay");
79     sp.printHTMLheader("RUBBoS stories of the day");
80
81     conn = getConnection();
82
83     try
84     {
85       stmt = conn
86           .prepareStatement("SELECT * FROM stories ORDER BY date DESC LIMIT 10");
87       rs = stmt.executeQuery();
88     }
89     catch (Exception JavaDoc e)
90     {
91       sp.printHTML("Failed to execute Query for stories of the day: " + e);
92       closeConnection(stmt, conn);
93       return;
94     }
95     try
96     {
97       if (!rs.first())
98       {
99         sp
100             .printHTML("<h2>Sorry, but there is no story available at this time.</h2><br>\n");
101         closeConnection(stmt, conn);
102         return;
103       }
104
105       int storyId;
106       String JavaDoc storyTitle;
107       int writerId;
108       String JavaDoc userName;
109       String JavaDoc date;
110       String JavaDoc body;
111       do
112       {
113         sp.printHTML("<br><hr>\n");
114         storyId = rs.getInt("id");
115         storyTitle = rs.getString("title");
116         sp
117             .printHTMLHighlighted("<a HREF=\"/rubbos/servlet/edu.rice.rubbos.servlets.ViewStory?storyId="
118                 + storyId + "\">" + storyTitle + "</a>");
119
120         writerId = rs.getInt("writer");
121         userName = sp.getUserName(writerId, conn);
122         date = rs.getString("date");
123         sp.printHTML("<B>Posted by " + userName + " on " + date + "</B><br>\n");
124         body = rs.getString("body");
125         if (body.length() > bodySizeLimit)
126         {
127           sp.printHTML(body.substring(0, bodySizeLimit));
128           sp.printHTML("<br><B>...</B>");
129         }
130         else
131           sp.printHTML(body);
132         sp.printHTML("<br>\n");
133       }
134       while (rs.next());
135     }
136     catch (Exception JavaDoc e)
137     {
138       sp.printHTML("Exception getting stories of the day: " + e + "<br>");
139     }
140
141     closeConnection(stmt, conn);
142
143
144     sp.printHTMLfooter();
145
146   }
147
148   public void doPost(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
149       throws IOException JavaDoc, ServletException JavaDoc
150   {
151     doGet(request, response);
152   }
153
154 }
155
Popular Tags