Java 소켓을 사용하여 프록시 서버 (Fwd 및 Reverse)를 만들었습니다.jetty8을 사용하여 프록시 서버를 만드는 방법은 무엇입니까?
브라우저에서 구성된 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);
}
}
응답을 받으면 프록시 서버로 전달하고 응답을 기다리고 브라우저에 다시 씁니다. 도움이 필요해.
당신은 코드가 여기에 기록 싶어? – Greenhorn
정확히는 아닙니다. 들어오는 요청을 캡처 할 수 있었지만 지금은 요청을 Server2로 전달하고 Server2에서 보낸 응답을 브라우저에 기록하려고합니다. 이전에는 부두가 ProxyHandler라고 불리는 클래스를 가졌지 만 이제는 Depricated와 Im이 변경에 관한 정보를 찾을 수 없다고 생각합니다. 그래서 저는 문제의 두 번째 부분에 대해서만 도움이 필요합니다. – Gaurav