ホームページ  >  記事  >  Java  >  Javaサーブレットでのページジャンプのいくつかのメソッド

Javaサーブレットでのページジャンプのいくつかのメソッド

巴扎黑
巴扎黑オリジナル
2017-05-21 14:13:061635ブラウズ

java サーブレット ページをジャンプするにはいくつかの方法があります。必要な場合は、

サーブレットを参照してください。

もちろん、サーブレットでは、一般的なジャンプは doGet、doPost、およびその他のメソッドで発生します。

1)リダイレクトメソッド

response.sendRedirect("/a.jsp");

ページのパスは相対パスです。 sendRedirect は、次のような任意のページにジャンプできます。必ずしもこの Web アプリケーションに限定されるわけではありません。

response.sendRedirect("http://www.jb51.net");

ジャンプ後にブラウザのアドレス バーが変わります。

この方法で値を渡したい場合は、パラメータを URL に含めるか、セッションに置くことしかできません。request.setAttribute を使用して渡すことはできません。

2) forwardメソッド

RequestDispatcherdispatcher = request.getRequestDispatcher("/a.jsp");

dispatcher .forward(request,response);

ページのパスは相対パスです。 forward メソッドは、この Web アプリケーション内のページにのみジャンプできます。

ブラウザのアドレスバーはジャンプ後も変化しません。

このメソッドを使用してジャンプすると、パラメーター付きの URL、セッション、request.setAttribute

JSP:

1) response.sendRedirect();

、およびサーブレットの response.sendRedirect( ) の 3 つのメソッドを使用して値を渡すことができます。同じ方法。このステートメントの前に

Out.flush() を使用することはできません。ある場合は、例外が発生します:

java.lang.IllegalStateException: データが client.

at com にコミットされた後は、sendRedirect() を実行できません。 caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)

...

ジャンプ後にブラウザのアドレスバーが変わります

別のホストにジャンプしたい場合は、ジャンプ後に次のステートメントを実行しますこのステートメントは続行します 実行は新しいスレッドを開くのと似ていますが、応答に対する操作は無意味です

同じホストにジャンプしたい場合、このステートメントの後のステートメントは実行が完了するまでジャンプしません

2)このステートメントの前に、response.setHeader(" Location","");

out.flush() が存在する場合、ページはジャンプしません。

ジャンプ後にブラウザのアドレスバーが変化します

ジャンプは、このステートメントに続くステートメントが実行された後にのみ発生します

以上がJavaサーブレットでのページジャンプのいくつかのメソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。