1 24 25 package edu.rice.rubbos.servlets; 26 27 import java.io.IOException ; 28 import java.net.URLEncoder ; 29 import java.sql.Connection ; 30 import java.sql.PreparedStatement ; 31 import java.sql.ResultSet ; 32 33 import javax.servlet.ServletException ; 34 import javax.servlet.http.HttpServletRequest ; 35 import javax.servlet.http.HttpServletResponse ; 36 37 public class BrowseCategories extends RubbosHttpServlet 38 { 39 40 public int getPoolSize() 41 { 42 return Config.BrowseCategoriesPoolSize; 43 } 44 45 private void closeConnection(PreparedStatement stmt, Connection conn) 46 { 47 try 48 { 49 if (stmt != null) 50 stmt.close(); } 52 catch (Exception ignore) 53 { 54 } 55 56 try 57 { 58 if (conn != null) 59 releaseConnection(conn); 60 } 61 catch (Exception ignore) 62 { 63 } 64 65 } 66 67 68 public void doGet(HttpServletRequest request, HttpServletResponse response) 69 throws IOException , ServletException 70 { 71 72 ServletPrinter sp = null; 73 PreparedStatement stmt = null; 74 Connection conn = null; 75 76 sp = new ServletPrinter(response, "BrowseCategories"); 77 sp.printHTMLheader("RUBBoS available categories"); 78 79 conn = getConnection(); 80 81 ResultSet rs = null; 82 try 83 { 84 stmt = conn.prepareStatement("SELECT * FROM categories"); 85 rs = stmt.executeQuery(); 86 } 87 catch (Exception e) 88 { 89 sp.printHTML("Failed to execute Query for BrowseCategories: " + e); 90 closeConnection(stmt, conn); 91 return; 92 } 93 try 94 { 95 if (!rs.first()) 96 { 97 sp 98 .printHTML("<h2>Sorry, but there is no category available at this time. Database table is empty</h2><br>\n"); 99 closeConnection(stmt, conn); 100 return; 101 } 102 else 103 sp.printHTML("<h2>Currently available categories</h2><br>\n"); 104 105 int categoryId; 106 String categoryName; 107 108 do 109 { 110 categoryId = rs.getInt("id"); 111 categoryName = rs.getString("name"); 112 sp 113 .printHTMLHighlighted("<a HREF=\"/rubbos/servlet/edu.rice.rubbos.servlets.BrowseStoriesByCategory?category=" 114 + categoryId 115 + "&categoryName=" 116 + URLEncoder.encode(categoryName) 117 + "\">" 118 + categoryName 119 + "</a><br>\n"); 120 } 121 while (rs.next()); 122 } 123 catch (Exception e) 124 { 125 sp.printHTML("Exception getting categories: " + e + "<br>"); 126 } 127 128 closeConnection(stmt, conn); 129 130 131 sp.printHTMLfooter(); 132 133 } 134 135 public void doPost(HttpServletRequest request, HttpServletResponse response) 136 throws IOException , ServletException 137 { 138 doGet(request, response); 139 } 140 141 } 142 | Popular Tags |