欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java重定向跳轉代碼,重定向代碼實現(xiàn)

關于javaweb重定向問題

轉發(fā)和重定向的區(qū)別

在四方臺等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計制作、成都網(wǎng)站建設 網(wǎng)站設計制作按需搭建網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站建設,四方臺網(wǎng)站建設費用合理。

重定向response.sendRedirect("success.jsp");

轉發(fā):request.getRequestDispatcher("success.jsp").forward(request,response);

1.轉發(fā)在服務器端完成的;重定向是在客戶端完成的

★2.轉發(fā)的速度快;重定向速度慢

3.轉發(fā)的是同一次請求;重定向是兩次不同請求

★4.轉發(fā)不會執(zhí)行轉發(fā)后的代碼;重定向會執(zhí)行重定向之后的代碼

★5.轉發(fā)地址欄沒有變化;重定向地址欄有變化

6.轉發(fā)必須是在同一臺服務器下完成;重定向可以在不同的服務器下完成

在java web開發(fā)中,凡是能實現(xiàn)頁面跳轉的方法有哪些?具體列出這些方法的實現(xiàn)語句

一、跳轉到新頁面,并且是在新窗口中打開頁面:

function openHtml()

{

//do someghing here...

window.open("xxxx.html");

}

window是一個javascript對象,可以用它的open方法,需要注意的是,如果這個頁面不是一相相對路徑,那么要加“http://”,比如:

function openHtml()

{

window.open("");

}

二、在本頁面窗口中跳轉:

function totest2()

{

window.location.assign("test2.html");

}

如果直接使用location.assgin()也可以,但是window.location.assign()更合理一些,當前窗口的location對象的assign()方法。

另外,location對象還有一個方法replace()也可以做頁面跳轉,它跟assign()方法的區(qū)別在于:

replace() 方法不會在 History 對象中生成一個新的紀錄。當使用該方法時,新的 URL 將覆蓋 History 對象中的當前紀錄。

用java怎樣編寫登錄頁面,成功登錄跳轉到下一個頁面,求代碼

說說servlet里面的方法:

public void?ValidateUserPass(String user,String pass){

RequestDispathcher?rd =null

//假使你的代碼是從DB中獲取

DBFactory?db=DBFactoryImpl.getDBFactoryInstance();//得到數(shù)據(jù)庫鏈接

flg=db.findUser(user,pass);

//?這里是不存在用戶

if(flg.hasNext()==-1){

//?登錄時錯誤了,一般我們會給用戶一個提示

session.setAttirbute("msg","對不起,用戶名或密碼錯誤");

RequestDispathcher?rd?=?req.getRequesDispatcher("login.jsp");

rd.forward(request,?reponse);//將請求對象和響應對象傳遞進來

}???//?這里是存在當前用戶

else{

//當然這里登錄成功時,我們要把當前用戶寫到session里面保存

session.setAttirbute("userName",user);

//這個請求轉發(fā)語句

request.sendRedirect("index.html");

}

}

// * 上述代碼,你可以參考下我的方法,我也很久沒做JAVA開發(fā)了,我現(xiàn)在從事前端UI開發(fā),本來我想在寫一個用struts 2登錄的程序的,可我現(xiàn)在忘得差不多了,上面我所用到的屬性建議你自己好好的研究一下,往后你將學到struts2 hibernate,Spring等一系列優(yōu)秀的開源框架,說白了,這些東西的底層還是這些,只不過這些框架做了一些封裝隔離。上述代碼建議你重點理解一下:請求轉發(fā)和重定向的區(qū)別。

java文件里如何寫可讓頁面跳轉http://www.baidu.com

a頁面代碼 !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML HEAD TITLE page A /TITLE script language="javascript" function newWin(){ var str = window.showModalDialog("pageB.html",null,"dialogWidth=400px;dialogHeight=300px"); if (typeof(str) == "undefined") { alert("沒有傳回值來"); }else{ document.getElementById("mytext").value=str; } } /script /HEAD BODY input type="text" id="mytext" input type="button" value="button" onclick="newWin();" /BODY /HTML b頁面代碼 !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" HTML HEAD TITLE Page B /TITLE script language="javascript" function colseWin(){ var returnValue = document.getElementById("mytext").value.trim; window.returnValue=returnValue; window.close(); } /script /HEAD BODY input type="text" id="mytext" input type="button" value="保存并關閉" onclick="colseWin();" /BODY /HTML 把兩個文件保存到同級目錄下就可以了. 檢舉 回答人的補充 2009-09-10 23:01 java五種JSP頁面跳轉方法詳解 1. RequestDispatcher.forward() 是在服務器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet or JSP到 另外一個Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此時form提交的所有信息在 b.jsp都可以獲得,參數(shù)自動傳遞. 但forward()無法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同時forward()無法在后面帶參數(shù)傳遞,比如servlet?name=frank,這樣不行,可以程序內(nèi)通過response.setAttribute("name",name)來傳至下一個 頁面。 重定向后瀏覽器地址欄URL不變。 例:在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); } 通常在servlet中使用,不在jsp中使用。 2. response.sendRedirect() 是在用戶的瀏覽器端工作,sendRedirect()可以帶參數(shù)傳遞,比如servlet?name=frank傳至下個頁面,同時它可以重定向至不同的主機上,sendRedirect()可以重定向有frame.的jsp文件. 重定向后在瀏覽器地址欄上會出現(xiàn)重定向頁面的URL 例:在servlet中重定向 public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html; charset=gb2312"); response.sendRedirect("/index.jsp"); } 由于response是jsp頁面中的隱含對象,故在jsp頁面中可以用response.sendRedirect()直接實現(xiàn)重定位。 注意: (1) 使用response.sendRedirect時,前面不能有HTML輸出; 這并不是絕對的,不能有HTML輸出其實是指不能有HTML被送到了瀏覽器。事實上現(xiàn)在的server都有cache機制,一般在8K(我是說 JSP SERVER),這就意味著,除非你關閉了cache,或者你使用了out.flush()強制刷新,那么在使用sendRedirect之前, 有少量的HTML輸出也是允許的。 (2) response.sendRedirect之后,應該緊跟一句return。 我們已經(jīng)知道response.sendRedirect是通過瀏覽器來做轉向的,所以只有在頁面處理完成后,才會有實際的動作。既然你已經(jīng)要做轉向了,那么后的輸出還有什么意義呢?而且有可能會因為后面的輸出導致轉向失敗。 比較: (1) Dispatcher.forward()是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址; (2) response.sendRedirect()則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發(fā)送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。 前者更加高效,在前者可以滿足需要時,盡量使用RequestDispatcher.forward()方法。 注:在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用HttpServletResponse.sendRequest()方法。 3. <jsp:forward page="" /> 它的底層部分是由RequestDispatcher來實現(xiàn)的,因此它帶有RequestDispatcher.forward()方法的印記。 如果在之前有很多輸出,前面的輸出已使緩沖區(qū)滿,將自動輸出到客戶端,那么該語句將不起作用,這一點應該特別注意。 另外要注意:它不能改變?yōu)g覽器地址,刷新的話會導致重復提交 4. 修改HTTP header的Location屬性來重定向 通過設置直接修改地址欄來實現(xiàn)頁面的重定向。 jsp文件代碼如下: <% response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); String newLocn = "/newpath/jsa.jsp"; response.setHeader("Location",newLocn); %> 5. JSP中實現(xiàn)在某頁面停留若干秒后,自動重定向到另一頁面 在html文件中,下面的代碼: <meta http-equiv="refresh" content="300; url=target.jsp"> 它的含義:在5分鐘之后正在瀏覽的頁面將會自動變?yōu)閠arget.html這一頁。代碼中300為刷新的延遲時間,以秒為單位。targer.html為你想轉向的目標頁,若為本頁則為自動刷新本頁。 由上可知,可以通過setHeader來實現(xiàn)某頁面停留若干秒后,自動重定向到另一頁面。 關鍵代碼: String content=stayTime+";URL="+URL; response.setHeader("REFRESH",content); 檢舉 提問人的追問 2009-09-10 23:01 在java里面寫 就是在class 不是在頁面上寫 檢舉 提問人的追問 2009-09-10 23:11 我要跳轉到另一個域名里 response.sendRedirect("這里面可以寫 ")嗎; 檢舉 回答人的補充 2009-09-10 23:19 那您要的是 通過點擊來跳轉還是通過內(nèi)制時間來跳轉? 檢舉 回答人的補充 2009-09-10 23:37 這個頁面跳轉的好處在于不需要JS調(diào)用,直接在html文件頭里加入 meta http-equiv="refresh[刷新-這里指定動作]" content="5[這里是時間];url=/article[這里是跳轉的URL]" 注意框內(nèi)的是注釋。 而用JS的方法則是這樣的: 在body內(nèi)任意位置加上 〈SCRIPT LANGUAGE=javascript〉 〈!-- window.location=″/home/default.htm″ //--〉 〈/SCRIPT〉 第三種方法是像c一樣的使用include,如: 〈BODY〉 〈p〉準備調(diào)用文件〈/p〉 〈!--#include file= ″home/default.htm″--〉 〈p〉文件調(diào)用結束〈p〉 〈/BODY〉 ASP里可以用這個寫法: 〈%Response.Redirect ″/home/default.htm″%〉

Javaweb的跳轉問題

通俗來說,form表單是寫在前端頁面(如html、jsp)上的,form有一個‘a(chǎn)ction’的參數(shù),這里需要填寫目標地址,如果不填寫的話客戶端是不知道往哪里發(fā)送信息的,因此form是由客戶端主動發(fā)送給服務器(具體的地址就是action索要填的值)的。這屬于客戶端向服務器發(fā)起請求,代碼表現(xiàn)為:

form

action='10086.jsp' method='get'

…………

/form

就像你打10086,你問問題(提交表單),客服(服務器)會根據(jù)你的問題(form)反饋答案。同理,正常來說,后臺接收到前端發(fā)來的信息后,會進行一系列操作,最后發(fā)送結果回去。

====分割線====

而轉發(fā)和重定向的代碼是寫在后臺代碼里的,因為并不是所有的業(yè)務都由同一個后臺頁面處理(例如統(tǒng)一管理平臺),前端form填的是頁面A,但實際上頁面A在接收到form后并不進行處理,而是通過轉發(fā)或者重定向的方式,發(fā)送給頁面B,頁面B處理后會把結果發(fā)送給A,然后A再反饋給前端。因此,這屬于服務器向服務器發(fā)起請求

轉發(fā)的代碼是request.getrequestdispatcher (10086-2.jsp).forward(request,response),特點是url不會變,客戶端無法判斷是form表單的后臺頁面在處理還是別的頁面在處理(你在瀏覽器上是無法知道10086-2.jsp這個頁面的存在)。就像10086客戶有時候會讓你稍等,等待期間你是不知道他是在敲電腦還是找外援尋求答案。

重定向的代碼是response.sendRedirect("10086-2.jsp"),特點是url會變。瀏覽器的地址欄會明顯看到地址發(fā)生改變。就像10086客服告訴你該問題不是他負責的范圍,然后幫你轉接到其他相應的客戶。

至于怎么判斷啥時候使用轉發(fā),啥時候使用重定向,還請理解jsp的四大作用域之后再回頭思考。

當前題目:java重定向跳轉代碼,重定向代碼實現(xiàn)
當前URL:http://chinadenli.net/article30/hesoso.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄定制網(wǎng)站小程序開發(fā)Google企業(yè)建站面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設