成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

頁(yè)面重定向Java代碼 java web中的轉(zhuǎn)發(fā)和重定向

Java標(biāo)準(zhǔn)輸出重定向到GUI

實(shí)現(xiàn)輸出從控制臺(tái)到GUI并不復(fù)雜 只需要將標(biāo)準(zhǔn)輸出重定向

創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為魯?shù)榈确?wù)建站,魯?shù)榈鹊仄髽I(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為魯?shù)槠髽I(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

重定向標(biāo)準(zhǔn)輸出很easy System 類(lèi)里有兩個(gè)靜態(tài)方法setErr(PrintStream err) 和 setOut(PrintStream out) 分別用于重定位 標(biāo)準(zhǔn) 錯(cuò)誤輸出流和 標(biāo)準(zhǔn) 輸出流 只需要在程序初始時(shí)設(shè)置即可

// GUIPrintStream guiPrintStream = new GUIPrintStream(System out jTextArea);

System setErr(guiPrintStream);

System setOut(guiPrintStream);

在上面的代碼中 我們發(fā)現(xiàn)一個(gè)新的類(lèi) GUIPrintStream 這是我們?yōu)?PrintStream 所做的包裝 因?yàn)槲覀兊妮敵瞿繕?biāo)位置是GUI 所以需要在 PrintStream 上做些文章 大家請(qǐng)看下面 GUIPrintStream 的代碼

Java代碼

/**//*

* To change this template choose Tools | Templates

* and open the template in the editor

*/

import java io OutputStream;

import java io PrintStream;

import javax swing SwingUtilities;

import javax swing text JTextComponent;

/** *//**

* 輸出到文本組件的流

*

* @author Chen Wei

* @website chenwei mobi

* @email chenw

*/

public class GUIPrintStream extends PrintStream {

private JTextComponent ponent;

private StringBuffer *** = new StringBuffer();

public GUIPrintStream(OutputStream out JTextComponent ponent) {

super(out);

ponent = ponent;

}

/** *//**

* 重寫(xiě)write()方法 將輸出信息填充到GUI組件

* @param buf

* @param off

* @param len

*/

@Override

public void write(byte[] buf int off int len) {

final String message = new String(buf off len);

SwingUtilities invokeLater(new Runnable() {

public void run() {

*** append(message);

ponent setText( *** toString());

}

});

}

}

/**//*

* To change this template choose Tools | Templates

* and open the template in the editor

*/

import java io OutputStream;

import java io PrintStream;

import javax swing SwingUtilities;

import javax swing text JTextComponent;

/** *//**

* 輸出到文本組件的流

*

* @author Chen Wei

* @website chenwei mobi

* @email chenw

*/

public class GUIPrintStream extends PrintStream {

private JTextComponent ponent;

private StringBuffer *** = new StringBuffer();

public GUIPrintStream(OutputStream out JTextComponent ponent) {

super(out);

ponent = ponent;

}

/** *//**

* 重寫(xiě)write()方法 將輸出信息填充到GUI組件

* @param buf

* @param off

* @param len

*/

@Override

public void write(byte[] buf int off int len) {

final String message = new String(buf off len);

SwingUtilities invokeLater(new Runnable() {

public void run() {

*** append(message);

ponent setText( *** toString());

}

});

}

}

類(lèi) GUIPrintStream 繼承自 PrintStream 并且對(duì)它進(jìn)行了一些修改

GUIPrintStream 在構(gòu)造函數(shù)中增加了一個(gè) JTextComponent 變量 它就是我們的目標(biāo)輸出 GUI 組件 它規(guī)定了目標(biāo)輸出組件是一個(gè)文本組件 接下來(lái)覆寫(xiě)了 write(byte[] buf int off int len)方法 這個(gè)方法原來(lái)的作用是將 len 字節(jié)從指定的初始偏移量為 off 的 byte 數(shù)組寫(xiě)入此流 現(xiàn)在經(jīng)過(guò)我們的修改 變成了將 byte 數(shù)組包裝成 String 寫(xiě)入目標(biāo) GUI 組件

簡(jiǎn)單的代碼完成了將標(biāo)準(zhǔn)輸出重定向到 GUI 的全過(guò)程 由此延伸 還可以將標(biāo)準(zhǔn)輸出重定向到文本文件 從GUI獲取標(biāo)準(zhǔn)輸入等 就不一一介紹

測(cè)試

Java代碼

public class MainFrame extends javax swing JFrame {

public MainFrame() {

initComponents();

// 重定向到通過(guò)文本組件構(gòu)建的組件輸出流中

System setOut(new GUIPrintStream(System out textArea));

}

private void initComponents() {

scrollPane = new javax swing JScrollPane();

textArea = new javax swing JTextArea();

btnOut = new javax swing JButton();

setDefaultCloseOperation(javax swing WindowConstants EXIT_ON_CLOSE);

setTitle( 標(biāo)準(zhǔn)輸出重定向到GUI chenwei mobi );

textArea setColumns( );

textArea setRows( );

scrollPane setViewportView(textArea);

getContentPane() add(scrollPane java awt BorderLayout CENTER);

btnOut setText( System out println(System getProperties()); );

btnOut addActionListener(new java awt event ActionListener() {

public void actionPerformed(java awt event ActionEvent evt) {

btnOutActionPerformed(evt);

}

});

getContentPane() add(btnOut java awt BorderLayout PAGE_END);

pack();

}

private void btnOutActionPerformed(java awt event ActionEvent evt) {

System out println(System getProperties());

}

/**

* @param args the mand line arguments

*/

public static void main(String args[]) {

java awt EventQueue invokeLater(new Runnable() {

public void run() {

new MainFrame() setVisible(true);

}

});

}

private javax swing JButton btnOut;

private javax swing JScrollPane scrollPane;

private javax swing JTextArea textArea;

lishixinzhi/Article/program/Java/hx/201311/25870

java WEB如何創(chuàng)建response,從而進(jìn)行頁(yè)面重定向

可以通過(guò)pageContext頁(yè)面上下文對(duì)象來(lái)取得:

pageContext.getAttribute("變量名",pageContext.RESPONSE_SCOPE);至于重定向使用如下語(yǔ)句: response.sendRedirect(URL);

JSP如何實(shí)現(xiàn)網(wǎng)頁(yè)重定向

重定向和轉(zhuǎn)發(fā)有一個(gè)重要的不同:當(dāng)使用轉(zhuǎn)發(fā)時(shí),JSP容器將使用一個(gè)內(nèi)部的方法來(lái)調(diào)用目標(biāo)頁(yè)面,新的頁(yè)面繼續(xù)處理同一個(gè)請(qǐng)求,而瀏覽器將不會(huì)知道這個(gè)過(guò)程。與之相反,重定向方式的含義是第一個(gè)頁(yè)面通知瀏覽器發(fā)送一個(gè)新的頁(yè)面請(qǐng)求。因?yàn)椋?dāng)你使用重定向時(shí),瀏覽器中所顯示的URL會(huì)變成新頁(yè)面的URL 而當(dāng)使用轉(zhuǎn)發(fā)時(shí),該URL會(huì)保持不變。重定向的速度比轉(zhuǎn)發(fā)慢,因?yàn)闉g覽仆飯得發(fā)出一個(gè)新的請(qǐng)求。同時(shí),由于重定向方式產(chǎn)生了一個(gè)新的請(qǐng)求,所以經(jīng)過(guò)一次重定向后,request內(nèi)的對(duì)象將無(wú)法使用。 轉(zhuǎn)發(fā)和重定向的區(qū)別 不要僅僅為了把變量傳到下一個(gè)頁(yè)面而使用session作用域,那會(huì)無(wú)故增大變量的作用域,轉(zhuǎn)發(fā)也許可以幫助你解決這個(gè)問(wèn)題。 重定向:以前的request中存放的變量全部失效,并進(jìn)入一個(gè)新的request作用域。 轉(zhuǎn)發(fā):以前的request中存放的變量不會(huì)失效,就像把兩個(gè)頁(yè)面拼到了一起。 正文開(kāi)始:先是看上去不同,他們的調(diào)用分別如下: request.getRequestDispatcher("apage.jsp").forward(request response);//轉(zhuǎn)發(fā)到apage.jsp response.sendRedirect("apage.jsp");//重定向到apage.jsp 在jsp頁(yè)面中你也會(huì)看到通過(guò)下面的方式實(shí)現(xiàn)轉(zhuǎn)發(fā): 提到轉(zhuǎn)發(fā)和重定向就不得不提到request作用域。很多初學(xué)者都知道當(dāng)我們提交一個(gè)表單時(shí),就創(chuàng)建了一個(gè)新的請(qǐng)求。實(shí)際上,當(dāng)我們點(diǎn)擊一個(gè)鏈接時(shí),也創(chuàng)建了一個(gè)新的請(qǐng)求。那么一個(gè)請(qǐng)求的作用于到底有多大呢?例如:在頁(yè)面a.jsp中有一個(gè)鏈接這是指向b的一個(gè)鏈接,而且還帶了一個(gè)參數(shù)。當(dāng)我們點(diǎn)擊這個(gè)連接的時(shí)候,就產(chǎn)生了一個(gè)請(qǐng)求,為了明確起見(jiàn),我們把它叫做requestA-B。現(xiàn)在,在b.jsp頁(yè)面中我們就可以從這個(gè)請(qǐng)求中獲取信息了。在b.jsp中你可以寫(xiě)入out.println(request.getParameter("id"))進(jìn)行測(cè)試。下面更復(fù)雜一點(diǎn),我們?cè)赽.jsp頁(yè)面中增加下面的語(yǔ)句: request.setAttribute("name""funcreal"); out.println(request.getAttriblute("name"));//成功顯示了name變量的值。 現(xiàn)在在b.jsp中再增加一個(gè)鏈接:這是指向c的一個(gè)鏈接,而且還帶了一個(gè)參數(shù)當(dāng)我們點(diǎn)擊這個(gè)連接的時(shí)候,將產(chǎn)生一個(gè)新的請(qǐng)求,這時(shí)requestA-B也就安息了,新的請(qǐng)求叫做requestB-C。同樣的道理,在c.jsp中,我們可以訪問(wèn)到的變量只有age,因?yàn)閕d,name這兩個(gè)變量都屬于requestA-B,此時(shí)他已經(jīng)不存在了。下面是源代碼: a.jsp 指向b.jsp,而且還帶了一個(gè)參數(shù)id=1。requestA-B現(xiàn)在誕生了 b.jsp requestA-B已經(jīng)結(jié)束了。指向c.jsp,而且還帶了一個(gè)參數(shù)age=23 c.jsp d.jsp requestB-C的魔爪已經(jīng)伸到了d.jsp頁(yè)面 運(yùn)行程序,你會(huì)發(fā)現(xiàn)c頁(yè)面中的內(nèi)容沒(méi)有顯示出來(lái),因?yàn)閒orward是自動(dòng)執(zhí)行的,地址欄中雖然是c.jsp但實(shí)際上,但瀏覽器中顯示的已經(jīng)是d.jsp的內(nèi)容了,而且看到了從b.jsp傳過(guò)來(lái)的參數(shù)。你可以簡(jiǎn)單得這樣理解:轉(zhuǎn)發(fā),就是延長(zhǎng)了requestB-C的作用域,,這一句話實(shí)際上是把c.jsp和d.jsp粘到了一起,他們就像是在一個(gè)頁(yè)面中。

JSP如何實(shí)現(xiàn)網(wǎng)頁(yè)重定向?

jsp實(shí)現(xiàn)頁(yè)面的重定向,使用的是response.sendRedirect("a.jsp");實(shí)現(xiàn)頁(yè)面重定向到a.jsp這個(gè)頁(yè)面。\x0d\x0a分為兩種寫(xiě)法:\x0d\x0a\x0d\x0a1、如果實(shí)在jsp頁(yè)面中寫(xiě)代碼的話,將response.sendRedirect("a.jsp");放在里面就行了,即:\x0d\x0a2、如果是在java文件(如servlet)中寫(xiě)代碼的話,只需寫(xiě)response.sendRedirect("a.jsp");就行了。\x0d\x0a接下來(lái)簡(jiǎn)單說(shuō)說(shuō)頁(yè)面的轉(zhuǎn)發(fā)(forward)與重定向(sendRedirect)的區(qū)別:\x0d\x0a重定向:以前的request中存放的變量全部失效,并進(jìn)入一個(gè)新的request作用域。\x0d\x0a轉(zhuǎn)發(fā):以前的request中存放的變量不會(huì)失效,就像把兩個(gè)頁(yè)面拼到了一起。

當(dāng)前名稱(chēng):頁(yè)面重定向Java代碼 java web中的轉(zhuǎn)發(fā)和重定向
網(wǎng)址分享:http://jinyejixie.com/article38/hpccsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站建設(shè)、微信小程序服務(wù)器托管、用戶體驗(yàn)

廣告

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

成都app開(kāi)發(fā)公司
普洱| 从化市| 沅江市| 武安市| 灌南县| 罗山县| 彭州市| 扬中市| 长阳| 怀集县| 旌德县| 家居| 得荣县| 永清县| 南充市| 枣强县| 兴国县| 九龙县| 漳平市| 平安县| 鹤岗市| 汤原县| 茶陵县| 南华县| 深水埗区| 开原市| 嘉兴市| 太湖县| 临沂市| 唐河县| 华安县| 黔东| 乌兰县| 察隅县| 清远市| 项城市| 荔浦县| 辽阳市| 比如县| 嫩江县| 榆中县|