Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Servlet III Java Webanwendung Webcontainer Web.xml

Ähnliche Präsentationen


Präsentation zum Thema: "Servlet III Java Webanwendung Webcontainer Web.xml"—  Präsentation transkript:

1 Servlet III Java Webanwendung Webcontainer Web.xml
Weiterleitung von Requests Cookies

2 Struktur einer Webanwendung
Wurzel Webanwendung Klassen Files jar Files

3 Eigene Anwendung eigene Fehlermeldung Passwort File

4 Eigene Anwendung im JBuilder
Webanwendung WAR File Beschreibung der Anwendung Servlet Klassen Statische Seiten Fehlerseite Passwörter

5

6 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

7 Installation von Webanwendungen
Eine Webanwendung wird auf einem Server installiert, indem das WAR-File in den webapp Ordner kopiert wird. Tomcat 4.0 WAR-File

8 Container Webserver Servlet Container Context Request eigene Servlets
Session Response

9 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

10 web.xml <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" " <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>

11 web.xml <servlet-mapping>
<servlet-name>login</servlet-name> <url-pattern>*.log</url-pattern> </servlet-mapping> <servlet-name>wetter1</servlet-name> <url-pattern>/wetter/*</url-pattern> <servlet-name>wetter2</servlet-name> <url-pattern>/wetter2</url-pattern>

12 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>

13 Seiten weiterleiten res.sendRedirect(“http://www.new.site“);
out.println(“<a href=\“ Uni Basel </a>); res.setHeader(“Refresh“,“3“); res.setHeader(“Refresh“,“3; URL= res.setStatus(res.SC_MOVED_TEMPORARILY); res.setHeader(“Location“,“ res.sendRedirect(“ RFC 2616 Hypertext Transfer Protocol (HTTP/1.1)

14 res.sendRedirect CLIENT SERVER Get Request http://..formular1 Response
Servlet: formular1 res.sendRedirect(“ant2.html“); Response Status 302 Location ant2.html ant2.html <HTML> </HTML> Get Request Response

15 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);

16 // Methode 1 //res.sendRedirect(req.getContextPath()+go); //res.flushBuffer(); // Methode 2 //res.setStatus(res.SC_MOVED_TEMPORARILY); //res.setHeader("Location",req.getContextPath()+go); // 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>");

17 RequestDispatcher rd;
rd = getServletContext(). \\ getRequestDispatcher(“/display.html“); rd.forward(req,res); RequestDispatcher disp = req.getRequestDispatcher("/display.html"); disp.forward(req, res);

18 res.sendRedirect CLIENT SERVER Get Request http://..formular1 Response
Servlet: formular1 res.sendRedirect(“ant2.html“); ant2.html <HTML> </HTML> Response

19 Was ist ein Cookie? Cookies Ein Cokie sind kleine Textinformation
vom Server zum Client gesendet Jedes Mal, wenn der Browser die Seite wieder besucht wird das Cookie geschickt. Cookies ermöglichen anhaltende (persistent) Sitzungen via http RFC 2109 Cookies

20 Vorteile? Cookies Identifizierung eine Users
Personifizierte Homepages, Portale, User Profiles Automatisches Login Cookies

21

22 Servlet Cookie API Cookies Erzeugen 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

23 Servlet Cookie API Cookies public 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

24 Beispiel SetCookies Cookies package 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

25 Beispiel SetCookies Cookies
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

26 Beispiel SetCookies Cookies
out.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

27 Praktikum Kundenangaben mit PW Abfrage: http Passwortabfrage
Formular mit Passwortabfrage Eingabe von weiteren Daten Alle Daten anzeigen Cookie für AutoLogin Möglichkeit das Cookie zu löschen

28 Ihr Job 1.) 3.) Eingabe von Daten 2.) 4.) Anzeige der Daten

29


Herunterladen ppt "Servlet III Java Webanwendung Webcontainer Web.xml"

Ähnliche Präsentationen


Google-Anzeigen