package cy99xfq.myServlet; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.net.*; import java.sql.*; import java.util.*; import cy99xfq.myServlet.myDatabase; /** * ImageDBServlet.java * * This servlet demonstrates how to use JDBC driver to access the * image database from the servlet, thus shows a 3-tier JDBC example. * * @author xjqiu@npac.syr.edu */ public class ImageDBServlet extends HttpServlet { String imgname; String color; String type; String url; String noneLabel=" "; /** * doGet() method * At Server side, collection query information from client side interface, * access Image Database, send back HTML file containing query results */ public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { Connection con; PrintWriter out; res.setContentType("text/html"); out = new PrintWriter(res.getOutputStream()); // Fetch the parameters from client side // while checking each field of the query table. // Perform Database Access according to the value combinations provieded from User. if (req.getParameter("imgname") != null) imgname=req.getParameter("imgname"); else imgname=noneLabel; if (req.getParameter("color") != null) color=req.getParameter("color"); else color=noneLabel; if (req.getParameter("type") != null) type=req.getParameter("type"); else type=noneLabel; if (req.getParameter("url") != null) url=req.getParameter("url"); else url=noneLabel; printPageHeader(out); String cntrl = req.getParameter("control"); if(cntrl != null) { if (cntrl.equals("Search")) {//Search button pressed doSearch(req, out); }else if (cntrl.equals("Insert")) {//Insert button pressed doInsert(out); } } printPageFooter(out); } private String getSQLstring(HttpServletRequest req) { String tmpstr = "select * from images_table where "; StringBuffer strbuf = new StringBuffer(); if(!(imgname.trim().equals(""))) { strbuf.append("upper(imgname)=upper('"+(req.getParameter("imgname")).trim()+"') and "); }else { strbuf.append("imgname like '%' and "); } if(!(color.trim().equals(""))) { strbuf.append("upper(color)=upper('"+(req.getParameter("color")).trim()+"') and "); }else { strbuf.append("color like '%' and "); } if(!(type.trim().equals(""))) { strbuf.append("upper(type)=upper('"+(req.getParameter("type")).trim()+"') and "); }else { strbuf.append("type like '%' and "); } if(!(url.trim().equals(""))) { strbuf.append("upper(url)=upper('"+(req.getParameter("url")).trim()+"');"); }else { strbuf.append("url like '%'"); } tmpstr = tmpstr + strbuf.toString(); if(tmpstr == null || tmpstr.equals("") ) return noneLabel; else return tmpstr; } private void doInsert() { //Insert new record to database file String sql = "insert into images_table values(" + "images_table_seq.nextval,'"+imgname+ "','"+color+"','"+type+"','"+ url+"')"; myDatabase myDb = new myDatabase(); myDb.open(); myDb.executeSQL(sql); myDb.close(); out.println("New record has been added to Database!"); } private void doSearch(HttpServletRequest req, PrintWriter out) { String sql; sql = getSQLstring(req); myDatabase myDb = new myDatabase(); myDb.open(); Vector vec = myDb.getRecords(sql); Hashtable ht ; if(vec.size() <= 0) { out.println("