import java.io.*; import java.util.*; import mixer.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; import java.util.regex.*; /* * 7.2.1 * Karl-Adam Karlsson * 06-11-07 * Guestbook * * */ public class GuestBook extends HttpServlet { //Doget public void doGet( HttpServletRequest req, HttpServletResponse res ) throws IOException { Enumeration names = req.getParameterNames(); Statement stmt = null; res.setContentType( "text/html" ); PrintWriter targetClient = res.getWriter(); // Skriver ut formuläret man kan använda för attt skriva inlägg printForm(targetClient); try{ // laddar SQL sakerna // OBS, Man kan vilja ändra url här, om man ine har databasen på samma plats. // vilket man troligen inte har... new com.mysql.jdbc.Driver(); String url = "jdbc:mysql://localhost" + "/" + "guestbook"; Connection dbConnection = DriverManager.getConnection(url, "adam", "adam"); stmt = dbConnection.createStatement(); }catch(SQLException sqEx){ targetClient.print(sqEx.toString()); } //lite variabler vi använder. //String tmpString, valString; //String[] tmpValues; //LinkedList aList; String from, email, mess, homepage; from = email = mess = homepage = null; if(req.getParameterValues("from")!=null) { from = req.getParameterValues("from")[0]; }if(req.getParameterValues("email")!=null) { email = req.getParameterValues("email")[0]; }if(req.getParameterValues("message")!=null) { mess = req.getParameterValues("message")[0]; }if(req.getParameterValues("homepage")!=null) { homepage = req.getParameterValues("homepage")[0]; } if(from!=null&&mess!=null&&stmt!=null){ // Om args -> GästboksInlägg // om det e null i message eller from så tolkar vi detta som att ett inlägg ej skrivits. // då laddar vi endast databasen och visar. // Skapa spara inlägget, skriv ut formuläret och alla inlägg String data = ("INSERT INTO person VALUES("+"'"+from+"', '"+email+"', '"+homepage+"', '"+mess+"');"); try{ stmt.executeUpdate( data ); }catch(SQLException sqx){ targetClient.print(sqx.toString()); } printDatabase(stmt, targetClient, res); }else{ //Inga args -> Skriv bara ut gästboken printDatabase(stmt, targetClient, res); } //MAN KAN VILJA ÄNDRA MAILSERVER // String mailhost = "smtp.bredband.net"; // String from = req.getParameterValues("from")[0]; // String to = req.getParameterValues("to")[0]; // String cc = req.getParameterValues("cc")[0]; // String bcc = req.getParameterValues("bcc")[0]; // String mess = req.getParameterValues("text_area")[0]; //String htmlTemplate = Mixer.getContent( getHtmlFile("412_second.html") ); /* while( names.hasMoreElements() ){ tmpString = (String)names.nextElement(); tmpValues = req.getParameterValues(tmpString); aList = new LinkedList( Arrays.asList(tmpValues) ); targetClient.print( tmpString+ " =" ); //Loopa igenom alla värden för parametern. while( aList.size()>0 ){ valString = (String)aList.getFirst(); targetClient.print( " "+ valString ); aList.removeFirst(); } //Ny rad targetClient.print( "\n"); } */ }//end of doGet /* * Dopost för POST-funktionalitet hos formuläret */ protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet( req, res ); }//end of doPost /* * Laddar göästboksformuläret från en .hmtl fil, * mha mixer och skriver ut det. * */ private void printForm(PrintWriter targetClient){ //Observera att guestform.html måste ligga så den hittas. String html = Mixer.getContent( getHtmlFile( "guestform.html" ) ); targetClient.print(html); } /* * Skriver ut databasen.. * @param Statement stmt, Statement att använda för utskriften. * */ private void printDatabase(Statement stmt, PrintWriter targetClient,HttpServletResponse res){ ResultSet result = null; try{ result = stmt.executeQuery("SELECT * FROM person;"); int i=1; while(result.next() ){ targetClient.print("