天天看點

Jsp頁面跳轉和js控制頁面跳轉的幾種方法

Jsp 椤甸?㈣煩杞?????绉??規?

1. RequestDispatcher.forward()

?ㄦ???″?ㄧ??璧蜂???褰?浣跨??orward()??Servlet engine浼???HTTP璇鋒?浠?褰?????Servlet??????JSP?闆?????涓?涓?Servlet??JSP ??????HTML??浠?涔??充???form??浜よ??.jsp,??.jsp?ㄥ?頒?forward()??瀹?????.jsp,姝ゆ??orm??浜ょ??????淇℃????b.jsp?藉??浠ヨ?峰?,???拌???ㄤ???. 浣?forward()??娉???瀹????蟲??frame??jsp??浠???浠ラ??瀹????蟲??frame??html??浠?????orward()??娉??ㄥ???㈠甫???頒???,姣? 濡?servlet?name=frank,杩??蜂?琛?,??浠ョ?搴?????杩?response.setAttribute("name",name)?ヤ??充?涓?涓? 椤甸????

??????瀹?????娴?瑙??ㄥ?闆????URL涓?????

????渚?锛???ervlet涓?杩?琛???瀹???

????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);

????}

????? ??

????? request.getRequestDispatcher("/index.jsp").forward(request, response);//杞?????ndex.jsp????? getServletConfig().getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);

????? //杞?????ndex.jsp

??????甯稿??ervlet涓?浣跨???涓???sp涓?浣跨?ㄣ??

?

2. response.sendRedirect()

?????ㄧ?ㄦ?風??娴?瑙??ㄧ??宸ヤ?,sendRedirect()??浠ュ甫???頒???,姣?濡?servlet?name=frank浼??充?涓?椤甸?????跺????浠ラ??瀹????充?????涓繪?轟?,sendRedirect()??浠ラ??瀹?????frame.??jsp??浠?

??????瀹??????ㄦ?瑙??ㄥ?闆????涓?浼??虹?伴??瀹???椤甸?㈢??URL??

????渚?锛???ervlet涓???瀹???

????public void doPost(HttpServletRequest request,HttpServletResponse response)

????????????????????????????????? throws ServletException,IOException{

????response.setContentType("text/html; charset=gb2312");

????response.sendRedirect("/index.jsp");

????}

?????變?response??jsp椤甸?㈢??????瀵矽薄锛?????sp椤甸??腑????esponse.sendRedirect()?存?ュ???伴??瀹?浣???

????娉ㄦ??锛?

????(1) 浣跨??esponse.sendRedirect?訛???????芥??HTML杈??猴?

?? ??杩?骞朵???缁?瀵圭??锛?涓??芥??HTML杈??哄?跺??????涓??芥??HTML琚????頒?娴?瑙??ㄣ??浜?瀹?涓??闆?ㄧ??server?芥??cache?哄?訛?涓?????K锛?????璇?JSP??SERVER锛?锛?杩?灏辨???崇??锛??ら??浣??抽??浜?cache锛?????浣?浣跨?ㄤ?out.flush()寮哄?跺?鋒?幫??d??ㄤ嬌??endRedirect涔???锛? ??灏?????HTML杈??轟?????璁哥????

????(2) response.sendRedirect涔???锛?搴?璇ョ揣璺?涓???eturn??

??????浠?宸茬??ラ??response.sendRedirect????杩?娴?瑙??ㄦ?ュ??杞?????锛???浠ュ?????ㄩ〉?㈠???瀹?????锛???浼???瀹??????ㄤ????㈢?朵?宸茬?瑕???杞???浜?锛??d?????杈??鴻???浠?涔???涔??????涓??????戒???涓哄???㈢??杈??哄?艱?磋漿??澶辮觸??

????姣?杈?锛?

????(1) Dispatcher.forward()??瀹瑰?ㄤ腑?у?舵????杞???锛??ㄥ?㈡?風??娴?瑙??ㄥ?闆????涓?涓?浼??劇ず?鴻漿???????闆??锛?

????(2) response.sendRedirect()????瀹??ㄧ??璺寵漿锛?娴?瑙??ㄥ?浼?寰??拌煩杞????闆??锛?骞堕???闆????璇鋒??炬?ャ??杩??鳳?浠?娴?瑙??ㄧ???闆????涓???浠ョ???拌煩杞??????炬?ュ?闆????

?????????村??楂???锛??ㄥ??????浠ユ弧瓒抽??瑕??訛?灏介??浣跨??equestDispatcher.forward()?規???

?????ㄦ??浜????典?锛?姣?濡?锛???瑕?璺寵漿?頒?涓??跺?????″?ㄤ???璧?婧?锛???蹇?椤諱嬌HttpServletResponse.sendRequest()?規???

?

3. 锛?jsp:forward page="" /锛?

????瀹???搴?灞??ㄥ??????equestDispatcher?ュ???扮??锛???姝ゅ??甯???RequestDispatcher.forward()?規????拌?般??

????濡????ㄤ?????寰?澶?杈??????㈢??杈??哄凡浣跨??插?烘弧,灏????ㄨ??哄?闆?㈡?風??,?d?璇ヨ???ュ?涓?璧蜂???杩?涓??瑰?璇ョ?瑰??娉ㄦ????

????娉ㄦ??锛?瀹?涓??芥?瑰??娴?瑙??ㄥ?闆??锛??鋒?扮??璇?浼?瀵艱?撮??澶???浜?

?

4. 淇???TTP header??Location灞??ф?ラ??瀹???

??????杩?璁劇疆?存?ヤ慨?瑰?闆?????ュ???伴〉?㈢????瀹?????

????jsp??浠朵唬??濡?涓?锛?

????锛?%

????response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

????String newLocn = "/newpath/jsa.jsp";

????response.setHeader("Location",newLocn);

????%锛?

?

5. JSP涓?瀹??闆?ㄦ??椤甸?㈠?????ュ共绉???,???ㄩ??瀹????闆???椤甸????????tml??浠朵腑锛?涓??㈢??浠g??锛?

????锛?meta http-equiv="refresh" content="300; url=target.jsp"锛?

????瀹?????涔?锛???????涔???姝e?ㄦ?瑙???椤甸?㈠?浼????ㄥ??涓?arget.html杩?涓?椤點??浠g??涓?300涓哄?鋒?扮??寤惰??堕?達?浠ョ?涓哄??浣???targer.html涓轟??寵漿????????椤??ヤ負??椤靛??涓鴻???ㄥ?鋒?版??椤點??

?????變????ワ???浠ラ??杩?setHeader?ュ???版??椤甸?㈠?????ュ共绉???,???ㄩ??瀹????闆???椤甸????浠g??锛?

????String content=stayTime+";URL="+URL;

????response.setHeader("REFRESH",content);

Js 椤甸?㈣煩杞?锛??堕〉???澶?灞?椤甸?????椤甸???

"window.location.href"??"location.href"????椤甸?㈣煩杞?

"parent.location.href"??涓?涓?灞?椤甸?㈣煩杞?

"top.location.href"????澶?灞???椤甸?㈣煩杞?

涓句?璇存??锛?

濡???A,B,C,D?芥??jsp锛?D??C??iframe锛?C??B??iframe锛?B??A??iframe锛?濡???D涓?js杩??峰??

"window.location.href"??"location.href"锛?D椤甸?㈣煩杞?

"parent.location.href"锛?C椤甸?㈣煩杞?

"top.location.href"锛?A椤甸?㈣煩杞?

濡???D椤甸??腑??form??璇?,

<form>: form??浜ゅ??D椤甸?㈣煩杞?

<form target="_blank">: form??浜ゅ??寮瑰?烘?伴〉??

<form target="_parent">: form??浜ゅ??C椤甸?㈣煩杞?

<form target="_top"> : form??浜ゅ??A椤甸?㈣煩杞?

?充?椤甸?㈠?鋒?幫?D 椤甸??腑杩??峰??锛?

"parent.location.reload();": C椤甸?㈠?鋒??锛?褰??訛?涔???浠ヤ嬌?ㄥ??绐??g?? opener 瀵矽薄?ヨ?峰??剁???g??瀵矽薄锛?window.opener.document.location.reload(); 锛?

"top.location.reload();": A椤甸?㈠?鋒??

Js ?у?堕〉?㈣煩杞?????绉??規?

绗?涓?绉?锛?

<script language="javascript" type="text/javascript">
           window.location.href="login.jsp?backurl=" target="_blank" rel="external nofollow" +window.location.href; 
    </script>
           

?绗?浜?绉?锛?

<script language="javascript">
alert("杩???");
window.history.back(-1);
   </script>
           

?绗?涓?绉?锛?

<script language="javascript">
window.navigate("top.jsp");
  </script>
           

?绗???绉?锛?

<script language="JavaScript">
          self.location='top.htm';
   </script>
           

?绗?浜?绉?锛?

<script language="javascript">
          alert("??娉?璁塊??锛?");
          top.location='xx.jsp';
   </script>
           

?绗???绉?锛?

<script type="text/javascript">
// 椤甸?㈣?ュ?ㄦ??跺??锛???璺沖?烘???if (self != top) {
	top.location = self.location;
}; 

</script>
           

?

?绗?涓?绉?锛?

??瀹?涔??堕?磋煩杞?锛??規?涓?锛?锛?

<script language="javascript">
var secs = 3; //??璁℃?剁??绉???
var URL ;
function Load(url){
URL = url;
for(var i=secs;i>=0;i--) 
{ 
   window.setTimeout('doUpdate(' + i + ')', (secs-i) * 1000); 
} 
}
function doUpdate(num) 
{ 
document.getElementById('ShowDiv').innerHTML = '灏???+num+'绉??????ㄨ煩杞??頒富椤? ;
if(num == 0) { window.location = URL; }
}
</script>
           

?

?跺????lt;body>???㈠??涓?<body 慰nl慰ad="Load('index.asp')">?? index.asp涓鴻??宸辮?璺寵漿??椤甸????

??lt;body></body>涔??村??涓?<div id="ShowDiv"></div>

??瀹?涔??堕?磋煩杞?锛??規?浜?锛?锛?

<p style="text-indent: 2em; margin-top: 30px;">
绯葷?灏???<span id="time">5</span> 绉????????ㄨ煩杞??蟲?扮???锛?濡??????借煩杞?锛?<a href="http://www.jb51.net" target="_blank" rel="external nofollow"  title="?瑰?昏?塊??">璇風?瑰??lt;/a>?? 
<script type="text/javascript">  
    delayURL();    
    function delayURL() { 
        var delay = document.getElementById("time").innerHTML;
 var t = setTimeout("delayURL()", 1000);
        if (delay > 0) {
            delay--;
            document.getElementById("time").innerHTML = delay;
        } else {
     clearTimeout(t); 
            window.location.href = "http://www.jb51.net";
        }        
    } 
</script>
           

?

繼續閱讀