Ernst: Einfache Frage zu HTML-Seite (mit iframe) und Servlet

Beitrag lesen

Hallo allerseits,

Folgendes einfache Programm funktioniert einwandfrei (es wird laufend eine Website aktualisiert, man merkt im Browser, dass laufend "Traffic" ist), doch verstehe ich nicht warum.

a)
Von einem Webbrowser aus rufe ich über die Eingabe (habe Tomcat auf dem gleichen Rechner laufen):
http://localhost:8080/aktualisieren1/basic.html
die Datei basic.html auf, die folgendem Inhalt hat:
----------------------------------------------------------
<html>
<head>
<body>
Dies ist ein Fenster, in dem etwas gezeigt wird <p>
<iframe src="/aktualisieren1/ServletAktual1" name="chatbox">
</iframe>
</body>
</head>
</html>
----------------------------------------------------------

b)
Das Servlet ServletAktual1 hat folgenden Inhalt:
----------------------------------------------------------
package packaktual;
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class ServletAktual1 extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

out.println("<html>");
out.println("<head>");
out.println("<title>ServletAktual1</title>");
out.println("<meta http-equiv="refresh" content="0; URL=">");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet MyServlet at " + request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");

out.close();
}

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

public String getServletInfo() {
return "Short description";
}
}
----------------------------------------------------------

  1. Problem und Frage:
    Die Zeile in basic.html
    <iframe src="/aktualisieren1/ServletAktual1" name="chatbox">
    veranlasst, dass in einen iframe, also einem Unterfenster der Website der HTML-Code ausgegeben wird, der durch Ausführung des Programms ServletAktual1 an den Browser gesendet wird.
    Also wird auch u.a. durch
    out.println("<meta http-equiv="refresh" content="0; URL=">");
    die Zeile
    <meta http-equiv=refresh content=0; URL=>
    in iframe reinkopiert.
    Diese wird durch den Browser ausgeführt, was wiederum bedeutet, dass die durch URL=
    angegebene Website, d.h. deren HTML-Text ausgeführt wird.
    Da aber nach URL= nichts kommt, gehe ich davon aus, dass dies bedeutet, dass der HTML-Text der aktuellen Website ausgeführt werden soll.
    Aber was ist die aktuelle Website??
    Ist es die Seite basic.html, oder nur das iframe davon (aber welche IP-Adresse hat iframe)?
    Gibt es dazu eine Regelung und wie funktioniert diese?

mfg
Ernst