JSP页面导入问题。类文件放在WEB-INF / classes中的包中

时间:2010-02-20 19:39:03

标签: java eclipse jsp web-applications web-crawler

我有一个运行Web应用程序的crawler_GUI,它的buildpath中有另一个java项目jspider。 (我使用eclipse galileo)

GUI使用jspider项目作为后端。

访问http://i45.tinypic.com/avmszn.jpg了解结构

JSP创建jspider对象的实例。首先,我没有WEB-INF / classes文件夹中的类,我纠正了这个错误。现在它似乎工作,并没有显示任何错误,但没有执行任何任务。

以下是代码:

JSP

<%@ page import = "net.javacoding.jspider.ESpider, source.Crawler"%>
<%@ page import = "java.net.URL" %>
<%//URL baseURL = new URL(Crawler.SelectedSites.get(0));
URL baseURL = new URL("http://www.buy.com");
System.out.println("******");
ESpider espider = new ESpider(baseURL);

* s打印出来。

ESpider.java

public ESpider(URL baseURL) throws Exception {
    super(baseURL);
    System.out.println("test");


}

不打印“测试”。事实上父母的构造函数甚至没有被调用。同时也没有显示错误。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

在Eclipse中,您需要将jspider项目添加到crawler_GUI项目,如下所示:

  1. crawler_GUI属性&gt; Java构建路径&gt;项目&gt;添加jspider
  2. crawler_GUI属性&gt; Java EE模块依赖关系&gt;勾选jspider
  3. 不要忘记清除您手动添加的/WEB-INF/classes中的任何松散文件。这是不必要的。如果您以正确的方式引用项目,Eclipse将自动关注此问题。此外,任何松散的JAR文件都应该放在/WEB-INF/lib中。

    现在是故事的JSP部分。由于您在JSP文件而不是真正的Java类中编写原始Java代码,因此很难确定根本原因。第一步是检查服务器日志是否存在任何不一致。也可能已经加载了ESpider类的错误版本(缺少sysout)。

    正如已经暗示的那样,这并不是你应该使用JSP的方式。它被用作编写HTML / CSS / JS的模板,其中您可以借助JSTL等标记库动态控制流程,并使用EL访问后端数据。原始Java代码属于Java类,而不是JSP文件。在这种情况下,您应该使用Servlet类。只需创建一个extends HttpServlet的类,使用doGet()内容相应地实现ESpider方法,最后转发到JSP页面以显示结果,在web.xml中注册servlet,通过覆盖url-patternweb.xml的网址来调用它。 You can find here a lot of good JSP/Servlet tutorials

    P.S:确保您了解robots.txt政策......