JSPページジャンプの6つの方法

3162 ワード

  •  RequestDispatcher.forward()はサーバ側で機能し、forward()を使用すると、現在のサーブレットor JSPから別のサーブレット、JSPまたは通常のHTMLファイル、すなわちあなたのformがa.jspにコミットされ、a.jspでforward()がb.jspにリダイレクトされ、formがコミットしたすべての情報がb.jspで取得され、パラメータが自動的に転送されます.しかしforward()はframeのあるjspファイルにリダイレクトすることができず、frameのあるhtmlファイルにリダイレクトすることができ、forward()はservletなどのパラメータを後ろに持って渡すことができません.name=frank、これではだめです.プログラム内でresponseを通過することができます.setAttribute(「name」,name)は、次のページに渡されます.リダイレクト後ブラウザアドレスバーURLは変わらず、通常servletで使用され、jspでは使用されません.例:servletでリダイレクト
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
    {
    	response.setContentType("text/html; charset=gb2312");
    	ServletContext sc = getServletContext();
    	RequestDispatcher rd = null;
    	rd = sc.getRequestDispatcher("/index.jsp");
    	//     
    	rd.forward(request, response);
    }
  •  response.sendRedirect()はユーザーのブラウザ側で動作し、sendRedirect()はservletなどのパラメータを持って渡すことができます.name=frankは次のページに転送され、異なるホストにリダイレクトできます.sendRedirect()はframeのあるjspファイルにリダイレクトできます.リダイレクトするとブラウザのアドレスバーにリダイレクトページのURLが表示されます.例:servletで
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException
    {
    	response.setContentType("text/html; charset=gb2312");
    	response.sendRedirect("/index.jsp");
    }
    にリダイレクトするには、次の点に注意してください.
  • responseを使用する.sendRedirectの場合、前にHTML出力はありません.これは絶対的なものではなく、HTML出力があってはいけないということは、実はHTMLがブラウザに送られてはいけないということです.実際、現在のserverにはcacheメカニズムがあり、一般的に8 K(JSP SERVERという)で行われています.これは、cacheを閉じたり、outを使用したりしない限りを意味します.flush()は強制的にリフレッシュされ、sendRedirectを使用する前に、少量のHTML出力も許可されます.
  • esponse.sendRedirectの後、returnに続くはずです.我々は知ってるsendRedirectはブラウザで転向するので,ページ処理が完了した後にのみ実際の動作が行われる.あなたがすでに転向しなければならない以上、後の出力には何の意味がありますか?また、後の出力でステアリングが失敗する可能性があります.
  • Dispatcher.forward()はコンテナ内の制御権の転向であり,クライアントブラウザのアドレスバーに転向後のアドレスは表示されない.
  • response.sendRedirect()は完全なジャンプであり,ブラウザはジャンプのアドレスを取得し,要求リンクを再送信する.

  • その下位部分はRequestDispatcherによって実現されるので、RequestDispatcherを有する.forward()メソッドの印.以前に多くの出力があり、前の出力がバッファをいっぱいにしてクライアントに自動的に出力された場合、文は機能しません.この点は特に注意してください.また、ブラウザのアドレスを変更することはできません.リフレッシュすると、
  • が繰り返しコミットされます.
  • HTTPヘッダのLocation属性を変更してダイレクト変更アドレスバーを設定することでページのリダイレクトを実現する.jspファイルコードは、
    <%
    	response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
    	String newLocn = "/newpath/jsa.jsp";
    	response.setHeader("Location", newLocn);
    %>
  • JSPでは、あるページに数秒滞在する後、htmlファイルに自動的に別のページにリダイレクトされ、以下のコード:は、5分後に閲覧中のページが自動的にtargetになることを意味する.htmlというページです.コード中の300はリフレッシュの遅延時間であり、秒単位である.targer.htmlはあなたが転向したいターゲットページで、このページであれば自動的にこのページをリフレッシュします.以上より,setHeaderによりあるページが数秒滞在した後,自動的に別のページにリダイレクトできることが分かった.キーコード:
    String content = stayTime + ";URL=" + URL;
    response.setHeader("REFRESH", content);
  • Javascriptで
    <script type="text/javascript">
    <!--
    	window.location.href = "url";
    -->
    </script>
  • を実現