Proxy 如何使用jetty8创建代理服务器?

Proxy 如何使用jetty8创建代理服务器?,proxy,jetty,embedded-jetty,tunnel,Proxy,Jetty,Embedded Jetty,Tunnel,我使用Java套接字创建了一个代理服务器(Fwd和Reverse) 它将侦听浏览器中配置的8080上的传入请求,并将它们转发到另一个代理服务器2 读取server2发送的响应并将其写入浏览器 同时,代码将记录请求和响应,并阻止浏览器中某些预定义的请求类型 现在,我想使用Jetty实现这一点,并支持HTTPS请求 例如,我搜索了一下,但没有找到 这将在8080启动服务器,我在浏览器的代理设置中将其配置为代理端口 import org.eclipse.jetty.server.Server; i

我使用Java套接字创建了一个代理服务器(Fwd和Reverse)

它将侦听浏览器中配置的8080上的传入请求,并将它们转发到另一个代理服务器2

读取server2发送的响应并将其写入浏览器

同时,代码将记录请求和响应,并阻止浏览器中某些预定义的请求类型

现在,我想使用Jetty实现这一点,并支持HTTPS请求

例如,我搜索了一下,但没有找到

这将在8080启动服务器,我在浏览器的代理设置中将其配置为代理端口

 import org.eclipse.jetty.server.Server;

import Handler.HelloHandler;

public class StartJetty
{
    public static void main(String[] args) throws Exception
    {
        Server server = new Server(8080);

        server.setHandler(new HelloHandler());
        server.start();
        server.join();
    }
}
这是我用来监听请求并将响应写回浏览器的处理程序

package Handler;

import java.io.IOException;

 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;

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

public class HelloHandler extends AbstractHandler
{
    final String _greeting;
          final String _body;

          public HelloHandler()
          {
              _greeting="Hello World";
              _body=null;
          }

          public HelloHandler(String greeting)
          {
              _greeting=greeting;
              _body=null;
          }

          public HelloHandler(String greeting,String body)
          {
              _greeting=greeting;
              _body=body;
          }

          public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
          {
              response.setContentType("text/html;charset=utf-8");
              response.setStatus(HttpServletResponse.SC_OK);
              baseRequest.setHandled(true);

              response.getWriter().println("<h1>"+_greeting+"</h1>");
              if (_body!=null)
                  response.getWriter().println(_body);
          }
}
包处理程序;
导入java.io.IOException;
导入javax.servlet.ServletException;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入org.eclipse.jetty.server.Request;
导入org.eclipse.jetty.server.handler.AbstractHandler;
公共类HelloHandler扩展了AbstractHandler
{
最后一串问候语;
最后一串(主体),;
公共HelloHandler()
{
_问候语=“你好,世界”;
_body=null;
}
公共HelloHandler(字符串问候语)
{
_问候=问候;
_body=null;
}
公共HelloHandler(字符串问候语、字符串正文)
{
_问候=问候;
_身体=身体;
}
公共无效句柄(字符串目标、请求baseRequest、HttpServletRequest、HttpServletResponse响应)引发IOException、ServletException
{
setContentType(“text/html;charset=utf-8”);
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println(“+”问候语+”);
如果(_body!=null)
response.getWriter().println(_body);
}
}

收到响应后,我希望将其转发到代理服务器,等待其响应并将其写回浏览器。我需要帮助

在jetty servlets工件中,有一个ProxyServlet将为您执行异步代理工作

我只是想试试看它是否适合你的需要

在该项目的测试中,有一个AsyncProxyServer,您只需启动它,然后进行一次尝试

用于代理的底层continuation和jetty客户端可以通过定制方法进行扩展


祝您好运

在jetty servlets工件中,有一个ProxyServlet将为您执行异步代理工作

我只是想试试看它是否适合你的需要

在该项目的测试中,有一个AsyncProxyServer,您只需启动它,然后进行一次尝试

用于代理的底层continuation和jetty客户端可以通过定制方法进行扩展


祝你好运

你想在这里写代码吗?不完全是。我能够捕获传入的请求,但现在我想将请求转发到Server2,并将Server2发送的响应写入浏览器。以前我认为Jetty有一个名为ProxyHandler的类,但现在它已被废弃,我无法找到任何有关更改的信息。所以我只需要第二部分的帮助。你想在这里写代码吗?不完全是。我能够捕获传入的请求,但现在我想将请求转发到Server2,并将Server2发送的响应写入浏览器。以前我认为Jetty有一个名为ProxyHandler的类,但现在它已被废弃,我无法找到任何有关更改的信息。所以我只需要帮助解决问题的第二部分。