[JEE-Umsteiger]: Wie löst man das? (Dynamisch Content in Template laden)

ChrisPB

Mitglied
Hallo Community,

ich hab bisher nur mit HTML in Verbindung mit PHP gearbeitet. Sprich, wenn ich eine Navigation habe mit den Navi-Punkten Link1, Link2 und Link3, habe ich verlinkt und eine Variable an die URL angehängt. Diese habe ich dann mit einem try-catch abgefragt und dementsprechend die passende php-Datei includet (die dann dynamischen Code generiert hat).

Jetzt habe ich mich in JEE eingearbeitet und bin an meinem ersten Servlet. Ich kann mir Kleinigkeiten anzeigen lassen, aber es langt noch nicht dazu, dass ich sagen kann "Hey, ich verstehe die Strukturen von JEE". Es würde mir sehr viel weiterhelfen, wenn jemand folgendes beispielhaft lösen könnte.

Szenario:

- Ich hab ein Template. Oben Header, unten Footer, links ne Navi und rechts der Contentbereich.

Im Contentbereich soll je nach dem was angeklickt worden ist (in der Navi) ein anderes Servlet geladen werden.

Meine Dateihierarchie

SampleApplication
---src
+----org.eclipse.wtp.tutorial
___+---SnoopServlet.java

---WebContent
+----html
___+---default.css
___+---index.html

+----images
___+---image1.jpg
___+---image2.jpg

+----jsp
___+---showBrowser.jpg

+----META-INF

+----WEB-INF
___+---lib
___+---web.xml

SnoopServlet.java
Code:
package org.eclipse.wtp.tutorial;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SnoopServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String userAgent =  req.getHeader("user-agent");
		String clientBrowser =  "Not known!";	
		if( userAgent != null)
			clientBrowser = userAgent;
		req.setAttribute("client.browser",clientBrowser );
		req.getRequestDispatcher("/jsp/showBrowser.jsp").forward(req,resp);
	}
}

index.html
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>Sample Application</title>
	<link href="html/default.css" rel="stylesheet" type="text/css">

</head>
<body>

<div id="header"><div id="headimage"></div></div>

<div id="left">
	<a href="..">Link 1</a>
	<a href="..">Link 2</a>
	<a href="..">Link 3</a>
</div>

<div id="center"><div class="contentpadding">
	Content <!-- Hier soll alles reingeladen werden -->
</div></div>

<div id="right"><div class="contentpadding">
	Right Sidebar
</div></div>

<div id="footer"></div>

</body>

</html>


showBrowser.jsp
Code:
<html>
<head><title>Show Browser</title></head>
<body>
<table border="1">
	<tr> <th>Header</th><th>Value</th>
	</tr>
	<tr>
		<td>user-agent</td>
		<td><%= request.getAttribute("client.browser")%></td>
	</tr>
</table>
</body>
</html>

web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SampleApplication</display-name>
  <welcome-file-list>
    <welcome-file>html/index.html</welcome-file>
    <welcome-file>html/index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>html/default.html</welcome-file>
    <welcome-file>html/default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>Snoop Servlet</servlet-name>
    <servlet-class>org.eclipse.wtp.tutorial.SnoopServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Snoop Servlet</servlet-name>
    <url-pattern>/snoop/*</url-pattern>
  </servlet-mapping>
</web-app>

Wenn ich im Browser localhost:8080/SampleApplication eingebe, öffnet sich die index.html. Soweit so gut. Gebe ich im Browser localhost:8080/SampleApplication/snoop ein, öffnet sich die Info welchen Browser ich benutze. Das soll aber in der index.html im Contentbereich geschehen.

Wie macht man das am geschicktesten? :)

Viele Grüße,

Chris
 
Danke für deine Antwort, aber das beantwortet mir trotzdem nicht meine Frage. Ich stell die Frage um den Vorgang zu verstehen. Um genau diese Problemstellung zu bewältigen. Es "anders" zu machen ist da nicht der Sinn der Sache.

Könntest du mir denn dennoch weiterhelfen, selbst wenn's ungeschickt wäre? :)
 

Neue Beiträge

Zurück