0

a.jspb.jsp、およびc.jspという名前の 3 つの JSP があります。

a.jspから b.jspに行きます

次に、b.jsp の次のコードはa.jsp request.getHeader("Referer")を返します

再び b.jsp からc.jspに行きます

c.jspからブラウザの戻るボタンを押してb.jspにアクセスしています。

次に、b.jsp の次のコードはa.jsp request.getHeader("Referer")を返します

c.jspが返されないのはなぜですか?

ブラウザの戻るボタンでc.jspを取得できる方法はありますか。

4

2 に答える 2

3

その理由は、ページがキャッシュされている可能性があります。

firebug を使用して http ヘッダーを確認できます。

httpリクエストヘッダーをチェックアウト

更新 1

a.jsp、b.jsp、c.jsp を使用して新しいプロジェクトを作成しました。コードは次のとおりです。

a.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8" language="java"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>a</h1>
        <a href="b.jsp">b</a><br/>
        <a href="c.jsp">c</a><br/>
        <b><%=request.getHeader("Referer")%></b>
    </body>
</html>

b.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>b</h1>
        <a href="a.jsp">a</a><br/>
        <a href="c.jsp">c</a><br/>
        <b><%=request.getHeader("Referer")%></b>
    </body>
</html>

c.jsp

<%@page contentType="text/html" pageEncoding="UTF-8" language="java"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <h1>c</h1>
        <a href="a.jsp">a</a><br/>
        <a href="b.jsp">b</a><br/>
        <b><%=request.getHeader("Referer")%></b>
    </body>
</html>

それはうまくいきます。コードを使用して新しいプロジェクトを作成し、テストできます。あなたの状況はわかりません.AJAXを使用している可能性があります.その場合、リファラーは最後のページ全体のURLのみを指定する必要があります.

于 2012-06-27T08:05:03.490 に答える
0

私が間違っていなければ、ブラウザの戻るボタンを押すと、スタックの最後のページが削除されます。つまり、ページをリクエストせずに、一番上のページを削除するだけです。これは、c から b への要求がないことを意味します。

于 2013-09-10T13:39:09.527 に答える