如何将.java文件导入JSP页面?

如何将.java文件导入JSP页面?,java,eclipse,jsp,tomcat,Java,Eclipse,Jsp,Tomcat,这是我第一次尝试将java用于后端web系统 我一直在阅读一些关于如何做到这一点的指南,到目前为止,我了解以下几点: 我不允许导入.java文件,而是导入类文件 这就是我导入包的方式 导入包后,我需要创建类的实例 然而,我对一些事情感到困惑 我现在有一个动态Web项目,在EclipseIDE中开发,并使用TomCat7.0Apache 我有一个目录 Java_资源/src/somepackage/ 以及上面目录中的一些.java文件 问题1,在Eclipse中,当我运行这些文件时,它们会自动编译

这是我第一次尝试将java用于后端web系统

我一直在阅读一些关于如何做到这一点的指南,到目前为止,我了解以下几点:

  • 我不允许导入.java文件,而是导入类文件
  • 这就是我导入包的方式
  • 导入包后,我需要创建类的实例
  • 然而,我对一些事情感到困惑

    我现在有一个动态Web项目,在EclipseIDE中开发,并使用TomCat7.0Apache

    我有一个目录 Java_资源/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);
    
    类型异常报告
    消息
    说明服务器遇到内部错误(),无法完成此请求。
    例外
    org.apache.jasper.jaspereException:在第10行处理JSP页面/hello.JSP时发生异常
    7: 
    8: 
    
    9:只有类可以导入到
    .java
    文件中,JSP“编译”到
    .java
    文件中,因此此要求也适用于JSP文件

    快速浏览一下API,您的导入似乎格式正确;但是,您导入了错误的命名空间。指示应该导入“twitter4j”名称空间,而不是“twitter”名称空间

    问题1,在Eclipse中,当我运行这些文件时,它们会自动编译。这些类文件放在哪里

    类文件位于
    WEB-INF/classes
    目录中

    问题2,当我运行以下代码时,我收到了一些错误。我做错了什么?是因为我的类文件不在正确的目录中吗

    <%@ page language="java" import="twitter.*"%>
    
    <%
        JavaFile jf = new Javafile();
    
        String result = jf.searchTweets("someString");
        System.out.println(result);
    %>
    

    也许你忘了把
    twitterXXX.jar
    (或者叫什么名字)放到
    WEB-INF/lib
    目录中。

    twitter4j实际上是我自己写的一个类。很抱歉名称混淆。这不是问题,但这正是Sun建议您将组织信息添加到命名空间的原因。对于我的爱好,我的名字空间看起来像
    edwinbuck.twitter
    ,我建议你做类似的事情(
    hehui.twitter
    )。以后这样做真的很痛苦,因为你想导入一些名称空间冲突的东西。或者
    org.hehui.twitter
    如果你最终拥有
    www.hehui.org
    domain:),但是你不需要拥有一个域来命名你的包。我已经改变了这个问题。同样的问题仍然存在。我是否需要创建WEB-INF/classes并将类文件移动到那里?是的,您确实需要WEB-INF/classes,并且任何导入都需要在与名称空间匹配的子目录中。或者,如果你喜欢JAR文件,WEB-INF/lib需要包含包含导入类的JAR文件。你的意思是,something.java(我自己编写的文件),我需要创建一个JAR文件,并将其放在WEB-INF/lib目录中吗?不,你正在使用的twitter4j API是JAR文件,不是吗?它位于
    lib
    目录中。再次为混淆表示抱歉。twitter4j是我自己写的一个类。我将编辑这个问题以避免进一步的混乱。刚才看到了你的其他评论。您能展示一下您为Twitter4J类编写的包声明吗?