Hallo zusammen,
ich habe folgende index.jsp
Und dieses Servlet:
Sobald ich auf den "suchen" button klicke, wird mir vom GlassFish folgender Fehler geschmissen:
Hat jemand eine Idee, woran das liegen kann?
ich habe folgende index.jsp
HTML:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!doctype html>
<html>
<head>
<base href="${pageContext.request.requestURI} }" />
<meta charset="utf-8">
<title>Hauptseite</title>
<script src="/TestRW/JavaScript/DatumVergleichen.js"></script>
<link rel="stylesheet" type="text/css" href="../Stylesheets/style.css" />
</head>
<body>
<!-- https://kodejava.org/how-do-i-include-a-page-fragment-into-jsp/-->
<div id="header">
<%@ include file="header.jspf"%>
</div>
<main class="site-main">
<section>
<h2>Wann wollen Sie Ihr Traumauto abholen?</h2>
<form name="date-form" action="../AutoAngebotServlet" method="GET">
<label>Abholzeitpunkt:</label> <input type="date" name="datum"
id="datum" value="" required /> <label>Rückgabzeitpunkt:</label> <input
type="date" name="datum2" id="datum2" value="" required /> <label>
Fahrzeugtyp:</label>
<!-- https://www.w3schools.com/tags/tag_select.asp -->
<select name="fahrzeugtyp">
<option value="">Alle</option>
<option value="Carbio">Cabrio</option>
<option value="Limousine">Limousine</option>
<option value="Kombi">Kombi</option>
<option value="Oldtimer">Oldtimer</option>
</select>
<details>
<summary> Detailsuche </summary>
<p>
Marke:<input name="marke" type="text" size="20" maxlength="20">
</p>
<p>
Modell:<input name="modell" type="text" size="20" maxlength="20">
</p>
<label> Gertiebe:</label>
<!-- https://www.w3schools.com/tags/tag_select.asp -->
<select name="getriebe">
<option value="">Alle</option>
<option value="Automatik">Automatik</option>
<option value="Manuell">Manuell</option>
</select>
<br>
<label> Treibstoffart:</label>
<!-- https://www.w3schools.com/tags/tag_select.asp -->
<select name="treibstoff">
<option value="">Alle</option>
<option value="alle">Alle</option>
<option value="Benzin">Benzin</option>
<option value="Diesel">Diesel</option>
<option value="Elektro">Elektro</option>
</select>
<p>
Leistung ab:<input name="leistung" type="text" size="4"
maxlength="4">PS
</p>
</details>
<button name="submit" type="submit" id="suchen">Suchen</button>
</form>
<h4>Ihre Vorteile:</h4>
<ul>
<li>Ein Auto mit Stil</li>
<li>Günstige Mengenrabatte</li>
<li>Fahrvergnügen</li>
</ul>
</section>
</main>
<!-- https://kodejava.org/how-do-i-include-a-page-fragment-into-jsp/-->
<div id="footer">
<%@ include file="footer.jspf"%>
</div>
</body>
</html>
Und dieses Servlet:
Java:
package servlets;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import beans.Auto;
import beans.Zeitraum;
/**
* Servlet implementation class AutoportfolioServlet
*/
@MultipartConfig(maxFileSize = 1024 * 1024 * 4, maxRequestSize = 1024 * 1024 * 4
* 5, location = "/tmp", fileSizeThreshold = 1024 * 1024)
@WebServlet("/AutoAngebotServlet")
public class AutoAngebotServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Resource(lookup = "jdbc/MyTHIPool")
private DataSource ds;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Servlet zur Entgegennahme von Formularinhalten, Lesen der Daten in
// einer DB und Generierung
// eines Beans zur Weitergabe der Formulardaten an eine JSP
request.setCharacterEncoding("UTF-8"); // In diesem Format erwartet das
// Servlet jetzt die
// Formulardaten
String datumAnfang = request.getParameter("datum");
String datumEnde = request.getParameter("datum2");
Zeitraum zeitraum = new Zeitraum();
zeitraum.setStartDatum(datumAnfang);
zeitraum.setEndDatum(datumEnde);
List<Auto> autos = this.search(response);
request.setAttribute("autos", autos);
request.setAttribute("zeitraum", zeitraum);
request.getRequestDispatcher("html/autoangebot.jsp").forward(request, response);
}
private List<Auto> search(HttpServletResponse response) throws ServletException {
List<Auto> autos = new ArrayList<>();
// DB-Zugriff
try (Connection con = ds.getConnection();
// PreparedStatement pstmt = con.prepareStatement("SELECT KID,
// Vorname, Nachname, Geburtsdatum, Email, Telefon, Land, PLZ,
// Ort, Strasse, NR, PersonNr, FuehrerscheinNr FROM kunde")) {
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM auto")) {
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
Auto auto = new Auto();
auto.setAutoid(Integer.valueOf(rs.getInt("AutoID")));
auto.setPreis(Double.valueOf(rs.getDouble("Preis")));
auto.setAutomarke(rs.getString("Automarke"));
auto.setModell(rs.getString("Modell"));
auto.setAutotyp(rs.getString("Autotyp"));
auto.setZulassungsdatum(rs.getString("Zulassungsdatum"));
auto.setTreibstoffart(rs.getString("Treibstoffart"));
auto.setKilometerstand(Integer.valueOf(rs.getString("Kilometerstand")));
auto.setFahrzeugnummer(rs.getString("Fahrzeugnummer"));
auto.setGetriebe(rs.getString("Getriebe"));
auto.setLeistung(rs.getString("Leistung"));
auto.setFarbe(rs.getString("Farbe"));
auto.setAutostatus(rs.getString("Autostatus"));
autos.add(auto);
} // while rs.next()
}
} catch (Exception ex) {
throw new ServletException(ex.getMessage());
}
return autos;
}
}
Sobald ich auf den "suchen" button klicke, wird mir vom GlassFish folgender Fehler geschmissen:
Code:
javax.servlet.ServletException: Name is null
Hat jemand eine Idee, woran das liegen kann?