开箱即用的重写处理程序

我快速浏览了Jetty开箱即用的重写处理程序.从我可以从文档/示例中收集到的内容,它们似乎只在URL的路径部分进行实际重写(即端口之后的所有内容,而不是我们想要的内容)(如果我错了,请纠正我! ).

编写请求处理程序

一个让你开始的基本例子,如果你只想使用嵌入式jetty,你可以编写一个请求处理程序,将所有请求重定向到给定的端口.

它的工作方式是PortRedirector使用handle方法处理HTTP请求.它构建原始请求URL,将端口更改为目标“to”端口,并将客户端重定向到新URL.

在以下示例中,服务器侦听端口1234,并将所有请求重定向到端口8080.

import org.eclipse.jetty.server.Request;

import org.eclipse.jetty.server.Server;

import org.eclipse.jetty.server.handler.AbstractHandler;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

public class Redirector {

public static void main(String[] args) throws Exception {

Server server = new Server(1234);

server.setHandler(new PortRedirector(8080));

server.start();

server.dumpStdErr();

server.join();

}

static class PortRedirector extends AbstractHandler {

int to;

PortRedirector(int to) {

this.to = to;

}

public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)

throws IOException, ServletException {

String uri = request.getScheme() + "://" +

request.getServerName() +

":" + to +

request.getRequestURI() +

(request.getQueryString() != null ? "?" + request.getQueryString() : "");

response.sendRedirect(uri);

}

}

}

参考文献:

java 重定向端口_java – 重定向到另一个端口,保留所有其余的端口相关推荐

  1. 集线器端口上的电涌:一个USB设备超过其集线器端口的电源限制

    集线器端口上的电涌:一个USB设备超过其集线器端口的电源限制 花了三个小时查阅了大量资料,终于把这个问题大致弄清楚了,差点全盘格式化,主要是因为不认盘的缘故,以为分区表全部损坏.我一开始就怀疑是供电不 ...

  2. java通过不同请求转发不同端口_java重定向与请求转发的区别

    请求转发: request.getRequestDispatcher().forward(); 重定向: response.sendRedirect(); 例如: 请求转发: request.getR ...

  3. java atm模拟系统_Java RPC模式开发一个银行atm模拟系统

    采用rpc模式开发一个银行atm模拟系统. 系统主要提供一个服务Card,该服务接口可以提供登录.查询.取钱.存钱等功能.服务接口的设计和实现自定义. Atm客户端功能需求: 1.ATM可以实现用户登 ...

  4. 另一个.java文件调用_java - 如何调用另一个类“写文件”的方法? - SO中文参考 - www.soinside.com...

    在我的Android应用程序,我想有一类处理所有"写入/读取到文本文件"的行动.所以,我根本就调用我的readUserFile.java文件我想的方法.但我的方法将不会在该文件中工 ...

  5. java jaxb 集合_java.util.List是一个接口,JAXB不能处理接口

    java.util.List是一个接口,JAXB不能处理接口 尝试部署我的应用程序时,我似乎得到以下exception: Caused by: com.sun.xml.bind.v2.runtime. ...

  6. java复杂吗_java – 是哈希一个合适的解决方案吗?我过度复杂吗?

    我写了一个2D平台游戏,我需要房间(最多4个)门.我用 Java编写它,但语言是无关紧要的. 每个房间可以在顶部,底部和侧面设有4扇门.我称他们为北,南,东,西.当我建立一个房间时,我只给它一个整数, ...

  7. java手动输入函数_Java程序如何添加一个函数,如果玩家输入错误,它将返回代码。...

    我的程序有问题,不是代码问题,而是我要怎么做,这是我一直困惑的部分.只是为了让你知道我是一个基本的Java编码器,我不理解复杂的东西,所以请记住,我的代码不是最好的. ---------------- ...

  8. java 设计方法_java 中如何处理设计一个方法

    java 中我们很常见的设计 API 的例子是对一个对象进行增, 删, 查,改. 比如 Object addObject(Object obj); Object delObject(Object ob ...

  9. java jdialog 模态_java – 如何在另一个模态JDialog之上创建一个模态的JDialog

    不确定你有什么问题,但这里是一个例子,你可以有多个模态对话框: import java.awt.BorderLayout; import java.awt.Window; import java.aw ...

最新文章

  1. 神经科学中的数学之美
  2. mysql 三层架构开发_从三层架构迈向领域驱动设计(转载)
  3. 10G_Ethernet_03 Example Design
  4. svg mysql_SVG 实例
  5. 港股区块链板块持续上行,火币科技涨超50%
  6. java面试题jvm_经典面试题|讲一讲JVM的组成
  7. Mac技巧,更改Mac桌面图片
  8. java计数器占位符_深入理解Java虚拟机- 学习笔记 - Java内存区域
  9. 三菱PLC编程软件 GX Developer 8.86 中文版的下载与安装 (win 7 64位)
  10. adb工具包的安装和使用方法
  11. linux 分区100g整数,160GB硬盘双系统整数分区推荐方案
  12. 计算机系统从本地硬盘启动设置,技嘉主板电脑在BIOS中设置硬盘启动教程
  13. 有关《家》的经典歌曲_盘点《乐队的夏天》15首经典歌曲,太好听了!
  14. visio增加连接点
  15. EfficientDet实验笔记
  16. Linux 目录中的etc是什么缩写
  17. sigmoid和softmax
  18. C语言再学习25——常用字符串函数归纳
  19. 基于fastadmin的工业园区科技园水电费管理系统
  20. 国密算法SM2 密钥对的生成

热门文章

  1. Git补丁简单用法介绍(打补丁.diff 和 .patch 和 git apply、git am应用)
  2. 中国游戏事业发展数据产品报告(内含python数据可视化源码)
  3. Revit获取族预览图
  4. PHP上传图片到独立的图片服务器
  5. 使用搜索引擎(百度)的技巧
  6. WebOffice使用一
  7. weboffice使用记录
  8. Hibernate JPA-原生查询返回BigIntegers而不是long
  9. 银行和服务商聚合支付收款码的区别在哪?
  10. 计算机仿真实验单摆,计算机仿真实验 用凯特摆测重力加速度