我有一个运行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");
}
不打印“测试”。事实上父母的构造函数甚至没有被调用。同时也没有显示错误。
我该如何解决这个问题?
答案 0 :(得分:2)
在Eclipse中,您需要将jspider
项目添加到crawler_GUI
项目,如下所示:
crawler_GUI
属性&gt; Java构建路径&gt;项目&gt;添加jspider
。crawler_GUI
属性&gt; Java EE模块依赖关系&gt;勾选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页面以显示结果,在web.xml
中注册servlet,通过覆盖url-pattern
中web.xml
的网址来调用它。 You can find here a lot of good JSP/Servlet tutorials
P.S:确保您了解robots.txt
政策......