Custom-header nicht eingefügt in der Anfrage im servlet
Es ist ein thrird-party-app, die benötigt, um Informationen über benutzerdefinierte http-Header, also schrieb ich ein einfaches test-app erstellt, die diese Header und leitet dann auf eine Seite, die listet alle Kopfzeilen.
Header-Erzeugung von servlet-snippet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
response.setHeader("cust-header", "cust-val");
response.sendRedirect("header.jsp");
}
Auf der anderen Seite, der relevante code aus dem header.jsp ist:
<%
Enumeration enumeration = request.getHeaderNames();
while (enumeration.hasMoreElements()) {
String string = (String)enumeration.nextElement();
out.println("<font size = 6>" +string +": " + request.getHeader(string)+ "</font><br>");
}
%>
Zeigt, dass der folgende Header:
Host: localhost:9082
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; es-ES; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost:9082/HdrTest/login.jsp
Cookie: JSESSIONID=0000tubMmZOXDyuM4X9RmaYYTg4:-1
Als wenn der eigene Kopf wurde nie eingesetzt. Wie kann ich es beheben ?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit einem redirect Sie sind im Grunde beauftragt der client (der webbrowser), um das Feuer einer Marke neue HTTP-Anforderung. Eine Marke neue Anforderung bedeutet auch eine BRANDNEUE Antwort. Ersetzen Sie es durch ein vorwärts:
Oder wenn Sie wirklich wollen, um es auf dem umgeleiteten Anfrage, dann erstellen Sie eine
Filter
was ist abgebildet auf/header.jsp
und ändert die Kopfzeile entsprechend.Beachten Sie auch, dass Sie die Anzeige der Anfrage Header in der
header.jsp
statt Antwort Header. Da es keine direkte API verfügbar, um die Anzeige der Antwort-Header, die Sie möchten, zu untersuchen, Ihnen die Verwendung eines externen HTTP-header-sniffing-tool wie Firebug (die Net panel) oder Fiddler.request
überschriften stattresponse
Header. Ich würde vorschlagen, zu verwenden Firebug, um Sie zu überprüfen.