读取HTML页面内容并在JSP中解析内容

时间:2017-04-30 14:21:23

标签: java jsp netbeans java-server

在这个Java Web应用程序项目中,我首先尝试使用getUrlContentString()方法(似乎正在工作)读取页面内容,其次,仅使用方法{在标记之间显示内容{ {1}}。第二种方法似乎没有按预期响应,它返回一个空白页面。是什么导致了这个问题?

的index.jsp

proccessString ()

CookieJar.java

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <%= cookiePac.CookieJar.getUrlContentString("http://help.websiteos.com/"
                + "websiteos/example_of_a_simple_html_page.htm")%>
        <p>
            <%= cookiePac.CookieJar.proccessString()%>
        </p>

    </body>
</html>

1 个答案:

答案 0 :(得分:0)

我已经用您的代码创建了一个项目。我在那里看到了一些问题。他们在这里。

  1. 首先,您使用您指定的网址获得的静态HTML - 而不是您在浏览器控制台中看到的网址 窗口,但没有脚本执行的窗口 - 没有 包含锚标签。这就是为什么你不能得到任何这方面的内容 标签。例如,请使用此网址:http://www.cssdesignawards.com/ - 而不是 你的http://help.websiteos.com/websiteos/example_of_a_simple_html_page.htm

  2. 其次,您尝试以这种方式匹配标记: "<a>(.*?)</a>"。但实际上很难匹配任何锚标签 这个正则表达式的内容,因为通常使用CSS类,所以 增加匹配锚内容的机会的方法是使用 "<a(.*?)</a>"代替"<a>(.*?)</a>"

  3. 接下来,您的getUrlContentString方法被命名为将html作为字符串返回, 但它总是返回一个空白字符串。考虑重命名此方法或 返回rawCookiesString
  4. 此外,你有很多静态方法。 Java是面向对象的 语言,使用非静态方法的主要逻辑更好 应用。
  5. 最后,为了解析HTML,我建议你使用JSoup library。结识起来并不是很难 有了它,它为html提供了非常好的机会 解析。例如,here是一个从标签中提取信息的食谱。