资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java重定向的代码编写 java重定向是什么意思

java web程序怎么实现301重定向

其实做站点开发的很少使用java的,像Apache等可以直接配置301跳转,可是tomcat只是一个servlet容器,没办法我只能使用过滤器来实现301跳转,下面把代码分享给大家。

创新互联公司-专业网站定制、快速模板网站建设、高性价比富平网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式富平网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖富平地区。费用合理售后完善,10年实体公司更值得信赖。

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 程序调用 输出重定向

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.SequenceInputStream;

public class Processing

{

public static void main(String[] args)

{

try

{

Process process = Runtime.getRuntime().exec("cmd");

SequenceInputStream sis = new SequenceInputStream(process.getInputStream(), process.getErrorStream());

InputStreamReader isr = new InputStreamReader(sis, "GBK");

BufferedReader br = new BufferedReader(isr);

// next command

OutputStreamWriter osw = new OutputStreamWriter(process.getOutputStream());

BufferedWriter bw = new BufferedWriter(osw);

bw.write("cd /d d:/test");

bw.newLine();

bw.write("javac prog1.java  javac.txt");

bw.newLine();

bw.write("java prog1  java.txt");

bw.newLine();

bw.flush();

bw.close();

osw.close();

// read

String line = null;

while(null != (line = br.readLine()))

{

System.out.println(line);

}

process.destroy();

br.close();

isr.close();

}

catch(IOException e)

{

e.printStackTrace();

}

}

}

Java标准输出重定向到GUI

实现输出从控制台到GUI并不复杂 只需要将标准输出重定向

重定向标准输出很easy System 类里有两个静态方法setErr(PrintStream err) 和 setOut(PrintStream out) 分别用于重定位 标准 错误输出流和 标准 输出流 只需要在程序初始时设置即可

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

System setErr(guiPrintStream);

System setOut(guiPrintStream);

在上面的代码中 我们发现一个新的类 GUIPrintStream 这是我们为 PrintStream 所做的包装 因为我们的输出目标位置是GUI 所以需要在 PrintStream 上做些文章 大家请看下面 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;

}

/** *//**

* 重写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;

}

/** *//**

* 重写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 并且对它进行了一些修改

GUIPrintStream 在构造函数中增加了一个 JTextComponent 变量 它就是我们的目标输出 GUI 组件 它规定了目标输出组件是一个文本组件 接下来覆写了 write(byte[] buf int off int len)方法 这个方法原来的作用是将 len 字节从指定的初始偏移量为 off 的 byte 数组写入此流 现在经过我们的修改 变成了将 byte 数组包装成 String 写入目标 GUI 组件

简单的代码完成了将标准输出重定向到 GUI 的全过程 由此延伸 还可以将标准输出重定向到文本文件 从GUI获取标准输入等 就不一一介绍

测试

Java代码

public class MainFrame extends javax swing JFrame {

public MainFrame() {

initComponents();

// 重定向到通过文本组件构建的组件输出流中

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( 标准输出重定向到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如何创建response,从而进行页面重定向

可以通过pageContext页面上下文对象来取得:

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


本文标题:java重定向的代码编写 java重定向是什么意思
文章URL:http://cdkjz.cn/article/hhhpoh.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220