KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > example > BasicServlet


1 package example;
2
3 import java.io.PrintWriter JavaDoc;
4 import java.io.IOException JavaDoc;
5
6 import java.sql.Connection JavaDoc;
7 import java.sql.Statement JavaDoc;
8 import java.sql.ResultSet JavaDoc;
9 import java.sql.SQLException JavaDoc;
10
11 import javax.sql.DataSource JavaDoc;
12
13 import javax.annotation.Resource;
14
15 import javax.servlet.ServletException JavaDoc;
16
17 import javax.servlet.http.HttpServlet JavaDoc;
18 import javax.servlet.http.HttpServletRequest JavaDoc;
19 import javax.servlet.http.HttpServletResponse JavaDoc;
20
21
22 /**
23  * The BasicServlet executes a simple JDBC query.
24  *
25  * The DataSource saved on initialization to save the JNDI lookup
26  * time.
27  */

28 public class BasicServlet extends HttpServlet JavaDoc {
29   /**
30    * The saved DataSource for the database
31    */

32   @Resource(name="jdbc/basic")
33   private DataSource JavaDoc _ds;
34
35   /**
36    * Sets the data source.
37    */

38   public void setDataSource(DataSource JavaDoc ds)
39   {
40     _ds = ds;
41   }
42
43   /**
44    * Respond to a request by doing a query and returning the results.
45    */

46   public void service(HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res)
47     throws java.io.IOException JavaDoc, ServletException JavaDoc
48   {
49     res.setContentType("text/html");
50     
51     PrintWriter JavaDoc out = res.getWriter();
52
53     try {
54       doQuery(out);
55     } catch (SQLException JavaDoc e) {
56       throw new ServletException JavaDoc(e);
57     }
58   }
59
60   /**
61    * Typical pattern for database use.
62    */

63   public void doQuery(PrintWriter JavaDoc out)
64     throws IOException JavaDoc, SQLException JavaDoc
65   {
66     Connection JavaDoc conn = _ds.getConnection();
67
68     try {
69       String JavaDoc sql = "SELECT name, cost FROM jdbc_basic_brooms ORDER BY cost DESC";
70       
71       Statement JavaDoc stmt = conn.createStatement();
72
73       ResultSet JavaDoc rs = stmt.executeQuery(sql);
74
75       out.println("<table border='3'>");
76       
77       while (rs.next()) {
78     out.println("<tr><td>" + rs.getString(1));
79     out.println(" <td>" + rs.getString(2));
80       }
81
82       out.println("</table>");
83       
84       rs.close();
85       stmt.close();
86     } finally {
87       conn.close();
88     }
89   }
90 }
91
Popular Tags