/*********************************************************************** File: Teaser.java Author: Jake Olefsky Credits: This code is based on code from Craig Jurney, ITSS and on the JDBC handout from class and from sample code from the java.sun.com web page. It also has some elements taken from the StateQuerier source code provided to class Description: This is a servlet that performs SQL searches on id. It is used to return a page listing a teaser. This is always performed from a link, never a form, so I dont need a post method. ************************************************************************/ import java.io.*; import java.text.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class Teaser extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { int id = -1; int op = 0; int numviews = -1; response.setContentType("text/html"); PrintWriter out = response.getWriter(); String idstring = request.getParameter("id"); try { id = Integer.parseInt(idstring); } catch(NumberFormatException nfe) { } String opstring = request.getParameter("op"); try { op = Integer.parseInt(opstring); } catch(NumberFormatException nfe) { } String user = request.getParameter("user"); tease(id, op, user, out); } public static void tease(int id, int op, String user, PrintWriter out) throws IOException { int numviews = -1; if(id>0) {//if the teaser id exists try { //Do Query String username = ""; Connection con = SQLUtil.getConnection(); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM teaser WHERE id=" + id); while(rs.next()) { String body = rs.getString("body"); String title = rs.getString("title"); String category = rs.getString("category"); HTMLCommon.printTop(out, category+" : "+title); HTMLCommon.printDate(out); HTMLCommon.printUser(out,user); HTMLCommon.printLocation(out, category, user); HTMLCommon.printSidebar(out,user); //Print content out.println(""); double diffrating = rs.getFloat("diffrating"); diffrating = (Math.round(diffrating*10))/10.0; out.println(""); double funrating = rs.getFloat("funrating"); funrating = (Math.round(funrating*10))/10.0; out.println(""); Statement stmt3 = con.createStatement(); ResultSet rs3 = stmt3.executeQuery("SELECT username FROM submitted WHERE id=" + id); while(rs3.next()) { username = rs3.getString("username"); out.print(""); } stmt3.close(); out.println("
Difficulty: "+diffrating+"
Funness: "+funrating+"
Submitted By: "+username+"
"); out.println("

"+title+"

"); out.println("
"+body+"


"); numviews = rs.getInt("numviews"); if(op==1) { //print hint String hint = rs.getString("hint"); out.println("

Hint

"); out.println(hint+"


"); out.println("
"); out.println("
"); out.println("
"); if(user!=null) { out.println("Click for the answer"); } else { out.println("Click for the answer"); } out.println("
"); } else if(op==2) { //print answer String answer = rs.getString("answer"); out.println("

Answer

"); out.println(answer+"


"); out.println(""); } else { //print neither out.println(""); if(user!=null) { out.println("Need a Hint ??"); } else { out.println("Need a Hint ??"); } out.println(""); if(user!=null) { out.println("Click for the answer"); } else { out.println("Click for the answer"); } out.println(""); String stmtstring2 = "UPDATE teaser SET numviews = "+(numviews+1)+" WHERE id="+id; Statement stmt2 = con.createStatement(); stmt2.executeUpdate(stmtstring2); } } stmt.close(); con.close(); } catch (SQLException e) { HTMLCommon.printError(out);} HTMLCommon.printTag(out); HTMLCommon.printRateForm(out, id, user); HTMLCommon.printBottom(out); } else { HTMLCommon.printError(out); } } }