问题描述
在Eclipse中,您需要将jspider
项目添加到crawler_GUI
项目中,如下所示:
-
crawler_GUI
属性> Java构建路径>项目>添加jspider
。 -
crawler_GUI
属性> Java EE模块依赖关系>勾号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
,doGet()
用相应的ESpider
东西相应地实现该方法,最后转到JSP页面以显示结果,在中注册servletweb.xml
并通过覆盖url-pattern
in中的URL对其进行调用web.xml
。您可以在这里找到很多不错的JSP /
Servlet教程。
PS:请确保您了解robots.txt
政策…
解决方法
我有一个正在运行的Web应用程序crawler_GUI,其buildpath中有另一个Java项目jspider。(我用蚀伽利略)
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");
}
它不打印“测试”。实际上,甚至没有调用父级的构造函数。同时,也不会显示任何错误。
我怎样才能解决这个问题?