这段代码是网上搜的,我不明白他这个是怎么实现代理的?我之前看过一个例子是用socket来做的,用了某个端口,这个servlet的代码能一直代理访问用户需要的url?不理解。。求指导非常谢谢import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; public class Proxy extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String query = null; response.setContentType("text/html"); PrintWriter out = response.getWriter(); query = request.getParameter("URL"); if (query == null) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Missing URL parameter"); return; } try { query = URLDecoder.decode(query); } catch(Exception exception) { response.sendError(HttpServletResponse.SC_BAD_REQUEST, "URL decode error " + exception); return; } try { URL url = new URL(query); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); String line; while ((line = in.readLine()) != null) out.println(line); out.flush(); } catch(IOException exception) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Exception: " + exception); } } }
但是doget这个类是用户访问Proxy这个webapp时,才会响应的吧,那他的request url指的是什么呢?
难道访问了Proxy这个程序后,就能控制之后所有的url请求都走这个代理?还是不理解。。谢谢。。