簡體   English   中英

如何使用jetty8創建代理服務器?

[英]How to create Proxy Server using jetty8?

我已經使用Java套接字創建了代理服務器(正向和反向)。

它將在瀏覽器中配置的8080上偵聽傳入請求,並將其轉發到另一個Proxy Server2。

並讀取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);
          }
}

收到響應后,我想將其轉發到代理服務器,等待其響應並將其寫回到瀏覽器。 我需要幫助。

在jetty-servlets工件中,有一個ProxyServlet,它將為您完成異步代理工作。

我只是嘗試一下,看看它是否適合您的需求。

在該項目的測試中,您可以啟動AsyncProxyServer並進行旋轉。

可通過自定義方法擴展用於代理的基礎連續性和碼頭客戶端。

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-servlets/src/main/java/org/eclipse/jetty/servlets/ProxyServlet.java?h=碼頭-8

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/AsyncProxyServer.java?h=碼頭-8

祝好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM