servlet iii java webanwendung webcontainer web.xml weiterleitung von requests cookies
TRANSCRIPT
![Page 1: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/1.jpg)
Servlet III
Java Webanwendung
Webcontainer
Web.xml
Weiterleitung von Requests
Cookies
![Page 2: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/2.jpg)
Struktur einer Webanwendung
WurzelWebanwendung
Klassen Files
jar Files
![Page 3: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/3.jpg)
Eigene Anwendung
eigeneFehlermeldung
Passwort File
![Page 4: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/4.jpg)
Eigene Anwendung im JBuilder
WebanwendungWAR FileBeschreibung der
Anwendung
Servlet KlassenStatische SeitenFehlerseitePasswörter
![Page 5: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/5.jpg)
![Page 6: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/6.jpg)
Web Application Archive File
• Das WAR-File verpackt ein komplette Webanwendung.
• Das WEB-INF Verzeichnis ist speziell, es enthält Konfigurationen und class files für die Webanwendung.
• Format = jar-File
WAR-File
![Page 7: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/7.jpg)
Installation von Webanwendungen
Eine Webanwendung wird auf einem Server installiert, indem das WAR-File in den webapp Ordner kopiert wird.
Tomcat 4.0 http://jakarta.apache.org
WAR-File
![Page 8: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/8.jpg)
Container
Servlet Container
Webserver
Request
Response
Context
Session
eigeneServlets
![Page 9: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/9.jpg)
Konfigurationdatei für den Servlet Container
• ServletContext Init Parameters• Servlet Declaration• Servlet Mappings• Welcome File list• Error Pages• MIME Type Mappings• Session Configuration• Application Lifecyle Listener classes• Filter Definitions and Filter Mappings
![Page 10: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/10.jpg)
web.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app> <servlet> <servlet-name>login</servlet-name> <servlet-class>servletiii.protectedpage</servlet-class> <init-param> <param-name>passwordFile</param-name> <param-value>pw.properties</param-value> </init-param> </servlet>
![Page 11: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/11.jpg)
web.xml
<servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>*.log</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>wetter1</servlet-name> <url-pattern>/wetter/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>wetter2</servlet-name> <url-pattern>/wetter2</url-pattern> </servlet-mapping>
![Page 12: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/12.jpg)
web.xml
<welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list> <error-page> <error-code>404</error-code> <location>/404.html</location> </error-page></web-app>
![Page 13: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/13.jpg)
Seiten weiterleiten
out.println(“<a href=\“http://www.unibas.ch\“> Uni Basel </a>);
res.setHeader(“Refresh“,“3“);res.setHeader(“Refresh“,“3; URL=http://www.unibas.ch“);
res.setStatus(res.SC_MOVED_TEMPORARILY);res.setHeader(“Location“,“http://www.new.site“);
res.sendRedirect(“http://www.new.site“);
RFC 2616 Hypertext Transfer Protocol (HTTP/1.1)http://www.rfc-editor.org
![Page 14: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/14.jpg)
res.sendRedirect
Servlet: formular1…res.sendRedirect(“ant2.html“);…
http://..formular1
ResponseStatus 302Location ant2.html
Get Request
CLIENT SERVER
http://..ant2.html Get Requestant2.html<HTML>…</HTML>
Response
![Page 15: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/15.jpg)
public class randomforward2 extends HttpServlet { private static final String CONTENT_TYPE = "text/html"; private Vector wetter = new Vector(); Random random = new Random(); /**Initialize global variables*/ public void init() throws ServletException { wetter.add("/html/gut.html"); wetter.add("/html/schlecht.html"); wetter.add("/html/nebel.html"); wetter.add("/html/kalt.html"); } /**Process the HTTP Get request*/ public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException { res.setContentType(CONTENT_TYPE); PrintWriter out = res.getWriter();
int index = Math.abs(random.nextInt())% wetter.size(); String go = (String)wetter.elementAt(index);
![Page 16: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/16.jpg)
// Methode 1 //res.sendRedirect(req.getContextPath()+go); //res.flushBuffer();
// Methode 2 //res.setStatus(res.SC_MOVED_TEMPORARILY); //res.setHeader("Location",req.getContextPath()+go); //res.flushBuffer();
// Methode 3 String dummy = "3; URL="+req.getContextPath()+go; res.setHeader("Refresh",dummy); res.flushBuffer();
out.println("<html><head><title>randomforward</title></head>"); out.println("<body>Hierhin kommen Sie nicht</body></html>");…
![Page 17: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/17.jpg)
RequestDispatcher rd;
rd = getServletContext(). \\
getRequestDispatcher(“/display.html“);
rd.forward(req,res);
RequestDispatcher disp = req.getRequestDispatcher("/display.html");
disp.forward(req, res);
![Page 18: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/18.jpg)
res.sendRedirect
Servlet: formular1…res.sendRedirect(“ant2.html“);…
http://..formular1 Get Request
CLIENT SERVER
ant2.html<HTML>…</HTML>
Response
![Page 19: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/19.jpg)
Was ist ein Cookie?Ein Cokie sind kleine
Textinformationvom Server zum Client gesendetJedes Mal, wenn der Browser die
Seite wieder besucht wird das Cookie geschickt.
Cookies ermöglichen anhaltende (persistent) Sitzungen via http
RFC 2109
Cookies
![Page 20: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/20.jpg)
Vorteile?Identifizierung eine UsersPersonifizierte Homepages,
Portale, User Profiles Automatisches Login
Cookies
![Page 21: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/21.jpg)
![Page 22: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/22.jpg)
Servlet Cookie APIErzeugen mit:
c = new Cookie(name, value)
Verschieden Attribute:
public String getComment()
public void setComment(String comment)
public String getDomain()
public void setDomain(String domainPattern)
c.setDomain(.unibas.ch)
Cookies
![Page 23: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/23.jpg)
Servlet Cookie APIpublic String getMaxAge()
public void setMaxAge(int lifetime in Sekunden)
lifetime < 0 das Cookie nicht speichern
lifetime = 0 das Cookie von der Disk löschen
public String getPath()
public void setPath(String path)
path =“/ “ Alle Seiten des Servers erhalten das Cookie
path = “/ifi/user “ Bei allen Seiten unterhalb dieses Pfades schickt der User-Agent das Cookie
Cookies
![Page 24: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/24.jpg)
Beispiel SetCookiespackage cookies;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SetCookies extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
for(int i=0; i<3; i++) {
// Default maxAge is -1, indicating cookie
// applies only to current browsing session.
Cookie cookie = new Cookie("Session-Cookie-" + i,
"Cookie-Value-S" + i);
response.addCookie(cookie);
Cookies
![Page 25: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/25.jpg)
Beispiel SetCookies
cookie = new Cookie("Persistent-Cookie-" + i,
"Cookie-Value-P" + i);
// Cookie is valid for an hour, regardless of whether
// user quits browser, reboots computer, or whatever.
cookie.setMaxAge(3600);
response.addCookie(cookie);
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Setting Cookies";
Cookies
![Page 26: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/26.jpg)
Beispiel SetCookiesout.println (ServletUtilities.headWithTitle(title) +
"<BODY BGCOLOR=\"#FDF5E6\">\n" +
"<H1 ALIGN=\"CENTER\">" + title + "</H1>\n" +
"There are six cookies associated with this page.\n" +
"To see them, visit the\n" +
"<A HREF=\"/servlet/cookies.ShowCookies\">\n" +
"<CODE>ShowCookies</CODE> servlet</A>.\n" +"<P>\n" +
"Three of the cookies are associated only with the\n" +
"current session, while three are persistent.\n" +
"Quit the browser, restart, and return to the\n" +
"<CODE>ShowCookies</CODE> servlet to verify that\n" +
"the three long-lived ones persist across sessions.\n" +
"</BODY></HTML>");
}
}
Cookies
![Page 27: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/27.jpg)
Praktikum
Kundenangaben mit PW Abfrage:
1. http Passwortabfrage
2. Formular mit Passwortabfrage
3. Eingabe von weiteren Daten
4. Alle Daten anzeigen
5. Eingabe von weiteren Daten
6. Cookie für AutoLogin
7. Möglichkeit das Cookie zu löschen
![Page 28: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/28.jpg)
3.) Eingabe von Daten
Ihr Job
1.)
4.) Anzeige der Daten2.)
![Page 29: Servlet III Java Webanwendung Webcontainer Web.xml Weiterleitung von Requests Cookies](https://reader035.vdocuments.pub/reader035/viewer/2022062417/55204d7149795902118c415f/html5/thumbnails/29.jpg)