首页 文章

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

提问于
浏览
0

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

这将听取在浏览器中配置的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);
          }
}

一旦得到响应,我想将其转发到代理服务器,等待其响应并将其写回浏览器 . 我需要帮助 .

1 回答

相关问题