@@ -25,9 +25,6 @@
public class BrowseByTitle extends HttpServlet {
private static final long serialVersionUID = 1L;
Connection conn;
private int resultsPosition = 0;
private int resultsLimit = 10;
private String startChar = "";

/**
* @see HttpServlet#HttpServlet()
@@ -94,30 +91,15 @@ private String createAlphabet() throws SQLException
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
if(request.getParameter("position")!= null)
if(request.getParameter("CreateTitleList") != null)
{
resultsPosition = Integer.valueOf(request.getParameter("position"));
}
if(request.getParameter("limit")!= null)
{
resultsLimit = Integer.valueOf(request.getParameter("limit"));
}
if(request.getParameter("CreateTitleList") != null && request.getParameter("StartCharacter") != null)
{
startChar = (String)request.getParameter("StartCharacter");
String sqlQuery = "SELECT MT.id, MT.title, MT.director, MT.year, group_concat(distinct G.name), group_concat(DISTINCT S.id, ':', S.first_name, ' ', S.last_name) "
+ "FROM((SELECT * FROM moviedb.movies M ORDER BY M.id) MT "
String sqlQuery = "SELECT MT.id, MT.title, MT.director, MT.year, group_concat(distinct G.name), group_concat(DISTINCT S.id, ':', S.first_name, ' ', S.last_name)"
+ " FROM((SELECT * FROM moviedb.movies M ORDER BY M.id) MT "
+ "JOIN (moviedb.genres G JOIN moviedb.genres_in_movies GIM on G.id=GIM.genre_id) ON GIM.movie_id = MT.id)"
+ " JOIN (moviedb.stars_in_movies SIM JOIN moviedb.stars s ON SIM.star_id = s.id) ON SIM.movie_id = MT.id, "
+ "(select count(*) as Count from moviedb.movies m) as q "
+ " JOIN (moviedb.stars_in_movies SIM JOIN moviedb.stars s ON SIM.star_id = s.id) ON SIM.movie_id = MT.id "
+ " WHERE MT.title LIKE '"
+ startChar
+ "%' group by MT.title "
+ " limit "
+ resultsLimit+1
+ " offset "
+ resultsPosition
+ ";";
+ (String)request.getParameter("StartCharacter")
+ "%'group by MT.title;";
try {
ResultSet titles = performSearchQuery(sqlQuery);
out.println(AddTopBar.makeTopOfPage());
@@ -145,7 +127,6 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t

private String createMoviesByAlpha(ResultSet titles) throws SQLException {
MovieInfo mi = new MovieInfo();
int countMovies = 0;
String stripedTable = "<table class='table table-hover'>"
+ "<thead>"
+ "<tr>"
@@ -166,92 +147,19 @@ private String createMoviesByAlpha(ResultSet titles) throws SQLException {
{
while(titles.next())
{
if(countMovies < resultsLimit)
{
mi.setMovieInfo(titles.getInt(1), titles.getString(2), "", titles.getString(3),
titles.getString(4), titles.getString(5), titles.getString(6));
stripedTable += "<tr><td>"+mi.id+"</td>"
+ "<td>"
+ textLinker.linkMovie(mi.title, String.valueOf(mi.id))
+"</td>"
+ "<td>"+mi.year+"</td>"
+ "<td>"+mi.director+"</td>";
stripedTable+="<td>"+textLinker.linkStars(mi.starsInFilm)+"</td>";
stripedTable+="<td>"+textLinker.linkGenres(mi.genres)+"</td>";
countMovies++;
mi.clearMovieInfo();
}
}
stripedTable += "</tbody></table>"
+ "Limit <a href='BrowseByTitle?limit=10&position="
+ resultsPosition
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>10 </a>"
+ "<a href='BrowseByTitle?limit=20&position="
+ resultsPosition
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>20 </a>"
+ "<a href='BrowseByTitle?limit=50&position="
+ resultsPosition
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>50 </a>"
+ "<a href='BrowseByTitle?limit=100&position="
+ resultsPosition
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>100</a>"
+ "<br>";
if(resultsPosition == 0)
{
stripedTable += "<a href='BrowseByTitle?limit="
+ resultsLimit
+ "&position="
+ (resultsPosition + resultsLimit)
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>Next</a>";
}
else if(resultsLimit > countMovies)
{
stripedTable += "<a href='BrowseByTitle?limit="
+ resultsLimit
+ "&position="
+ (resultsPosition - resultsLimit)
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>Prev</a>";
}
else
{
stripedTable += "<a href='BrowseByTitle?limit="
+ resultsLimit
+ "&position="
+ (resultsPosition - resultsLimit)
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>Prev</a>\t"
+ "<a href='BrowseByTitle?limit="
+ resultsLimit
+ "&position="
+ (resultsPosition + resultsLimit)
+ "&StartCharacter="
+ startChar
+ "&CreateTitleList=true"
+ "'>Next</a>"; ;
mi.setMovieInfo(titles.getInt(1), titles.getString(2), "", titles.getString(3),
titles.getString(4), titles.getString(5), titles.getString(6));
stripedTable += "<tr><td>"+mi.id+"</td>"
+ "<td>"
+ textLinker.linkMovie(mi.title, String.valueOf(mi.id))
+"</td>"
+ "<td>"+mi.year+"</td>"
+ "<td>"+mi.director+"</td>";
stripedTable+="<td>"+textLinker.linkStars(mi.starsInFilm)+"</td>";
stripedTable+="<td>"+textLinker.linkGenres(mi.genres)+"</td>";
mi.clearMovieInfo();
}


stripedTable += "</BODY></HTML>";
stripedTable += "</tbody></table></BODY></HTML>";
}
return stripedTable;
}
@@ -263,7 +171,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
doGet(request, response);
}

private String listStarsWithLinks(HashSet<StarsInfo> starsInFilm )
private String listStarsWithLinks(HashSet<StarsInfo> starsInFilm )
{
String stripedTable = new String();
int position = 0;
@@ -22,7 +22,12 @@
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {


public MyServlet() throws ClassNotFoundException {
super();
// TODO Auto-generated constructor stub
Class.forName("com.mysql.jdbc.Driver");
}

public Connection getConnection() throws SQLException, NamingException {
Context initCtx = new InitialContext();
if (initCtx == null)
@@ -39,32 +44,30 @@ public Connection getConnection() throws SQLException, NamingException {
System.out.println("ds is null.");
return ds.getConnection();
}

public MyServlet() throws ClassNotFoundException {
super();
// TODO Auto-generated constructor stub
Class.forName("com.mysql.jdbc.Driver");
}


private String logInCheck(String username, String password)
throws SQLException, NamingException {
String userID = null;

Connection conn = getConnection();

Statement loginSelect = conn.createStatement();
System.out.println(username);
System.out.println(password);

ResultSet loginResult = loginSelect.executeQuery("SELECT C.id "
+ "FROM moviedb.customers C " + "where (C.email = '" + username
+ "'" + " and C.password = '" + password + "');");
// conn.close();
//System.out.println(loginResult.isBeforeFirst());
if( loginResult.isBeforeFirst()){
while(loginResult.next()){
return loginResult.getString("id");
userID = loginResult.getString("id");
}

loginResult.close();
}
return null;
}
loginSelect.close();
conn.close();
return userID;
}

//
// /**
@@ -77,6 +80,7 @@ protected void doGet(HttpServletRequest request,
HttpSession session = request.getSession();

String userID = null;

try {
userID = logInCheck(request.getParameter("Username"),request.getParameter("Password"));
System.out.println(userID);
@@ -136,13 +136,9 @@ private Set<String> getSetOfGenres(String movieID) throws SQLException
return null;
}
while(genreResult.next())
{
String genreList = genreResult.getString(1);
for(String star: genreList.split(","))
{
genreSet.add(star);
}
}
{
genreSet.add(genreResult.getString(1));
}
genreResult.close();
return genreSet;
}