Bekijk de onderstaande video om te zien hoe je onze site als een web app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
/**
*
* <p>Title: Opdracht3 - TeacherLookupServlet</p>
* <p>Description: Servlet krijgt als parameter eroscode mee van client
* en toont de bijbehorende docenten uit de database</p>
* <p>Copyright: Alexander Boerma</p>
*/
public class TeacherLookupServlet extends HttpServlet implements SingleThreadModel{
static final private String CONTENT_TYPE = "text/html"; //content type response
static private Connection conn; //bevat reference database connection
//
/**
* @param config: bevat ServletConfig object
* @throws ServletException
* Initialize global variables en maakt connectie databse
*/
public void init(ServletConfig config) throws ServletException
{
super.init(config); //Geef ServletConfig object door aan GenericServlet
try
{
maakDatabaseConn(); //maakt database connectie aan
}
//Exceptie voor als de properties file niet gevonden word
catch (java.io.FileNotFoundException fe)
{
System.err.println("Property error: property file niet gevonden!!!");
fe.printStackTrace();
System.exit(1);
}
//Exceptie voor als de properties file niet gelezen kan worden
catch (java.io.IOException ie)
{
System.err.println("Property error: I/O exceptie op de property file!!!");
ie.printStackTrace();
System.exit(1);
}
//Exceptie als de ProperyFromFileFactory niet gevonden word
catch (ClassNotFoundException ce)
{
System.err.println("ClassNotFoundException "+ ce);
ce.printStackTrace();
System.exit(1);
}
//alle overige exceptie's
catch(Exception e)
{
System.err.println("Connectie kon niet worden gemaakt!!! :" + e );
System.exit(1);
}
//debugline voor de serverkant
System.err.println("TeacherLookupServlet: init()");
}
/**
* Maakt de DatabaseConnectie
* @throws FileNotFoundException
* @throws IOException
* @throws ClassNotFoundException
* @throws Exception
*/
private void maakDatabaseConn() throws FileNotFoundException, IOException,
ClassNotFoundException, Exception
{
//Properties inlezen dmv PropertyFromFileFactory Class
java.util.Properties propertie = null;
PropertyFromFileFactory factory = new PropertyFromFileFactory();
propertie = factory.getProperties();
//Variabele uit propertie initialiseren
String dbDriverName = propertie.getProperty("jdbcdriver");
String dbDatabaseUri = propertie.getProperty("database-uri");
String dbUserName = propertie.getProperty("username");
String dbPassword = propertie.getProperty("password");
//Database connectie maken
Class.forName(dbDriverName);
conn = DriverManager.getConnection(dbDatabaseUri, dbUserName, dbPassword);
}
//Process the HTTP Get request (opdracht3 gebruikt in index.html alleen de Post method.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.err.println("TeacherLookupServlet: doGet()");
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Opdracht3</title></head>");
out.println("<body>");
out.println("<p>Your request method was "+request.getMethod()+"</p>");
//redirect gebruiker naar het juiste formulier
String link="<a href=http://localhost:"+request.getServerPort()+"/index.html>formulier</a>";
out.println("<p>Gebruik het "+link+" in index.html en druk op Submit</p>");
out.println("</body></html>");
}
/**
* Process the HTTP Post request
* @param request : bevat de gegevens die vanuit de client naar de servlet gestuurd worden
* @param response : bevat de gegevens die vanuit de server naar de client teruggestuurd worden
* @throws ServletException
* @throws IOException
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
System.err.println("TeacherLookupServlet: doPost()"); //debugline serverkant
response.setContentType(CONTENT_TYPE); //set content type voor response
PrintWriter out = response.getWriter(); //reference naar PrintWriter object
out.println("<html>");
out.println("<head><title>Opdracht3 - Toon Docenten</title></head>");
out.println("<body bgcolor=#CCFF99>");
String erosCode = request.getParameter("erosCode"); //haal de erosCode op
try
{
showTeachers(erosCode, out); //toon de docenten
//Maak een back link aan om terug te keren naar index.html
int port = request.getServerPort(); //vraag server port op (kan variabel zijn)
String link = "<a href=http://localhost:"+port+"/index.html>hier</a>";
out.println("<p>Als U nog een ander vak wilt proberen, kunt U "+ link +" klikken</p>");
out.println("</body></html>");
}
//Exceptie als er gegevensfouten/databasefouten zijn
catch(SQLException s)
{
System.err.print("Fout bij het opzoeken van een module op erosCode");
System.exit(1);
}
}
/**
* toont de docenten in een tabel
* @param erosCode: de code van het vak waarvan de docenten getoond moeten worden
* @param out: bevat de reference naar PrintWriter object
* @throws SQLException
*/
private void showTeachers(String erosCode, PrintWriter out) throws SQLException
{
//SQL Query die docenten van vak toont in alfabetische volgorde
String Query = "select * from MODUULDOCENT,PERSONEEL where MODUULDOCENT.EROSCODE = '" + erosCode +
"' and MODUULDOCENT.PEINSYID = PERSONEEL.PEINSYID ORDER BY PERSONEEL.ACHTERNAAM";
//Maakt Statement aan en voert de Query uit. Resultaten komen in Resultset
Statement statement = conn.createStatement();
ResultSet res = statement.executeQuery(Query);
out.println("<h1>Docenten van vak "+erosCode+"</h1>");
out.println("<table border=1 cellpadding=10>"); //maakt tabel aan
int teller = 0; //teller voor het aantal docenten
while(res.next())
{
teller++; //update de teller
String temp = "<p>"+(String)res.getObject("TITELS")+" "+
(String)res.getObject("VOORLETTERS")+" "+
(String)res.getObject("VOORNAAM")+" "+
(String)res.getObject("VOORVOEGSELS")+" "+
(String)res.getObject("ACHTERNAAM")+"</p>";
writeCell(out,"Docent "+teller,temp);
}
out.println("</table>"); //sluit tabel tag
out.println("<p>Het vak heeft "+teller+" docenten aan zich verbonden</p>");
res.close(); //sluit de resultset
statement.close(); //sluit het statement
}
/**
* Maakt een rij aan in tabel voor een docent
* @param out : reference PrintWriter
* @param name : Docent en nummer (vb: Docent1)
* @param value: volledige naam Docent
*/
private void writeCell(PrintWriter out, String name, String value)
{
out.print("<tr><td>");
out.print(name);
out.print("</td><td>");
out.print(value);
out.print("</td></tr>");
}
/**
* Clean up resources (sluit database Connectie
*/
public void destroy()
{
System.err.println("TeacherLookupServlet: destroy()"); //debugline serverkant
try
{
conn.close(); //sluit connectie
}
//Exceptie als sluiten database niet goed verloopt
catch(SQLException se)
{
System.err.println("Error sluiten database");
}
}
}
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class PropertyFromFileFactory {
private String configFilename;
public PropertyFromFileFactory() {
configFilename = System.getProperty("CONFIGFILE");
}
public PropertyFromFileFactory(String filename) {
if (filename != null) {
configFilename = filename;
}
}
public java.util.Properties getProperties()
throws java.io.FileNotFoundException,
java.io.IOException {
if (configFilename == null) {
throw new java.io.IOException("no config file specified");
}
FileInputStream f = new FileInputStream(configFilename);
java.util.Properties prop = null;
try {
prop = new java.util.Properties();
prop.load(f);
} finally {
if (f != null)
f.close();
}
return prop;
}
}
We gebruiken essentiële cookies om deze site te laten werken, en optionele cookies om de ervaring te verbeteren.