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

java重定向的代碼 javaweb重定向代碼

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

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

大廠網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)從2013年開(kāi)始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)

重定向標(biāo)準(zhǔn)輸出很easy System 類里有兩個(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è)新的類 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());

}

});

}

}

類 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技巧:使用Runtime.exec重定向本地程序調(diào)用

Java具有使用Runtime exec對(duì)本地程序調(diào)用進(jìn)行重定向的能力 但是用重定向或者管道進(jìn)行命令調(diào)用將會(huì)出錯(cuò) 解決這一問(wèn)題的辦法是通過(guò)命令shell運(yùn)行命令 在Java中調(diào)用本地程序會(huì)破壞平臺(tái)獨(dú)立性規(guī)則 但是經(jīng)常需要這么做才行 以下是一個(gè)簡(jiǎn)單類的范例 展示了在Unix下運(yùn)行l(wèi)s命令的情形 import java io BufferedInputStream;import java io IOException;public class ExecLs { static public void main(String[] args) { String cmd = ls try { Process ps = Runtime getRuntime() exec(cmds); System out print(loadStream(ps getInputStream())); System err print(loadStream(ps getErrorStream())); } catch(IOException ioe) { ioe printStackTrace(); } } // read an input stream into a String static String loadStream(InputStream in) throws IOException { int ptr = ; in = new BufferedInputStream(in); StringBuffer buffer = new StringBuffer(); while( (ptr = in read()) != ) { buffer append((char)ptr); } return buffer toString(); }} 上述代碼中重要的部分是exec方法和命令字符串ls 本程序?qū)⑤敵鲞\(yùn)行目錄下的列表細(xì)節(jié) 那么 如果你想重定向這些細(xì)節(jié)內(nèi)容到文件該怎么辦?這一命令行的輸入應(yīng)該寫(xiě)成ls FILE 但是當(dāng)你將cmd變量改變成這樣的話 運(yùn)行就會(huì)出錯(cuò) 如下 /bin/ls: : No such file or directory/bin/ls: FILE: No such file or directory 出錯(cuò)的原因在于額外的參數(shù)被直接傳送到了ls命令而不是送到實(shí)際的命令行 解決這一問(wèn)題的辦法是將cmd串弄成一個(gè)字符串?dāng)?shù)組 并且將你想運(yùn)行的程序傳送到命令shell 因此 將cmd行改成下面的樣子 String[] cmd = { sh c ls FILE }; 你將得到一個(gè)名為FILE的文件 里面是目錄列表 c參數(shù)是告訴它讀取隨后的字符串 而最后的參數(shù)是你要運(yùn)行的腳本 在這種情況下 管道也運(yùn)行良好 所以你可以把命令改成下面的方式 String[] cmd = { /bin/sh c /bin/ls | grep d FILE }; 這種形式將給你一個(gè)名為FILE的文件 里面是ls條目中包含d的條目 給出sh和ls的全路徑有利于提供你的程序的安全性 雖然使用Runtime exec不是創(chuàng)建獨(dú)立于平臺(tái)的Java的最佳方式 但是有些時(shí)候是必要的 使用這種重定向技術(shù)有助于走出Runtime exec的限制 lishixinzhi/Article/program/Java/hx/201311/25922

java web程序怎么實(shí)現(xiàn)301重定向

其實(shí)做站點(diǎn)開(kāi)發(fā)的很少使用java的,像Apache等可以直接配置301跳轉(zhuǎn),可是tomcat只是一個(gè)servlet容器,沒(méi)辦法我只能使用過(guò)濾器來(lái)實(shí)現(xiàn)301跳轉(zhuǎn),下面把代碼分享給大家。

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class URLFilter implements Filter {

@Override

public void destroy() {

// TODO Auto-generated method stub

}

@Override

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

final HttpServletRequest req = (HttpServletRequest) request;

final HttpServletResponse res=(HttpServletResponse)response;

String requestPage = req.getRequestURI();

String queryString = (req.getQueryString() == null ? "" : "?"+req.getQueryString());

if(req.getRequestURL().indexOf("") =0){

res.setStatus(301);

res.setHeader( "Location", ""+requestPage+queryString);

res.setHeader( "Connection", "close" );

}

chain.doFilter(request, response);

}

@Override

public void init(FilterConfig arg0) throws ServletException {

// TODO Auto-generated method stub

}

文章題目:java重定向的代碼 javaweb重定向代碼
本文鏈接:http://chinadenli.net/article10/dogeddo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、、網(wǎng)站策劃、企業(yè)網(wǎng)站制作

廣告

聲明:本網(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)

成都網(wǎng)站建設(shè)公司