我有一个关于 JAVA 的疑问(直接从 URL 读取)。我想从 URL 读取内容。我刚刚用JAVA实现了一段代码,效果很好。但我希望该代码在 JSP 中实现。我尝试在 JSP 页面上使用它,但它不读取 URL 的内容。请帮帮我。
JAVA代码
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
JSP代码
<%@ page import="java.sql.*,java.net.*,java.io.*,java.lang.*,java.util.*"%>
<html>
<title></title>
<head></head>
<body>
<%
try{
URL oracle = new URL("http://www.oracle.com/");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}catch(Exception ex){}
%>
</body>
</html>
我使用的是 JDK1.5.0_16 和 Tomcat 版本 3.0
最佳答案
您在 JSP 中的错误是以下行:
System.out.println(inputLine);
这会将行打印到标准输出(控制台、日志文件等),而不是 HTTP 响应。
使用隐式out
引用响应输出流的对象:
out.println(inputLine);
或者,更好的是,只需使用 JSTL <c:import>
。 Scriptlets are namely discouraged since a decade 。
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<c:import url="http://www.oracle.com" />
不要忘记首先升级您古老的(这是轻描淡写的……)服务器。鉴于您正在以老式方式摆弄 JSP,我还想知道您是否正在阅读 学习 JSP 时获得正确且最新的资源。
关于java - 如何使用 JSP 和 JAVA 读取 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14085343/