【问题标题】:Eclipse and JSP programing. Where to store classes?Eclipse 和 JSP 编程。在哪里存储课程?
【发布时间】:2011-11-01 09:17:37
【问题描述】:

我正在尝试使用 Eclipse 学习一些 JSP 编程,但遇到了一些问题:

这是我所拥有的:
1) 在 WebContent 文件夹中有 test.jsp 文件,它只显示“Hello World!”。我选择了文件并单击了运行方式。要求我重新启动 Tomcat 服务器。单击“是”并在 Eclipse 中打开显示“Hello World!”的页面。
2) 我编写了 Car 类并将其存储在 Java Resources/src
3) 尝试在我的测试 JSP 中引用 Car 类,一切似乎都正确。 (代码如下)

<%@ page import="ws.example.*" %>
<%  
    car myCar = new car("dodge", "neon");
    out.println(myCar.getMake());
&>

4) 再次单击“运行方式”,我收到了 Hello World 消息。单击刷新,错误显示 car MyCar = new car("dodge", "neon");无法解析为类型。
5)再次点击刷新两次,第二次点击消息“Hello World!”出现了。
6)一直点击刷新按钮,有时我会出错,有时是Hello World。我知道 Hello World 来自现金,但我怎样才能避免这种情况呢?很烦人。

问题:
1) 当我对项目进行更改时,如何确保在启动项目时包含这些更改?
2) 存放课程的好地方在哪里?显然我的尝试没有奏效。

更新:

这是我的课:

package ppp;

public class MyCar {

    String make;
    String model;

    public MyCar(String make, String model) {
        this.make = make;
        this.model = model;
    }

    public String getMake()
    {
        return make;

    }
    public String getModel()
    {
        return model;
    }
}

这是我的 JSP 代码(NewFile.jsp):

<%
    ppp.MyCar car = new ppp.MyCar("", "");
%>

项目结构:

 TestProject  
     - Deployment Descriptor: TestProject  
     - Java Resources  
         - src  
             - MyCar.java   
         - Libraries  
             - ...  
     - JavaScript Resources    
     - build  
     - WebContent  
         - META-INF
         - WEB-INF
         - NewFile.jsp

我只是在这里看不到任何错误的余地。

谢谢

【问题讨论】:

    标签: java eclipse class jsp storage


    【解决方案1】:

    原来我的工作区中有一个项目正在破坏整个 Eclipse。不知道为什么也不知道如何,但是在我删除了那个项目之后,我的代码开始工作了。 我怎么知道哪个项目不好?如果我要执行“全部构建”(在项目下),Eclipse 会在 Eclipse 状态行中显示“正在验证 MyProjectName”消息,它会卡在 60% 上,并且会在那里停留 10 或 15 分钟。

    【讨论】:

      【解决方案2】:

      1) 当我对项目进行更改时,如何确保在我启动项目时包含这些更改?

      重新发布服务器。它是 Servers 视图中服务器的右键菜单选项。如果无效,请重建项目并清理服务器。您可以在服务器的属性中配置自动发布。

      服务器对此的行为取决于服务器品牌/版本和插件。例如,Tomcat 是一个糟糕的发布者,您宁愿只是重新启动服务器。 Glassfish 及其插件是一个了不起的发布者,它基本上是实时发生的。

      顺便说一句,我从不使用 Run as 选项,也从不使用 Eclipse 的内置浏览器。众所周知,它很穷。我只是启动服务器,然后在我自己喜欢的网络浏览器(例如 Firefox、Chrome 等)中打开页面。


      2) 存放课程的好地方在哪里?显然我的尝试没有奏效。

      以通常的方式在运行时类路径中某处的包中。


      与具体问题无关:尝试使用 naming conventions(类名应以大写开头)并尝试使用 avoid putting Java code in JSP(这是一种非常糟糕的做法)。

      【讨论】:

      • 1) 尝试“发布”,它的行为相同。有时它会显示错误,有时会显示“Helo World”。 2)你能解释一下“在运行时类路径中的某个包中”吗?我可以将我的类保存在 Java Resources/src 中并从 jsp 文件中引用它吗?
      • 1) 什么服务器制造/版本?你试过真正的网络浏览器吗? 2)这就是我所说的。只需将您的类存储在运行时类路径中某处的包中。是的,在src 文件夹内非常好。例如,它也可以是作为 WAR 的 JAR 部署的子项目。真的没关系,只要它最终在 webapp 的运行时类路径中的包中。
      • Tomcat 6.0.是的,我在真正的浏览器中尝试过。这是相同的。刷新要么显示错误,要么显示 hello-world 消息。而且,我无法引用我的班级。知道为什么调用 (car myCar = new car("dodge", "neon");) 无法解析为类型。我想我正确地引用了它。
      • 哦。而且您对我不应该将 java 代码放入 JSP 代码的说法感到困惑。我认为 的全部意义在于在服务器端执行 java 代码。我错过了什么?
      • 好吧,也许 Tomcat 仍然很脏(如前所述,它在 Java 代码方面是一个糟糕的发布者)。尝试右键单击它,然后 Clean 或在每次更改 Java 代码时重新启动它。 JSP文件中的Java代码,点击链接仔细阅读即可。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-11
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多