import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;
import 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 void printPageHeader(PrintWriter out) {
out.println("");
out.println("
");
out.println("3-Tier Model - Java Servlet, XML and JDBC");
out.println("");
out.println("");
out.println("Image Database");
out.println("
");
out.println("This is a test.
");
}
private void printPageFooter(PrintWriter out) {
System.out.println("In printPageFooter\n");
out.println("
");
out.println("
");
out.println("
");
out.println("");
out.println("");
out.close();
}
private void displayHashtable(Hashtable ht, PrintWriter out) {
out.println(" Name : | "+ ht.get("imgname").toString());
out.println(" | <\/a>");
out.println(" Color : | "+ ht.get("color").toString());
out.println(" |
---|
Type : | "+ ht.get("type").toString());
out.println(" |
---|
");
out.println(" | ");
}
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(PrintWriter out) { //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(" No Records Matched the Query !");
}else {
out.println("");
out.println("");
for(Enumeration e = vec.elements(); e.hasMoreElements(); ){
ht = (Hashtable) e.nextElement();
displayHashtable(ht,out);
}
myDb.close();
out.println(" ");
out.println("");
}
}
private String get(String key, Hashtable ht){ //Check keyword field, subsitute null field with " "
if(ht.get(key) != null)
return ht.get(key).toString();
else
return " ";
}
}//end of class
|
---|