我有一个正在运行的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);
ESpider.java
public ESpider(URL baseURL) throws Exception { super(baseURL); System.out.println("test"); }
它不打印“测试”。实际上,甚至没有调用父级的构造函数。同时,也不会显示任何错误。
我怎样才能解决这个问题?
在Eclipse中,您需要将jspider项目添加到crawler_GUI项目中,如下所示:
jspider
crawler_GUI
不要忘记清理/WEB- INF/classes您手动添加的所有松散文件。这是不必要的。如果您以正确的方式引用了项目,则Eclipse将自动进行处理。另外,任何松散的JAR文件都应该放在中/WEB- INF/lib。
/WEB- INF/classes
/WEB- INF/lib
现在是故事的JSP部分。很难找到根本原因,因为您是在JSP文件而不是真实的Java类中编写了原始Java代码。第一步是检查服务器日志中是否存在任何不一致之处。也可能发生ESpider了加载了错误版本的类(缺少sysout)的情况。
ESpider
正如已经暗示的那样,这实际上并不是您应该使用JSP的方式。它被用作编写HTML / CSS / JS的模板,您可以在其中借助JSTL之类的标签库动态控制流程,并使用EL访问后端数据。原始Java代码属于Java类,而不属于JSP文件。在这种情况下,您应该使用Servlet类。只需创建一个类extends HttpServlet,doGet()用相应的ESpider东西相应地实现该方法,最后转到JSP页面以显示结果,在中注册servlet web.xml并通过覆盖url-patternin中的URL对其进行调用web.xml。您可以在这里找到很多不错的JSP / Servlet教程。
extends HttpServlet
doGet()
web.xml
url-pattern
PS:请确保您了解robots.txt政策…
robots.txt