import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class Artist extends HttpServlet
{
private HTMLParser html;
private DBUtil db;
private PrintWriter out;
private String artist;
private String content;
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
artist = request.getParameter("name");
out = response.getWriter();
html = new HTMLParser();
try { db = new DBUtil(); }
catch (Exception e) { html.outputError(e, out); }
response.setContentType("text/html");
if(artist == null) {
html.setContent(printLinks());
html.parse(out, null, "Listing of all Artists");
}
else {
artist = artist.replace('_', ' ');
html.setContent(getArtistInfo(artist, html));
html.parse(out, null, artist);
}
db.close();
}
private String printLinks()
{
ResultSet rs = db.execQuery("SELECT name FROM Artist ORDER BY name");
String links = "";
try {
while(rs.next())
{
String name = rs.getString("name");
String _name = name.replace(' ', '_');
links += ("" +
name + "
\n");
}
rs.close();
db.closeQuery(); // has to come after rs processing...
}
catch (SQLException e) { html.outputError(e, out); }
links += "
\n"; links += "" + "Delete an Artist\n"; return links; } private String getArtistInfo(String artist, HTMLParser html) { String info = "", query; query = "SELECT * FROM Artist WHERE name='" + artist + "'"; ResultSet groupInfo = db.execQuery(query); query = "SELECT * FROM Musician WHERE name IN " + "(SELECT musicianName FROM InGroup WHERE groupName='" + artist + "')"; ResultSet members = db.execQuery(query); query = "SELECT * FROM album WHERE groupName='"+artist+"'" + " ORDER BY year"; ResultSet albums = db.execQuery(query); info += "
\n";
try {
// the groupInfo should only have one entry...
if(groupInfo.next()) {
info += (""+groupInfo.getString("name")+"\n"); info += "\n"; info += "Genre: " + groupInfo.getString("genre") + "\n "; info += "Hometown: " + groupInfo.getString("hometown") + "\n"; String homepage = groupInfo.getString("homepage"); info += " Homepage: "; info += homepage + "\n"; info += " " + groupInfo.getString("bio") + "\n"; info += " | \n";
info += html.insertPic(artist.replace(' ', '_'), "band");
info += "
Name | \n"; info += "Instrument | \n"; info += "Hometown | \n
---|---|---|
" + memberName + " | \n"; info += ""+members.getString("instrument")+" | \n"; info += ""+members.getString("hometown")+" | \n"; info += "
\n"; info += "
Album | \n"; info += "Date Released | \n"; info += "Tracks | \n
---|---|---|
"+albumName+" | \n"; info += ""+albums.getDate("year")+" | \n"; info += ""+albums.getInt("numTracks")+" | \n"; String pic = artist.replace(' ', '_') + "-" + albumName.replace(' ', '_'); info += html.insertPic(pic, "album"); info += "
\n
Back
\n*/"\n"; info += "\n\n"; return info; } }