Created
July 5, 2011 10:02
-
-
Save stefanboehler/1064590 to your computer and use it in GitHub Desktop.
Zusammengefasste Aufgaben 8 bis 11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package webapp; | |
public class Artikel { | |
private String artikelnummer; | |
private String name; | |
private String beschreibung; | |
private double preis; | |
private int menge; | |
Artikel(String nummer, String name, String beschreibung, double preis, int menge) { | |
this.artikelnummer = nummer; | |
this.name = name; | |
this.beschreibung = beschreibung; | |
this.preis = preis; | |
this.menge = menge; | |
} | |
public String getArtikelnummer() { | |
return artikelnummer; | |
} | |
public void setArtikelnummer(String artikelnummer) { | |
this.artikelnummer = artikelnummer; | |
} | |
public String getBeschreibung() { | |
return beschreibung; | |
} | |
public void setBeschreibung(String beschreibung) { | |
this.beschreibung = beschreibung; | |
} | |
public int getMenge() { | |
return menge; | |
} | |
public void setMenge(int menge) { | |
this.menge = menge; | |
} | |
public String getName() { | |
return name; | |
} | |
public void setName(String name) { | |
this.name = name; | |
} | |
public double getPreis() { | |
return preis; | |
} | |
public void setPreis(float preis) { | |
this.preis = preis; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%@page contentType="text/html" pageEncoding="UTF-8"%> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<title>JSP Page</title> | |
<style type="text/css"> | |
label | |
{ | |
display: block; | |
width: 120px; | |
} | |
div.form-row | |
{ | |
padding: 0 0 13px; | |
} | |
</style> | |
</head> | |
<body> | |
<h1>Artikel erzeugen</h1> | |
<form action="<%= application.getContextPath()%>/OnlineShop"> | |
<fieldset> | |
<div class="form-row"> | |
<label for="nummer">Nummer</label> | |
<input type="text" name="nummer" id="nummer" /> | |
</div> | |
<div class="form-row"> | |
<label for="name">Name</label> | |
<input type="text" name="name" id="name" /> | |
</div> | |
<div class="form-row"> | |
<label for="beschreibung">Beschreibung</label> | |
<input type="text" name="beschreibung" id="beschreibung" /> | |
</div> | |
<div class="form-row"> | |
<label for="preis">Preis</label> | |
<input type="text" name="preis" id="preis" /> | |
</div> | |
<div class="form-row"> | |
<label for="menge">Menge</label> | |
<input type="text" name="menge" id="menge" /> | |
</div> | |
<div class="form-row"> | |
<input type="hidden" name="action" value="erzeugeArtikel" /> | |
<input type="submit" value="abschicken" name="abschicken"/> | |
</div> | |
</fieldset> | |
</form> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%@taglib uri="/WEB-INF/tlds/c.tld" prefix="c" %> | |
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> | |
<%@page import="java.util.ArrayList"%> | |
<%@page import="webapp.OnlineShopDatabase"%> | |
<%@page import="webapp.Artikel"%> | |
<%@page import="java.util.Vector"%> | |
<%@page contentType="text/html" pageEncoding="UTF-8"%> | |
<% ServletContext sc = request.getServletContext();%> | |
<% | |
pageContext.setAttribute("contextPath", application.getContextPath()); | |
//Vector<Artikel> artikel = (Vector<Artikel>) sc.getAttribute("artikel"); | |
OnlineShopDatabase osd = (OnlineShopDatabase) sc.getAttribute("OnlineShopDatabase"); | |
if (osd != null) { | |
ArrayList<Artikel> artikel = null; | |
artikel = osd.getArtikel(); | |
pageContext.setAttribute("artikel", artikel); | |
} | |
%> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<title>Webshop übersicht</title> | |
</head> | |
<body> | |
<h1>Artikel Übersicht</h1> | |
<ul> | |
<li>Zur <a href="${contextPath}">Übersicht</a></li> | |
<li>Einen <a href="${contextPath}/artikel_erzeugen.jsp">neuen</a> Artikel anlegen</li> | |
</ul> | |
<table border="1" cellpadding="3" cellspacing="0"> | |
<th> | |
<td>Artikelnummer</td> | |
<td>Name</td> | |
<td>Beschreibung</td> | |
<td>Preis</td> | |
<td>Menge</td> | |
</th> | |
<c:forEach var="artikel" items="${artikel}"> | |
<tr> | |
<td>${artikel.artikelnummer}</td> | |
<td>${artikel.name}</td> | |
<td>${artikel.beschreibung}</td> | |
<td>${artikel.preis}</td> | |
<td>${artikel.menge}</td> | |
<td> | |
<form name="${artikel.artikelnummer}" method="POST" action="${contextPath}/OnlineShop"> | |
<input type="hidden" name="artikelNummer" value="${artikel.artikelnummer}" /> | |
<input type="hidden" name="artikelName" value="${artikel.name}" /> | |
<input type="hidden" name="action" value="bestelleArtikel" /> | |
<input type="submit" name="bestellen" value="Bestellen" /> | |
</form> | |
</td> | |
</tr> | |
</c:forEach> | |
</table> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package webapp; | |
public class Bestellposition { | |
private String artikelnummer; | |
private String artikelname; | |
private int menge; | |
private float preis; | |
public String getArtikelname() { | |
return artikelname; | |
} | |
public void setArtikelname(String artikelname) { | |
this.artikelname = artikelname; | |
} | |
public String getArtikelnummer() { | |
return artikelnummer; | |
} | |
public void setArtikelnummer(String artikelnummer) { | |
this.artikelnummer = artikelnummer; | |
} | |
public int getMenge() { | |
return menge; | |
} | |
public void setMenge(int menge) { | |
this.menge = menge; | |
} | |
public float getPreis() { | |
return preis; | |
} | |
public void setPreis(float preis) { | |
this.preis = preis; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package webapp; | |
import java.util.Properties; | |
public class DatabaseDerby extends Database { | |
public DatabaseDerby() { | |
super("org.apache.derby.jdbc.EmbeddedDriver", "jdbc:derby:onlineShop;create=true", new Properties()); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%@taglib uri="/WEB-INF/tlds/c.tld" prefix="c" %> | |
<%@page import="webapp.Bestellung"%> | |
<%@page contentType="text/html" pageEncoding="UTF-8"%> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
<title>Webshop</title> | |
</head> | |
<body> | |
<h1>Webshop</h1> | |
<p> | |
<ul> | |
<li><a href="<%= application.getContextPath()%>/artikel_erzeugen.jsp">Artikel erzeugen</a></li> | |
<li><a href="<%= application.getContextPath()%>/OnlineShop?action=artikel_uebersicht">Artikel übersicht anschauen</a></li> | |
</ul> | |
</p> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package webapp; | |
import java.sql.Connection; | |
import java.sql.SQLException; | |
import java.util.logging.Level; | |
import java.util.logging.Logger; | |
import javax.servlet.ServletContext; | |
import javax.servlet.ServletContextEvent; | |
import javax.servlet.ServletContextListener; | |
public class OnlineShopContextListener implements ServletContextListener { | |
@Override | |
public void contextDestroyed(ServletContextEvent sce) { | |
// ServletContext sc = sce.getServletContext(); | |
// DatabaseDerby dbd = (DatabaseDerby) sc.getAttribute("DatabaseDerby"); | |
// if (dbd != null) { | |
// try { | |
// dbd.getConnection().close(); | |
// } catch (SQLException ex) { | |
// Logger.getLogger(OnlineShopContextListener.class.getName()).log(Level.SEVERE, null, ex); | |
// } | |
// } else { | |
// System.out.println("dbd == null"); | |
// } | |
} | |
@Override | |
public void contextInitialized(ServletContextEvent sce) { | |
try { | |
// try { | |
// ServletContext sc = sce.getServletContext(); | |
// // Später werden hier die Artikel aus der Datenbank geladen | |
// Vector<Artikel> artikel = null; | |
// artikel.add(new Artikel("123", "namename", "beschreibung", 23.32, 2)); | |
// artikel.add(new Artikel("23123", "namename", "beschreibung", 23.32, 2)); | |
// artikel.add(new Artikel("122323", "namename", "beschreibung", 23.32, 2)); | |
// artikel.add(new Artikel("1223333", "namename", "beschreibung", 23.32, 2)); | |
// System.out.println("artikel erstellt"); | |
// sc.setAttribute("artikel", (Object) artikel); | |
// } catch (Exception e) { | |
// } | |
// | |
OnlineShopDatabase osd = null; | |
ServletContext sc = sce.getServletContext(); | |
if (sc.getAttribute("osd") == null) { | |
DatabaseDerby dbd = new DatabaseDerby(); | |
sc.setAttribute("DatabaseDerby", dbd); | |
osd = new OnlineShopDatabase(dbd); | |
sc.setAttribute("OnlineShopDatabase", osd); | |
} else { | |
osd = (OnlineShopDatabase) sc.getAttribute("osd"); | |
} | |
sc.setAttribute("Artikel", osd.getArtikel()); | |
} catch (Exception e) { | |
System.out.println("ContextListener abgeschmiert ... vermutlich wieder DB Problem"); | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package webapp; | |
import java.io.IOException; | |
import java.util.ArrayList; | |
import java.util.Vector; | |
import javax.servlet.RequestDispatcher; | |
import javax.servlet.ServletContext; | |
import javax.servlet.ServletException; | |
import javax.servlet.annotation.WebServlet; | |
import javax.servlet.http.HttpServlet; | |
import javax.servlet.http.HttpServletRequest; | |
import javax.servlet.http.HttpServletResponse; | |
import javax.servlet.http.HttpSession; | |
import javax.servlet.jsp.PageContext; | |
/** | |
* Servlet implementation class OnlineShop | |
*/ | |
@WebServlet("/OnlineShop") | |
public class OnlineShopServlet extends HttpServlet { | |
private static final long serialVersionUID = 1L; | |
private Vector<Artikel> artikel; | |
/** | |
* @see HttpServlet#HttpServlet() | |
*/ | |
@SuppressWarnings("unchecked") | |
public OnlineShopServlet() { | |
super(); | |
} | |
@Override | |
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { | |
this.artikel = (Vector<Artikel>) getServletContext().getAttribute("artikel"); | |
String action = request.getParameter("action"); | |
try { | |
if (action.equals("erzeugeArtikel")) { | |
String nummer = request.getParameter("nummer"); | |
String name = request.getParameter("name"); | |
String beschreibung = request.getParameter("beschreibung"); | |
double preis = Double.parseDouble(request.getParameter("preis")); | |
int menge = Integer.parseInt(request.getParameter("menge")); | |
if (erzeugeArtikel(nummer, name, beschreibung, preis, menge)) { | |
response.sendRedirect("artikel_erzeugt.html"); | |
} else { | |
response.getWriter().println("Fehler!"); | |
} | |
} | |
if (action.equals("bestelleArtikel")) { | |
try { | |
HttpSession session = request.getSession(true); | |
String bestObjektName = request.getParameter("artikelName"); | |
String bestObjektNummer = request.getParameter("artikelNummer"); | |
Bestellposition bestellposition = new Bestellposition(); | |
bestellposition.setArtikelname(bestObjektName); | |
bestellposition.setArtikelnummer(bestObjektNummer); | |
bestellposition.setMenge(1); | |
bestellposition.setPreis((float) 12.00); | |
Bestellung bestellung = null; | |
bestellung = (Bestellung) session.getAttribute("warenkorb"); | |
if (bestellung == null) { | |
bestellung = new Bestellung(); | |
} else { | |
bestellung.addBestellposition(bestellposition); | |
} | |
session.setAttribute("warenkorb", bestellung); | |
response.sendRedirect("warenkorb.jsp"); | |
// request.getRequestDispatcher("artikel_uebersicht.jsp").forward(request, response); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
response.sendRedirect("fehler.jsp"); | |
} | |
} | |
if (action.equals("artikel_uebersicht")) { | |
// ServletContext servletContext = getServletContext(); | |
// OnlineShopDatabase osd = (OnlineShopDatabase) servletContext.getAttribute("OnlineShopDatabase"); | |
// ArrayList<Artikel> artikel = osd.getArtikel(); | |
// request.setAttribute("artikel", artikel); | |
request.getRequestDispatcher("artikel_uebersicht.jsp").forward(request, response); | |
// response.sendRedirect("artikel_uebersicht.jsp"); | |
} | |
} catch (Exception e) { | |
e.printStackTrace(); | |
response.sendRedirect("fehler.jsp"); | |
} | |
} | |
private boolean erzeugeArtikel(String nummer, String name, String beschreibung, double preis, int menge) { | |
try { | |
// this.artikel.add(new Artikel(nummer, name, beschreibung, preis, menge)); | |
OnlineShopDatabase osd = (OnlineShopDatabase) getServletContext().getAttribute("OnlineShopDatabase"); | |
if (!osd.insertArtikel(new Artikel(nummer, name, beschreibung, preis, menge))) { | |
throw new Exception("Eintragen in die DB nicht möglich"); | |
} | |
return true; | |
} catch (Exception e) { | |
System.out.println("eintragen nicht möglich erzeugeArtikel() @ OnlineShopServlet.java"); | |
return false; | |
} | |
} | |
public Vector<Artikel> getArtikel() { | |
return this.artikel; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<%@page import="webapp.Bestellung"%> | |
<%@taglib uri="/WEB-INF/tlds/c.tld" prefix="c" %> | |
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> | |
<%@page import="java.util.ArrayList"%> | |
<%@page import="webapp.OnlineShopDatabase"%> | |
<%@page import="webapp.Artikel"%> | |
<%@page import="java.util.Vector"%> | |
<%@page contentType="text/html" pageEncoding="UTF-8"%> | |
<% ServletContext sc = request.getServletContext();%> | |
<% | |
pageContext.setAttribute("contextPath", application.getContextPath()); | |
//pageContext.setAttribute("warenkorb", session.getAttribute("warenkorb")); | |
Bestellung outtest = (Bestellung) session.getAttribute("warenkorb"); | |
if (outtest != null) { | |
out.write(outtest.toString()); | |
} | |
if (outtest == null) { | |
out.write("bestellung ist null"); | |
} | |
%> | |
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |
<title>Webshop übersicht</title> | |
</head> | |
<body> | |
<h1>Artikel Übersicht</h1> | |
<ul> | |
<li>Zur <a href="${contextPath}">Übersicht</a></li> | |
<li>Einen <a href="${contextPath}/artikel_erzeugen.jsp">neuen</a> Artikel anlegen</li> | |
</ul> | |
<table border="1" cellpadding="3" cellspacing="0"> | |
<th> | |
<td>Artikelnummer</td> | |
<td>Name</td> | |
</th> | |
<c:forEach var="bp" varStatus="bpStatus" items="${warenkorb.bestellpositionen}"> | |
<tr> | |
<td>${bp.artikelnummer}</td> | |
<td>${bp.artikelname}</td> | |
</tr> | |
</c:forEach> | |
</table> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> | |
<session-config> | |
<session-timeout>30</session-timeout> | |
</session-config> | |
<welcome-file-list> | |
<welcome-file>index.jsp</welcome-file> | |
</welcome-file-list> | |
<listener> | |
<listener-class>webapp.OnlineShopContextListener</listener-class> | |
</listener> | |
<servlet> | |
<display-name>OnlineShop</display-name> | |
<servlet-name>OnlineShopServlet</servlet-name> | |
<servlet-class>webapp.OnlineShopServlet</servlet-class> | |
</servlet> | |
<servlet-mapping> | |
<servlet-name>OnlineShopServlet</servlet-name> | |
<url-pattern>/OnlineShop</url-pattern> | |
</servlet-mapping> | |
</web-app> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment