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

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

GUI使用jspider项目作为其后端。

访问http://sofzh.miximages.com/java/avmszn.jpg了解结构

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

这是代码:

JSP

  <%//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"); } 

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

我怎样才能解决这个问题?

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

  1. crawler_GUI属性> Java构建路径>项目>添加jspider
  2. crawler_GUI属性> Java EE模块依赖项> Tick jspider

不要忘记清理手动添加的/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的类,相应地使用ESpider实现doGet()方法,最后转发到JSP页面以显示结果,在web.xml注册servlet并通过URL调用它来覆盖其url-pattern web.xml 。 你可以在这里找到很多很好的JSP / Servlet教程 。

PS:确保您了解robots.txt政策……