tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
383
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von ChrisPB
    ChrisPB ChrisPB ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Ort
    PB[nrw]
    Beiträge
    34
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
    <!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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    <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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    <?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
     

  2. #2
    Avatar von ChrisPB
    ChrisPB ChrisPB ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Ort
    PB[nrw]
    Beiträge
    34
    Niemand....? Nicht mal nen Denkanstoß....?
     

  3. #3
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    also "am geschicktesten" macht man das nicht selbst sondern benutzt eine Template Engine, wie Sitemesh, Tiles & Co.:

    http://www.opensymphony.com/sitemesh/
    http://struts.apache.org/1.x/struts-tiles/


    Ansonsten:
    http://java-source.net/open-source/template-engines

    Gruß Tom
     
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  4. #4
    Avatar von ChrisPB
    ChrisPB ChrisPB ist offline Mitglied Bronze
    Registriert seit
    Jun 2006
    Ort
    PB[nrw]
    Beiträge
    34
    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?
     

  5. #5
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Ein einfacher JSP include sollte doch tun, was du willst, oder?

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 21.09.10, 12:04
  2. Antworten: 1
    Letzter Beitrag: 26.07.09, 18:53
  3. template parser+content
    Von xlanhackerx im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.01.08, 19:35
  4. Eigenes Template und dynamischer Content
    Von Nexlamar im Forum PHP
    Antworten: 1
    Letzter Beitrag: 16.10.06, 12:07
  5. externe flash datei laden in ein content laden!
    Von F-unit im Forum Flash Plattform
    Antworten: 17
    Letzter Beitrag: 14.12.04, 15:11