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
项目,如下所示:
-
crawler_GUI
属性> Java构建路径>项目>添加jspider
。 -
crawler_GUI
属性> Java EE模块依赖项> Tickjspider
。
不要忘记清理手动添加的/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
政策……