如何将 .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代码)

我在Myeclipse导入了一个外部工程,但是webroot下的jsp文件全部出现红叉的错误,是否导包的问题?

如何在Jsp页面中导入JAVA类

如何在Jsp页面中导入JAVA类

JSP导入EXCEL样式