import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.util.*; public class DataforbindelseServlet extends HttpServlet { public void init(ServletConfig config) throws ServletException { super.init(config); // Det er vigtigt at dataforbindelsen på værten IKKE forsøger // at få forbindelse med en servlet, så vi sætter et vink om // hvilken forbindelse vi ønsker try { Dataforbindelse.sætForbindelsesvink("fil"); } catch (Exception e) { e.printStackTrace(); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String kommando = request.getParameter("kommando"); Dataforbindelse dbforb = Dataforbindelse.hentForbindelse(); System.out.println("kommando="+kommando); // Test - for at sikre os at det rent faktisk kommer gennem servletten // sender vi en ekstra "kunde" med // dbf.indsæt( new Kunde( "Servlet kommando = "+kommando, 0) ); if ("sletAlleData".equals(kommando)) dbforb.sletAlleData(); else if ("hentAlle".equals(kommando)) { // sæt indholdstypen til noget binært (bare noget andet end text/html response.setContentType("application/x-serialiserede-kunder"); // serialisér svaret og send det til klienten List alle = dbforb.hentAlle(); ObjectOutputStream p=new ObjectOutputStream( response.getOutputStream()); p.writeObject(alle); p.close(); return; } else if ("indsæt".equals(kommando)) { Kunde k = new Kunde ( request.getParameter("navn"), Double.parseDouble( request.getParameter("kredit") ) ); dbforb.indsæt(k); } else throw new IllegalArgumentException("ukendt kommando: "+kommando); } catch (Exception e) { e.printStackTrace(); response.setContentType("text/html"); PrintWriter out = response.getWriter(); System.out.println(); out.println(""); out.println("DataforbindelseServlet - fejl"); out.println("

Fejl: "+e+"

"); out.println("

Der opstod en fejl i servletten:

"); e.printStackTrace(out); out.println(""); } } }