Request und Response Objekte
Request und Response können Sie in JSPs nutzen. Wie haben Zugriff auf alle Informationen, die im Request angegeben sind, und können die Response nach Ihren Wünschen verändern. Wie es sich für eine objektorientierte Sprache wie Java gehört, werden Ihnen diese Informationen als Objekte bereitgestellt. Sie heißen praktischerweise request und response und sind in der JSP genau wie das Objekt out ohne weiteres verfügbar.
Betrachten wir zunächst den Request:
Bitte öffnen Sie Ihre Dokumentation zur Servlet-Api, das ist die Dokumentation, die Tomcat direkt mitgebracht hat, wählen Sie das Package javax.servlet.http und daraus das Interface HttpServletRequest.
Wie Sie sehen ist HttpServletRequest keine Klasse, sondern ein Interface. Das bedeutet, dass HttpServletRequest nur Methoden auflistet, die der Server zur Verfügung stellen soll, es aber den Programmieren von Tomcat überlässt, eine Klasse bereitzustellen, die diese Methoden auch ausführt.
Wie Sie ebenfalls aus der Dokumentation entnehmen, ist HttpServletRequest von javax.servlet.ServletRequest abgeleitet. Sie können daher auch alle Methoden dieses Interfaces benutzen.
Das request-Objekt benutzen Sie wie jedes andere Java Objekt, indem Sie seine Methoden aufrufen. Der folgende Code zeigt Ihnen beispielsweise den HttpHeader "User-Agent" an:
Code: /bsp/kap1/request.jsp
<%=request.getHeader("headerName")%>
Die aktuelle URL erfahren Sie durch:
Code: /bsp/kap1/request.jsp
<%=request.getRequestURL().toString() %>
Die anliegende JSP request.jsp stellt Ihnen die wichtigsten Methoden des request Objekts vor. Bitte öffnen Sie die Datei in den Browser und vollziehen Sie die Methodenaufrufe anhand der Dokumentation nach.
Die Response:
Das response Object ist vom Typ javax.servlet.http.HttpServletResonse und von javax.servlet.ServletResponse abgeleitet. Es steht ebenfalls ohne weiteres in der JSP zur Verfügung.
Einige nützliche Methoden des Response Objekts:
setContentType(..) setzt den Content Type und würde den den Browser veranlassen, die Seite als einfachen Text anzuzeigen, wenn Sie statt "text/html" z.B. "text/plain" angeben. (Wird von einigen MS Internet Explorer Versionen ignoriert, wenn HTML-Tags in der Seite sind.)
Code: /bsp/kap1/response_contenttype.jsp
<% response.setContentType("text/plain"); %>
Hallo, ich bin eine text/plain jsp auf <%=request.getRequestURL() %>
encodeURL("..") schreibt die Session-Id auf einen Link, wenn der Browser keine Cookies unterstützt. Diese Methode sollten Sie stets benutzen, wenn Sie Sessions verwenden.
Code: /bsp/kap1/response_redir.jsp
response.sendRedirect("response_redir_back.jsp");
addCookie(javax.servlet.http.Cookie) ermöglicht es, Cookies auf dem Clientbrowser zu setzen:
/bsp/kap1/response_cookie_set.jsp
<%
Cookie aCookie=new Cookie("jspkurs","Mein Cookie vom: "+new java.util.Date());
response.addCookie(aCookie) ;
%>
sendError(..) Schickt eine Fehlermeldung an den Browser.
/bsp/kap1/response_senderror.jsp
response.sendError(javax.servlet.http.HttpServletResponse.SC_FORBIDDEN,"Wir streiken..");
Studieren Sie die Beispiele aufmerksam, um die Wirkung der HTTP Header nachzuvollziehen.
Tipp:
Lösen Sie nun die Aufgaben browserweiche.jsp und cookie.jsp