跳轉頁面java
⑴ java軟體裡面的跳轉頁面代碼實現
1. RequestDispatcher.forward()
是在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet or JSP到另外一個Servlet,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中進行重定向
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()可以帶參數傳遞,比如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是jsp頁面中的隱含對象,故在jsp頁面中可以用response.sendRedirect()直接實現重定位。
注意:
(1) 使用response.sendRedirect時,前面不能有HTML輸出;
這並不是絕對的,不能有HTML輸出其實是指不能有HTML被送到了瀏覽器。事實上現在的server都有cache機制,一般在8K(我是說 JSPSERVER),這就意味著,除非你關閉了cache,或者你使用了out.flush()強制刷新,那麼在使用sendRedirect之前,有少量的HTML輸出也是允許的。
(2) response.sendRedirect之後,應該緊跟一句return。
我們已經知道response.sendRedirect是通過瀏覽器來做轉向的,所以只有在頁面處理完成後,才會有實際的動作。既然你已經要做轉向了,那麼後的輸出還有什麼意義呢?而且有可能會因為後面的輸出導致轉向失敗。
比較:
(1) Dispatcher.forward()是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向後的地址;
(2) response.sendRedirect()則是完全的跳轉,瀏覽器將會得到跳轉的地址,並重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉後的鏈接地址。
前者更加高效,在前者可以滿足需要時,盡量使用RequestDispatcher.forward()方法。
註:在有些情況下,比如,需要跳轉到一個其它伺服器上的資源,則必須使用HttpServletResponse.sendRequest()方法。
3. <jsp:forward page="" />
它的底層部分是由RequestDispatcher來實現的,因此它帶有RequestDispatcher.forward()方法的印記。
如果在之前有很多輸出,前面的輸出已使緩沖區滿,將自動輸出到客戶端,那麼該語句將不起作用,這一點應該特別注意。
另外要注意:它不能改變瀏覽器地址,刷新的話會導致重復提交
4. 修改HTTP header的Location屬性來重定向
通過設置直接修改地址欄來實現頁面的重定向。
jsp文件代碼如下:
<%
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "/newpath/jsa.jsp";
response.setHeader("Location",newLocn);
%>
5. JSP中實現在某頁面停留若干秒後,自動重定向到另一頁面
在html文件中,下面的代碼:
<meta http-equiv="refresh" content="300; url=target.jsp">
它的含義:在5分鍾之後正在瀏覽的頁面將會自動變為target.html這一頁。代碼中300為刷新的延遲時間,以秒為單位。targer.html為你想轉向的目標頁,若為本頁則為自動刷新本頁。
由上可知,可以通過setHeader來實現某頁面停留若干秒後,自動重定向到另一頁面。
關鍵代碼:
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content);
⑵ java界面跳轉
jButton.addActionListener(newjava.awt.event.ActionListener(){
publicvoidactionPerformed(java.awt.event.ActionEvente){
newGUI();
}
其中GUI為你所想顯示的界面.jButton是你所聲明的按紐對象.
⑶ java程序中如何實現單擊頁面a中的按鈕跳轉到頁面b
java程序中的jsp頁面點擊按鈕跳轉到頁面b的方式如下:
1.jsp頁面的方式如下:<a href="....b.jsp">跳轉</a>
response.sendRedirect("b.jsp")
<jsp:forward page="b.jsp"/>
2.在swing里,給button加一個監聽器,然後在監聽事件中打開另一個頁面。
在jsp或是靜態網頁里,onclick=「JavaScript:window.location=』xx『」
⑷ JAVA頁面跳轉
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>
=======================================================
把兩個文件保存到同級目錄下就可以了.
⑸ java 中頁面跳轉
把用戶登陸的信息保存在session中
不管你怎麼跳,都不會變
⑹ java中如何實現界面的跳轉
Servlet是一種獨立於平台和協議的伺服器端的Java應用程序,可以生成動態的Web頁面。 它擔當Web瀏覽器或其他HTTP客戶程序發出請求,與HTTP伺服器上的資料庫或應用程序之間的中間層。
Servlet是一個介面,它的service方法是每當用戶發出請求,就會被調用。但是介面中是沒有具體實現的。
HttpServlet是Servlet的一個具體實現。HTTP Servlet 使用一個 HTML 表格來發送和接收數據。要創建一個 HTTP Servlet,請擴展 HttpServlet 類,該類是用專門的方法來處理 HTML 表格的 GenericServlet 的一個子類。 HTML 表單是由 <FORM> 和 </FORM> 標記定義的。表單中典型地包含輸入欄位(如文本輸入欄位、復選框、單選按鈕和選擇列表)和用於提交數據的按鈕。
每當一個客戶請求一個HttpServlet 對象,該對象的service() 方法就要被調用,而且傳遞給這個方法一個"請求"(ServletRequest)對象和一個"響應"(ServletResponse)對象作為參數。在 HttpServlet 中已存在 service() 方法。預設的服務功能是調用與 HTTP 請求的方法相應的 do 功能。例如, 如果 HTTP 請求方法為 GET,則預設情況下就調用 doGet() 。Servlet 應該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因為 HttpServlet.service() 方法會檢查請求方法是否調用了適當的處理方法,不必要覆蓋 service() 方法。只需覆蓋相應的 do 方法就可以了。
⑺ java按一下按鈕就能跳到另一個界面怎麼實現
java實現的簡單登錄頁面,從一個按鈕點擊後跳轉的頁面的jframe寫法:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jb{
public static void main(String args[]){
JFrame f=new JFrame("點我跳轉");
Container contentPane=f.getContentPane();
contentPane.setLayout(new GridLayout(1,2));
Icon icon=new ImageIcon("b.jpg");
JLabel label2=new JLabel("a",icon,JLabel.CENTER);
label2.setHorizontalTextPosition(JLabel.CENTER);
contentPane.setLayout(new FlowLayout( FlowLayout.CENTER,10,10));
JButton bb=new JButton("圖片");
bb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFrame bf=new JFrame("新窗體");
Icon icon=new ImageIcon("enter.jpg");
JLabel label2=new JLabel(icon);
bf.getContentPane().add(label2);
bf.setSize(300,360);
bf.show();
}});
contentPane.add(label2);
contentPane.add(bb);
f.pack();
f.show();
}}
⑻ java中如何做到界面的跳轉
假如有兩個frame,分別為frame1,frame2,frame1加個按鈕實現跳轉.frame1代碼如下
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class frame1 extends JFrame implements ActionListener{
/**
* @param args
*/
private JButton jb;
public frame1()
{
this.setSize(300, 200);
this.setLocation(300, 400);
jb=new JButton("跳轉");
this.add(jb);
jb.addActionListener(this);//加入事件監聽
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
frame1 frame=new frame1();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb)
{
this.dispose();//點擊按鈕時frame1銷毀,new一個frame2
new frame2();
}
}
}
frame2是個單純的界面
import javax.swing.JButton;
import javax.swing.JFrame;
public class frame2 extends JFrame{
/**
* @param args
*/
public frame2()
{
this.setSize(300, 200);
this.setLocation(300, 400);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
frame2 frame=new frame2();
}
}
⑼ 在java web開發中,凡是能實現頁面跳轉的方法有哪些具體列出這些方法的實現語句
一、跳轉到新頁面,並且是在新窗口中打開頁面:
function openHtml()
{
//do someghing here...
window.open("xxxx.html");
}
window是一個javascript對象,可以用它的open方法,需要注意的是,如果這個頁面不是一相相對路徑,那麼要加「http://」,比如:
function openHtml()
{
window.open("http://www..com");
}
二、在本頁面窗口中跳轉:
function totest2()
{
window.location.assign("test2.html");
}
如果直接使用location.assgin()也可以,但是window.location.assign()更合理一些,當前窗口的location對象的assign()方法。
另外,location對象還有一個方法replace()也可以做頁面跳轉,它跟assign()方法的區別在於:
replace() 方法不會在 History 對象中生成一個新的紀錄。當使用該方法時,新的 URL 將覆蓋 History 對象中的當前紀錄。
⑽ 有關java中的頁面跳轉
寫兩個窗口
第一個顯示你這個,當你點擊關閉該窗口的時候可以通過
f1.setVisable(false);
讓第二個窗口
f2.setVisable(true);
這里的f1 f2分別對應第一第二個窗口