Skip to content

Instantly share code, notes, and snippets.

@stefanboehler
Created July 5, 2011 10:02
Show Gist options
  • Save stefanboehler/1064590 to your computer and use it in GitHub Desktop.
Save stefanboehler/1064590 to your computer and use it in GitHub Desktop.
Zusammengefasste Aufgaben 8 bis 11
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;
}
}
<%@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>
<%@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>
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;
}
}
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());
}
}
<%@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>
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");
}
}
}
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;
}
}
<%@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>
<?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