1

我如何着手将此代码转换为 JSP

任何帮助表示赞赏..!

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.example.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}
4

3 回答 3

2

您可以为此使用 JSTL 标签库。首先使用在jsp顶部声明命名空间

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

然后使用 c:import 标签包含来自指定 url 的内容:

<c:import url="htp://www.example.com/" />
于 2011-01-23T14:59:03.050 回答
2

检查一下它的工作原理.......

<%@ page contentType="text/html" import="java.io.*, java.net.*" %>

<% 
    try {
        Socket s = new Socket("www.java2s.com", 80);

        BufferedReader in = new BufferedReader(new 
            InputStreamReader(s.getInputStream()));
        PrintWriter socketOut = new PrintWriter(s.getOutputStream());

        socketOut.print("GET /index.html\n\n");
        socketOut.flush();

        String line;

        while ((line = in.readLine()) != null){
            out.println(line);
        }

    } catch (Exception e){}
%>
于 2011-01-27T11:49:50.183 回答
0

您可以使用Apache HTTP 组件库来做到这一点。类似以下的内容应该适用于 HTTP 组件库:

<%@ page import="org.apache.http.*, org.apache.http.impl.*, org.apache.http.params.*, org.apache.http.protocol.*, org.apache.http.message.BasicHttpRequest, org.apache.http.util.EntityUtils,  java.net.Socket" %>

<%
HttpParams params = new SyncBasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "UTF-8");
HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
HttpProtocolParams.setUseExpectContinue(params, true);

HttpProcessor httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
        new RequestContent(),
        new RequestTargetHost(),
        new RequestConnControl(),
        new RequestUserAgent(),
        new RequestExpectContinue()});

HttpRequestExecutor httpexecutor = new HttpRequestExecutor();

HttpContext context = new BasicHttpContext(null);
HttpHost host = new HttpHost("www.example.com", 80);

DefaultHttpClientConnection conn = new DefaultHttpClientConnection();
ConnectionReuseStrategy connStrategy = new DefaultConnectionReuseStrategy();

context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);

try 
{        
     Socket socket = new Socket(host.getHostName(), host.getPort());
     conn.bind(socket, params);

     BasicHttpRequest request = new BasicHttpRequest("GET", "/");


     request.setParams(params);
     httpexecutor.preProcess(request, httpproc, context);
     HttpResponse response = httpexecutor.execute(request, conn, context);
     response.setParams(params);
     httpexecutor.postProcess(response, httpproc, context);

%>
<%=EntityUtils.toString(response.getEntity())%>
<%
} 
finally 
{
    conn.close();
}
%>
于 2011-01-23T13:27:51.413 回答