Inhalt einer Tabelle als XML file mit JSP dynamisch erstellen

messmar

Erfahrenes Mitglied
Hallo zusammen,

wie kann man den Content einer Taballe (als Ergebnis) über eine JSP Datei (erreichbar via Ajax) erstellen lassen?

Ich bräuchte bitte den Startpunkt bzw. die Vorgehensweise, die Klassen etc. die man unbedingt importieren muss.

Keine Java-Klasse mit der Main-Methode, sondern nur via JSP.

Danke
Messmar
 
Das kommt ganz darauf an, wie du das handhaben willst. Es gibt OR-Mapper wie Hibernate, die dich dabei unterstützen. Es geht auch rein über JPA (z.B. mittels Eclipselink). Und es gibt natürlich noch die nicht ganz so professionelle und vor allem unkomfortable Möglichkeit, das über reines JDBC zu machen - wovon ich allerdings abrate.

Kleiner Ansatz-Punkt: eclipse + Maven + archetype:generate webapp-javaee7, dann die pom um den OR-Mapper deiner Wahl, z.B. hibernate erweitern, und los gehts.

EDIT: Und weil mir grad langweilig war und ich JSP + Servlet noch nicht so gut kenne, habe ich mir ne Übungs- und Kennen-Lern-Aufgabe verpasst. Im Anhang findest du meinen Versuch. Das Servlet /webapp-template/default liefert die Eintrage aus der embedded H2, die im Servlet da rein geschrieben werden:

Java:
package de.tutorials.java.ee.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
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.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;

import de.tutorials.java.ee.dao.GreetingsDAO;
import de.tutorials.java.ee.po.GreetingPO;

/**
* Servlet implementation class DefaultServlet
*/
@WebServlet("/DefaultServlet")
public final class DefaultServlet extends HttpServlet
{
  private static final Logger logger  = Logger
  .getLogger(DefaultServlet.class
  .getSimpleName());

  private static final long  serialVersionUID = 1L;

  private GreetingsDAO  dao;

  /**
  * @see HttpServlet#HttpServlet()
  */
  public DefaultServlet()
  {
  super();
  }

  /**
  * @see Servlet#init(ServletConfig)
  */
  @Override
  public void init(final ServletConfig config) throws ServletException
  {
  try
  {
  this.dao = new GreetingsDAO();

  final GreetingPO greeting1 = new GreetingPO();
  final GreetingPO greeting2 = new GreetingPO();
  final GreetingPO greeting3 = new GreetingPO();

  greeting1.setGreetingDate(new Date());
  greeting1.setName("saftmeister");
  greeting1.setGreetingText("Wass???? Mit JSP??? Warum nicht JSF?");

  greeting2.setGreetingDate(new Date());
  greeting2.setName("Messmar");
  greeting2.setGreetingText("Ich will halt wissen, wie es damit geht...");

  greeting3.setGreetingDate(new Date());
  greeting3.setName("saftmeister");
  greeting3.setGreetingText("Na gut, aber nur weil du so nett fragst :-)");

  this.dao.save(greeting1);
  this.dao.save(greeting2);
  this.dao.save(greeting3);
  }
  catch (final Exception ex)
  {
  logger.log(Level.SEVERE, ex.getMessage(), ex);
  }
  }

  /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
  *  response)
  */
  @Override
  protected void doGet(final HttpServletRequest request,
  final HttpServletResponse response) throws ServletException, IOException
  {
  try
  {
  response.setContentType("text/xml");

  final PrintWriter writer = response.getWriter();
  final JAXBContext context = JAXBContext.newInstance(Greetings.class);

  final Marshaller marshaller = context.createMarshaller();
  marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

  final Greetings wrapper = new Greetings(this.dao.getAll());

  marshaller.marshal(wrapper, writer);
  }
  catch (final JAXBException ex)
  {
  logger.log(Level.SEVERE, ex.getMessage(), ex);
  }

  }

  /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
  *  response)
  */
  @Override
  protected void doPost(final HttpServletRequest request,
  final HttpServletResponse response) throws ServletException, IOException
  {
  }

}

XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<greetings>
  <greeting>
  <id>1</id>
  <name>saftmeister</name>
  <greetingText>Wass???? Mit JSP??? Warum nicht JSF?</greetingText>
  <greetingDate>2014-06-19T01:40:02.175+02:00</greetingDate>
  </greeting>
  <greeting>
  <id>2</id>
  <name>Messmar</name>
  <greetingText>Ich will halt wissen, wie es damit geht...</greetingText>
  <greetingDate>2014-06-19T01:40:02.175+02:00</greetingDate>
  </greeting>
  <greeting>
  <id>3</id>
  <name>saftmeister</name>
  <greetingText>Na gut, aber nur weil du so nett fragst :-)</greetingText>
  <greetingDate>2014-06-19T01:40:02.175+02:00</greetingDate>
  </greeting>
</greetings>
 

Anhänge

  • webapp-template.tar
    80 KB · Aufrufe: 4
Zuletzt bearbeitet:
Zurück