如何将 .java 文件导入 JSP 页面?
Posted
技术标签:
【中文标题】如何将 .java 文件导入 JSP 页面?【英文标题】:How import a .java file into a JSP page? 【发布时间】:2012-05-31 03:35:48 【问题描述】:这是我第一次尝试将 java 用于后端 Web 系统。
我一直在阅读一些关于如何做到这一点的指南,到目前为止我了解以下几点:
-
我不允许导入 .java 文件,而是导入类文件。
这就是我导入包的方式。
导入包后,我需要创建该类的实例。
但是,我对一些事情感到困惑。
我现在有一个动态 Web 项目,在 Eclipse IDE 中开发并使用 TomCat7.0 apache。
我有一个目录 Java_Resources/src/somepackage/
以及上面目录中的一些.java文件。
问题1,在Eclipse中,当我运行这些文件时,它们会被自动编译。这些类文件去哪里了?
问题 2,当我运行以下代码时,我收到了一些错误。我究竟做错了什么?是因为我的类文件没有放在正确的目录中吗?
<%@ page language="java" import="twitter.*"%>
<%
JavaFile jf = new Javafile();
String result = jf.searchTweets("someString");
System.out.println(result);
%>
错误报告:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /hello.jsp at line 10
7: <%@ page language="java" import="twitter.*"%>
8:
9: <%
10: Javafile jf = new JavaFile();
11:
12: String result = jf.searchTweets("someString");
13: System.out.println(result);
感谢您的时间和精力。
注意:我已阅读以下链接,但它们似乎没有提供有关如何编写您自己的 .java 文件并将这些类导入您的 jsp 文件的解决方案。
http://www.jsptut.com/
How do you import classes in JSP?
http://www.coderanch.com/t/288534/JSP/java/importing-class-file-jsp
编辑:我找到了自己的答案。
这是我原来的目录
如你所见,我的 WEB-INF/lib 是空的。
所需要做的就是将相关的 .jar 文件移动到此目录中。
注意:我已经将相关的 .jar 文件导入到 Eclipse 项目中,但在将它们导入项目之前,我似乎需要将它们移动到 WEB-INF/lib 中。
感谢所有帮助回答我问题的人。
这是我的最终目录图片
【问题讨论】:
【参考方案1】:只有类可以导入到.java
文件中,而JSP“编译”到.java
文件中,所以这个要求也适用于JSP 文件。
快速浏览一下 API,您的导入格式似乎正确;但是,您正在导入错误的命名空间。 javadoc for the twitter4j API 表示您应该导入“twitter4j”命名空间,而不是“twitter”命名空间。
【讨论】:
twitter4j 是我自己写的一个类。对不起,名称混淆。 没问题,但这正是 Sun 建议您将组织信息添加到名称空间的原因。对于我的爱好,我的命名空间看起来像edwinbuck.twitter
,我建议你做类似的事情(hehui.twitter
)。稍后再做这件事是一个真正的痛苦,因为你想导入一些在命名空间中冲突的东西。
或者org.hehui.twitter
如果你最终拥有www.hehui.org
域:) 但是你不需要拥有一个域来命名你的包。
我已经更改了问题。同样的问题仍然存在。我是否需要创建一个 WEB-INF/classes,并将我的类文件移到那里?
是的,您确实需要一个 WEB-INF/classes,并且任何导入都需要在与命名空间匹配的子目录中。或者如果你喜欢 JAR 文件,WEB-INF/lib 需要包含包含导入类的 JAR 文件。【参考方案2】:
问题1,在Eclipse中,当我运行这些文件时,它们会被自动编译。这些类文件去哪里了?
类文件进入WEB-INF/classes
目录。
问题 2,当我运行以下代码时,我收到了一些错误。我究竟做错了什么?是因为我的类文件没有放在正确的目录中吗?
也许您忘记将twitterXXX.jar
(或其他名称)放入WEB-INF/lib
目录。
【讨论】:
你的意思是,something.java(我自己写的一个文件),我需要创建一个jar文件,并把它放在WEB-INF/lib目录? 不,您正在使用的 twitter4j API 包含在 JAR 文件中,不是吗?它位于lib
目录中。
再次抱歉,造成混淆。 twitter4j 是我自己写的一个类。我将编辑问题以避免进一步混淆。
刚刚看到您的其他评论。你能说明你为你写的 Twitter4J 类有什么包声明吗?以上是关于如何将 .java 文件导入 JSP 页面?的主要内容,如果未能解决你的问题,请参考以下文章
用myeclipse,在jsp中写java代码,需要导包时不提示,必须手动导包,怎样才能让它提示并且自动导包
怎样将Excel文件导入数据库(在JSP环境下Java代码)