用Eclipse Europa举办Web开拓,第1部门 – Eclipse Java EE
当前位置:以往代写 > JAVA 教程 >用Eclipse Europa举办Web开拓,第1部门 – Eclipse Java EE
2019-06-14

用Eclipse Europa举办Web开拓,第1部门 – Eclipse Java EE

用Eclipse Europa举办Web开拓,第1部门 – Eclipse Java EE

副标题#e#

成为一名 Web开拓人员恰逢那时。从来未曾像此刻一样有如此多的技能选择 。大量优秀的开源 Web 处事器、数据库、编程语言和开拓框架供您利用。无论 您但愿利用哪种技能组合,都存在可以提跨越产力的集成开拓情况 (IDE): Eclipse。本教程是三部门系列教程 “Web development with Eclipse Europa” 的第 1 部门,将先容如何通过 Eclipse 实现利用 Java™ 技能、PHP 和 Ruby 的 Web 开拓,查察如何利用 Eclipse 的最新版本 —— Europa —— 来快速开拓 Java Web 应用措施。我 们将利用 Java Platform, Enterprise Edition 5 (Java EE) for Eclipse 来 构建用于跟踪和计较棒球统计信息的 Web 应用措施。

开始之前

Eclipse 开拓人员一直致力于使 Web开拓人员可以更轻松 地事情。Eclipse 的 Europa 刊行版提供了几个颠末调解的 Eclipse 版本,包 括合用于 Web 开拓人员的版本。

关于本系列

在 “用 Eclipse Europa 举办 Web 开拓” 系列中,您将相识到无论选择何种语言 ,Eclipse 都是合用于 Web开拓的平台。机动的插件系统使它可以轻松地建设 各类针对利用 Java 技能、PHP 和 Ruby 的 Web 开拓而定制的 Eclipse 版本。 您将看到差异的插件奈何为每种语言提供奇特的 Eclipse 成果,还将看到所有 Web 开拓人员都可以操作的一些常用成果。在本系列中,我们将建设一个样例棒 球 Web 应用措施,该应用措施将答允我们输入棒球球员的角逐数据并计较那些 球员的统计信息。

关于本教程

作为三部门系列教程的第 1 部门 ,本教程将利用 Eclipse Java EE 版本举办 Java Web 开拓,利用 Eclipse 连 接到数据库、建设表并在数据库中建设测试数据。设置 Eclipse 以利用 Web 服 务器,然后利用 Eclipse 的领导来建设 Web 应用措施、Web 页面和数据会见代 码。最后,将利用 Eclipse 节制 Web 处事器,宣布应用措施,甚至当应用措施 在处事器上运行时调试应用措施。

先决条件

拥有 Java 编程配景 对付发挥本教程的最大功能至关重要。熟悉 Eclipse IDE 将十分有辅佐,但并 非须要。

系统要求

需要满意以下条件:

Eclipse Europa 本教程将利用 Eclipse V3.3 (Europa)。Java Development Kit (JDK) 本教程 将向您展示如何利用 Java 技能开拓 Web 应用措施,因此需要利用 Java Development Kit (JDK) 5.0 或更高版本。下载 V5.0 或 V6.0。Eclipse IDE for Java EE Developers 还需要利用 Eclipse IDE for Java EE Developers。 Java 运行时情况(Java Runtime Environment,JRE) 要运行 Eclipse,必需 配备 JRE。Apache Tomcat 应用措施将利用 Apache Tomcat 作为容器。MySQL V5.0 应用措施将利用 MySQL V5.0 作为数据库。Java Persistence API 还需要 利用 Java Persistence API,出格是 OpenJPA 实现。

Eclipse:哪个版本?

假如查察 Eclipse.org 的下载部门,您将看到 若干个可用的 Eclipse 刊行版。我们将利用 Eclipse IDE for Java EE Developers。

Java EE

Eclipse IDE for Java EE Developers 将 为您提供举办 Java Web 开拓所需的成果:Java 编译器和调试器;对 Java 应 用处事器、数据库客户端的支持;合用于 Web 应用措施、Web 处事和 Enterprise JavaBean (EJB) 的领导等。值得留意的是 HTML 文件和 Java Server Page (JSP) 的图形编辑器。附带的大大都成果都可以在 Eclipse 的先 前版本中找到。在 Europa 刊行之前,需要下载此刻被称为 Eclipse 经典版的 版本并安装附加插件。利用 Europa 刊行版,这一操纵已经被全部简化,而且针 对 Java Web 开拓对 Java EE 包举办了全面的调解。

提示:Java EE 包 是按成果打包的。要支持所有这些成果,需要耗损开拓计较机中的一些资源。建 议编辑 eclipse.ini 设置文件来增加 Europa 的内存利用量。按照所用操纵系 统的差异,此文件的存放位置会有所差异。要增加内存利用量,请编辑 -vmargs 。在本教程中开拓应用措施期间所利用的内存配置如下所示:

清单 1. eclipse.ini -vmargs

-Xms256m
-Xmx512m
- Xmn128m
-XX:+UseParallelGC
- XX:MaxPermSize=128m

安装 Europa 的 Java EE 版本,然后设置 数据库和 Web 处事器。接下来将查察这些步调。

基本设施

Eclipse 使 Web 开拓比以往更简朴,可是我们仍然需要一些基本设施。 需要用于生存和检索数据的数据库。Eclipse 为利用数据库提供了优秀东西,因 此需要做的就是建设一个空数据库,也可以重用已有的数据库。下面所示的 MySQL 呼吁将建设一个空数据库。

清单 2. 建设数据库

mysql>
Newton:~ michael$ mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor. Commands  end with ; or \g.
Your MySQL connection id is 9
Server version: 5.0.41 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the  buffer.

mysql> create database baseball;
Query  OK, 1 row affected (0.04 sec)

mysql>

#p#分页标题#e#

已经完成了一部门基本设施。此刻需要一个 Web 处事器。可以利用任意的 Java Web 容器,包罗应用处事器,譬喻 Apache Geronimo 或 IBM® WebSphere®。保持所有内容只管简朴而且只利用一个 Web 容器 —— 在本例中为 Apache Tomcat V6.0。您不需要对 Tomcat 举办任 何非凡操纵。此刻基本设施已经停当,让我们接着利用 Eclipse 来开拓 Web 应 用措施。


#p#副标题#e#

Baseball 应用措施:利用数据库

为了演示 Eclipse 的 强大,我们将构建用于跟踪棒球统计信息的 Java Web 应用措施。它是一个很是 简朴的应用措施,答允我们输入棒球球员的角逐数据并计较那些球员的统计信息 。首先需要做的是建设数据库模式。

建设模式

打开 Eclipse 时 ,将需要打开 Data Source Explorer 窗口。右键单击 Databases 文件夹并选 择 New,如下所示:

图 1. Data Source Explorer

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

Eclipse 将询问您该当将哪类毗连用于数据库。选择 Generic JDBC Connection。

图 2. 毗连范例

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻设置毗连。需要汇报 Eclipse 毗连到哪个数据库。我们在清单 2 中已经建设了一个 baseball 数据库,因此就利用谁人数据库。

图 3. JDBC 毗连设置

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

需要通过单击 Browse 按钮建设一个新驱动措施,如上所示。此操纵 将打开各类数据库范例列表。

图 4. 数据库范例

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

向下转动找到 MySQL V5.1(可能任何一种合用于您所用数据库的范例 )。单击 Add 打开驱动措施界说对话框。

图 5. JDBC 驱动措施界说

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

单击 Add Jar/Zip。此操纵将打开一个简朴的文件欣赏器,您可以使 用该欣赏器欣赏到已下载的 MySQL 驱动措施的 JAR 文件。选中 JDBC JAR 之后 ,该当会刷新驱动措施界说列表。

图 6. 更新驱动措施界说列表

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻可以选择刚建设的驱动措施界说并单击 OK。此操纵将打开毗连属 性。您大概需要编辑此属性以反应将利用的用户名和暗码。

图 7. JDBC 毗连属性

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

输入相应的毗连信息后,可以测试毗连。该当会显示一个乐成对话框 。

图 8. 测试毗连

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

假如未得到如上所示的乐成动静,则需要调解配置。毗连测试通事后,该当 可以或许在 Data Source Explorer 中启动与数据库的毗连。

图 9. 从 Data Source Explorer 毗连

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻已经建设了与数据库的毗连。该来为将要存储的数据建设一些表了。

建设表

要建设表,首先要查察 Data Source Explorer 中的表列表。

图 10. 列出的数据库表

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

今朝还没有表,因为还未建设。假如重用现有数据库,则该当会看到表列表 。无论是哪一种环境,都请右键单击 Tables 文件夹,然后选择 New Table。

图 11. 选择新建表

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此操纵将打开建设选项列表。

图 12. 建设表选项

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

此操纵将打开新建表对话框。

图 13. 新建表

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

我们将建设一张名为 Players 的表并给它提供三列:Id、First_Name 和 Last_Name。所有这三列都是必须的,而且以 Id 为主键。

图 14. 主键界说

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

单击 Finish。此操纵差池数据库执行任何 SQL DDL。相反,它将为您生成 SQL 语句。

图 15. 生成的 SQL 语句

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

#p#分页标题#e#

这个中最棒的是可以在执行前亲自调解 SQL。把 Id 列配置为自动累加的列 ,并把 first-name 和 last-name 列中的字符长度限制为 50 个字符。该 SQL 将雷同清单 3。

清单 3. Players 表 SQL

CREATE TABLE Players (
    Id INT NOT NULL AUTO_INCREMENT,
    First_Name VARCHAR(50) NOT NULL,
    Last_Name VARCHAR(50) NOT NULL,
    PRIMARY KEY (Id)
);

要执行 SQL,请高亮选中并右键单击 Execute selected Text。

图 16. 执行 SQL

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

执行 SQL 后该当会在 SQL Results 窗口中生成一条确认乐成的动静。

图 17. 确认 SQL 执行乐成

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

您已经从 Eclipse 中建设了 Players 表,还可以打开 Data Source Explorer 来检讨劳动成就。

图 18. 从 Data Source Explorer 查察 Players 表

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

还需要别的一张表,该表将生存棒球应用措施的角逐数据。可以凭据上面的 要领建设。需要执行的最后一条 SQL 语句如清单 4 所示:

清单 4. Games 表 SQL

CREATE TABLE Games (
    Id INT NOT NULL AUTO_INCREMENT,
    Player_Id INT DEFAULT '' NOT NULL,
    AB INT DEFAULT 0 NOT NULL,
    H INT DEFAULT 0 NOT NULL,
    2B INT DEFAULT 0 NOT NULL,
    3B INT DEFAULT 0 NOT NULL,
    HR INT DEFAULT 0 NOT NULL,
    BB INT DEFAULT 0 NOT NULL,
    R INT DEFAULT 0 NOT NULL,
    RBI INT DEFAULT 0 NOT NULL,
    PRIMARY KEY (Id)
);

CREATE INDEX Player_Id ON Games (Player_Id ASC);

执行完该 SQL 语句后,就已经建设了应用措施所需的两张表。在利用数据库 期间,让我们继承并输入一些测试数据。

#p#副标题#e#

输入测试数据

利用 Eclipse 建设表很是简朴。打点那些表中的数据甚至更简朴。可以右键 单击 Data Source Explorer 中的表名并选择 Data > Edit 开始添加数据。

图 19. 向 Players 表中添加数据

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此操纵将打开用于输入表格数据的简朴图形界面。

图 20. 输入数据

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

可以按照需要添加任意数目标数据。只需要为 First_Name 和 Last_Name 输 入值。完成后,在表内右键单击鼠标并选择 Save。

图 21. 生存测试数据

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

在 SQL Results 窗口中,您将看到正被执行的实际 SQL 以及数据库的返回 动静。可以在 Players 窗口中右击并选择 Refresh。此操纵将从数据库中从头 查询数据。您将看到行的 ID,因为这些数据是由数据库建设的。此刻我们可以 对 Games 表执行沟通操纵。按照需要建设测试数据。完成后,就可以配置 Eclipse 来利用 Web 处事器。

#p#副标题#e#

利用 Web 处事器

在此部门中,先相识 Eclipse 的根基观念和透视图,然后再配置 Eclipse 来利用 Web 处事器。完成后,将开始实际编写应用措施的进程。

用 Eclipse 配置 Tomcat

Eclipse 中的一个重要观念是透视图。差异的透视图将为您提供合用于详细 开拓范例的窗口和呼吁组。让我们通过选择 Window > Open Perspective > Other 再选择 Java EE 切换到 Java EE 透视图。

图 22. 切换到 Java EE 透视图

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻选择 File > New > Other 并从列表中选择 Server。

图 23. 新处事器

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

单击 Next 并为处事器界说选择 Tomcat v6.0 Server。需要选择一个运行时 。

图 24. 选择处事器运行时

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

在文件欣赏器中欣赏到 Tomcat 安装目次。当 Eclipse 知道 Tomcat 目次的 地址位置后,单击 Finish。此刻已经配置了应用措施的所有基本设施,该开始 编写一些代码了。

#p#副标题#e#

建设 Web 应用措施

是时候开始开拓此 Web 应用措施了。这是 Eclipse 发挥实际浸染的部门。 选择 File > New > Other 并选择 Dynamic Web Application 来建设新 Web 应用措施。

图 25. 新动态 Web 应用措施

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

接下来,填写项目名称 —— 称为 baseball。还要将方针运行时设为刚建设 的 Tomcat V6.0 处事器。

图 26. 项目信息

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#分页标题#e#

完成后,该开始开拓应用措施的域模子了。单击 Next 以打开 Project Facets。将利用 Java Persistence API 来打点数据会见(下一部门中将先容有 关该操纵的更多信息),因此确保选中该选项。

图 27. Project facets

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

单击 Next。此操纵将打开 Web 模块元数据。在这里可以利用默认值,但我 喜欢把 Web 模块目次称为 “war”,可以一目了然地领略所构建的内容。

图 28. Web 模块信息

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

单击 Next 将打开 JPA 设置。由于利用的是 Tomcat,因此没有 “内置的” JPA 实现。如 “系统要求” 中所述,利用 OpenJPA。需要选择 Configure default JPA implementation library。

图 29. JPA 设置

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此操纵将打开 Default JPA Implementation Library 首选项。单击 Configure user libraries。

图 30. 为默认 JPA 实现库配置用户库

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

这将使您可以选择 OpenJPA(可能其他实现,譬喻 TopLink 或 Hibernate) JAR 文件。设置了 JPA 实现后,系统将把您带回到 JPA 设置屏幕中,您可以在 该屏幕中选择新库,然后单击 Finish。

图 31. JPA 设置完成

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

单击 Finish,然后 Eclipse 将开始事情。它将建设 Web 应用措施所需的目 录布局以及所需的很多工件,譬喻 web.xml 和 persistence.xml 文件。此刻应 用措施已经成立,让我们开始建设它的域模子。

Eclipse 和数据会见代码:利用 JPA

相识 Java Persistence API 如何能减轻在 Java 语言中利用数据库的疾苦 ,并相识 Java EE for Eclipse 如安在开始建设应用措施的域模子时支持该域 模子。

建设域模子:利用 JPA

假如您是一名早期 Java 开拓人员,则知道利用数据库有何等疾苦。凡是涉 及建设大量 JDBC 代码某人工编写的长串 SQL 字符串,还涉及用很多接口建设 实体 EJB 并编写陈设描写符。那种日子已经一去不复返,这要归功于 EJB V3.0 和 JPA 的呈现。此刻不单 EJB 易于利用,并且无需利用重量级应用处事器就可 以利用它们。

Java EE for Eclipse 可以充实支持 JPA。甚至还提供了 JPA 透视图。要切 换到该透视图,请选择 Window > Open Perspective > Other 并选择 JPA Development。

图 32. 打开 JPA 开拓透视图

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

要建设域模子,只需建设简朴的 Java 类。首先为 Players 表建设一个名为 org.developerworks.baseball.Player 的类。该类的代码如清单 5 所示:

清单 5. Player 类

package  org.developerworks.baseball;

public class Player {
    private int id;
    private String firstName;
    private String lastName;
}

您将需要此类的 getter 和 setter。幸运的是,Eclipse 使这一切变得十分 简朴。选择 Source > Generate Getters and Setters。

图 33. 生成代码

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

此操纵将打开 Generate Getters and Setters 对话框。单击 Select All 和 OK。

图 34. 生成 getter 和 setter

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

获得的代码如清单 6 所示:

清单 6. 带有 getter 和 setter 的 Player 类

package  org.developerworks.baseball;

public class Player {
    private int id;
    private String firstName;
    private String lastName;
    public int getId() {
      return id;
    }
    public void setId(int id) {
      this.id = id;
    }
    public String getFirstName() {
      return firstName;
    }
    public void setFirstName(String firstName) {
      this.firstName = firstName;
    }
    public String getLastName() {
      return lastName;
    }
    public void setLastName(String lastName) {
      this.lastName = lastName;
    }
}

要把类与数据库表关联起来,请在 JPA Structure 窗口中单击 Player 类。

图 35. JPA 布局

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

在 JPA Details 中,选择 Map As > Entity。

图 36. JPA 具体信息

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

在 Table 部门中,选择模式,而且可以在 Name 下拉框中选择 Players 表 。

图 37. 指定表

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此操纵该当会使代码产生变动。

图 38. 生成的 player 代码

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

在 Package Explorer 中选择 persistence.xml 文件,右键单击该文件,然 后选择 JPA Tools > Synchronize Classes。

图 39. 与数据库同步

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此操纵将使 Eclipse 针对数据库验证代码。您将留意到本身的代码无效。

图 40. 无效的 Player 类

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

这是怎么回事?看看 Problems 窗口。

图 41. Problems 窗口

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

第一个问题是我们的类未指定主键。要办理此问题,请在 JPA Structure 窗 口中单击 Id 属性。在 JPA Details 窗口中,选择 Map As > Id。

图 42. ID 属性的 JPA 具体信息

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#分页标题#e#

另请留意,由于 ID 列已配置为自动累加的列,因此需要指定主键利用 Identity 键生成计策。假如再执行一次 JPA 同步,就该当会看到已包办理了一 个问题。

其他问题源自 JPA 不能把 firstName 和 lastName 字段映射到 Players 表 的列中。那是因为没有把 Java 字段定名为与表列完全沟通的名称。在 JPA Structure 窗口中选择 firstName 字段。在 JPA Details 的下拉列表中选择相 应的列。

图 43. 把 firstName 映射到 First_Name

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

对 lastName 字段执行沟通的操纵。再执行一次 JPA 同步,所有问题都该当 会办理。该当会更新 Player 类的代码,如清单 7 所示:

清单 7. 完成的 Player 类

package  org.developerworks.baseball;

import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Column;

@Entity
@Table(schema="baseball", name = "Players")
public class Player {
    @Id
    @GeneratedValue(strategy=IDENTITY)
    private int id;
    @Column(name="First_Name")
    private String firstName;
    @Column(name="Last_Name")
    private String lastName;
    public int getId() {
      return id;
    }
    public void setId(int id) {
      this.id = id;
    }
    public String getFirstName() {
      return firstName;
    }
    public void setFirstName(String firstName) {
      this.firstName = firstName;
    }
    public String getLastName() {
      return lastName;
    }
    public void setLastName(String lastName) {
      this.lastName = lastName;
    }
}

#p#副标题#e#

此刻可以执行沟通的进程并建设映射到 Games 表的 Game 类。Game 类的代 码如清单 8 所示:

清单 8. Game 类

#p#分页标题#e#

package  org.developerworks.baseball;

import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Column;

@Entity
@Table(schema="baseball", name = "Games")
public class Game {
    @Id
    @GeneratedValue(strategy=IDENTITY)
    private int id;
    @ManyToOne(optional=false)
   @JoinColumn(name="Player_Id", nullable=false, updatable=false)
    private Player player;
    @Column(name="H")
    private int hits;
    @Column(name="2B")
    private int doubles;
    @Column(name="3B")
    private int triples;
    @Column(name="HR")
    private int homeRuns;
    @Column(name="BB")
    private int walks;
    @Column(name="R")
    private int runs;
    @Column(name="RBI")
    private int rbis;
    @Column(name="AB")
    private int atBats;
    public int getId() {
      return id;
    }
    public void setId(int id) {
      this.id = id;
    }
    public Player getPlayer() {
      return player;
    }
    public void setPlayer(Player player) {
      this.player = player;
    }
    public int getHits() {
      return hits;
    }
    public void setHits(int hits) {
      this.hits = hits;
    }
    public int getDoubles() {
      return doubles;
    }
    public void setDoubles(int doubles) {
      this.doubles = doubles;
    }
    public int getTriples() {
      return triples;
    }
    public void setTriples(int triples) {
      this.triples = triples;
    }
    public int getHomeRuns() {
      return homeRuns;
    }
    public void setHomeRuns(int homeRuns) {
      this.homeRuns = homeRuns;
    }
    public int getWalks() {
      return walks;
    }
    public void setWalks(int walks) {
      this.walks = walks;
    }
    public int getRuns() {
      return runs;
    }
    public void setRuns(int runs) {
      this.runs = runs;
    }
    public int getRbis() {
      return rbis;
    }
    public void setRbis(int rbis) {
      this.rbis = rbis;
    }
    public int getAtBats() {
      return atBats;
    }
    public void setAtBats(int atBats) {
      this.atBats = atBats;
    }
}

所有的类都完成了映射。最后需要做的就是编辑 persistence.xml。这是 Java Persistence API 的键元数据类并包括毗连信息。

清单 9. persistence.xml

<?xml version="1.0"  encoding="UTF-8"?>
<persistence version="1.0"  xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
  http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
    <persistence-unit name="baseball">
      <class>org.developerworks.baseball.Game</class>
      <class>org.developerworks.baseball.Player</class>
   <properties>
    <property name=\
"openjpa.ConnectionURL"  value="jdbc:mysql://localhost:3306/baseball"/>
    <property name="openjpa.ConnectionDriverName"  value="com.mysql.jdbc.Driver"/>
    <property name="openjpa.ConnectionUserName" value="root"/>
    <property name="openjpa.ConnectionPassword"  value="password"/>
    <property name="openjpa.Log" value="DefaultLevel=WARN,  Tool=INFO"/>
   </properties>
    </persistence-unit>
</persistence>

#p#分页标题#e#

Eclipse 该当已经为您把类放到此文件中。您只需放入数据库的毗连信息。 此刻已经利用 Eclipse 配置了 Java Persistence API 以举办数据会见,接下 来可觉得这些数据建设 UI。

#p#副标题#e#

Eclipse 和 Web 页面

在此部门中,将为要会见的数据建设 UI,把 JSP Model 2 架构用于我们的 应用措施。首先建设用于处理惩罚业务逻辑的 servlet,然后将其转发给用于泛起输 出的 JSP。

建设 servlet

利用 Eclipse 建设 servlet。返回到 Java EE 透视图,右键单击 baseball 项目并选择 New > Servlet。

图 44. 新建 servlet

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此操纵将打开 Create Servlet 对话框。填写 servlet 的 Java package 和 Class name 并单击 Next。

图 45. 建设 servlet

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

在这里无需举办任何编辑操纵,可是请留意指向 servlet 的 URL 映射。这 是会见 servlet 所需的相关 URL。Eclipse 将自动为我们在 web.xml 文件中设 置此 servlet 映射。基础不需要窜改该文件。记着此映射并单击 Finish。

图 46. Servlet 信息

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

在 Servlet 类中,利用 Java Persistence API 来得到所有球员的列表并将 此列表转发给 JSP。该 servlet 的代码如清单 10 所示:

清单 10. PlayerServlet 代码

package  org.developerworks.baseball.web;

import java.io.IOException;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.developerworks.baseball.Player;

/**
  * Servlet implementation class for Servlet:  PlayersServlet
  *
  */
  public class PlayersServlet extends  javax.servlet.http.HttpServlet
    implements javax.servlet.Servlet {
   static final long serialVersionUID = 1L;
   private EntityManagerFactory factory;
   private EntityManager em;
   /* (non-Java-doc)
    * @see javax.servlet.http.HttpServlet#HttpServlet()
    */
    public PlayersServlet() {
      super();
      factory = Persistence.createEntityManagerFactory ("baseball");
      em = factory.createEntityManager();
    }

    /* (non-Java-doc)
    * @see javax.servlet.http.HttpServlet#doGet (HttpServletRequest request,
                          HttpServletResponse  response)
    */
    @SuppressWarnings("unchecked")
    protected void doGet(HttpServletRequest request,  HttpServletResponse response)
                         throws  ServletException, IOException {
|-------10--------20--------30--------40--------50--------60-------- 70--------80--------9|
|-------- XML error: The previous line is longer than the  max of 90 characters ---------|
      List<Player> players =
      em.createQuery("select p from Player p").getResultList ();
      request.setAttribute("players", players);
      request.getRequestDispatcher("/players.jsp").forward (request, response);
    }

    /* (non-Java-doc)
    * @see javax.servlet.http.HttpServlet#doPost (HttpServletRequest request,
                            HttpServletResponse response)
    */
    protected void doPost(HttpServletRequest request,  HttpServletResponse response)
                         throws  ServletException, IOException {
|-------10--------20--------30--------40--------50--------60-------- 70--------80--------9|
|-------- XML error: The previous line is longer than the  max of 90 characters ---------|
      this.doGet(request, response);
    }
}

#p#分页标题#e#

留意,在 servlet 的结构函数中,利用 Java Persistence API 建设引用 “baseball” 耐久单位的 EntityManager 实例。此耐久单位来自 persistence.xml,如清单 9 所示:

建设视图的 JSP

用 Eclipse 建设 JSP 十分轻松。只需右键单击 baseball 项目并选择 New > JSP。

图 47. 新建 JSP

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

首先只需列出棒球球员。该列表的代码如清单 11 所示:

清单 11. players.jsp

<%@ page language="java"  contentType="text/html; charset=ISO-8859-1"
   pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01  Transitional//EN"
                   "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO -8859-1">
<title>Baseball Players</title>
</head>
<body>
    <table>
      <thead>
         <tr>
           <td>First Name</td>
           <td>Last Name</td>
         </tr>
      </thead>
      <c:forEach items="${players}" var="player">
         <tr>
           <td>${player.firstName}</td>
           <td>${player.lastName}</td>
         </tr>
      </c:forEach>
    </table>
</body>
</html>

用 Eclipse 举办陈设

我们建设了一个根基应用措施,且已经筹备好测试。此时可以想到大概要用 Ant 或诸如 Perl 或 Groovy 之类的剧本语言编写陈设剧本。您可以那样做 — — Eclipse 可以很好地支持 Ant 和 Maven —— 可是有一种更轻松的要领。

从 Eclipse 运行

要从 Eclipse 陈设应用措施,只需右键单击 baseball 项目并选择 Run As > Run On Server。

图 48. 在处事器上运行应用措施

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

Eclipse 将询问需要陈设到哪台处事器。只需选择先前建设的 Tomcat 实例 并单击 Finish。

图 49. 选择处事器

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#副标题#e#

此操纵将打开 Servers 窗口并显示 baseball 应用措施已经宣布到 Tomcat 中。

图 50. 宣布到 Tomcat 中的 Baseball 应用措施

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻可以在 Web 欣赏器中键入 http://localhost:9762/baseball/PlayersServlet 打开应用措施,而且将显示 先前建设的样例数据。

图 51. Baseball 应用措施

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此列表该当与先前建设的样例数据完全沟通。假如获得任何错误,则大概需 要确保毗连属性都正确而且所有相应的 JAR 均已被复制到 /WEB-INF/lib 目次 中。譬喻,OpenJPA JAR(及依赖性)是必须的,而且 JDBC 驱动措施 JAR 该当 在该目次中。我们利用了一些 JSTL,因此也需要 JSTL JAR。记着,利用 Eclipse 也可以轻松地举办调试。

用 Eclipse 举办调试

让我们返回到应用措施并执行一些调试。Eclipse 的调试成果是其主要成果 之一,并且这种可以或许调试在 Web 处事器运行的勾当代码的成果很是重要。返回 到 servlet 类并在利用 Java Persistence API 查询数据库的位置配置一个断 点。

图 52. 配置断点

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻在 Server 窗口中右键单击我们利用的处事器并选择 Stop 来遏制处事 器。将从头启动处事器,可是这次选择 Debug。

图 53. 调试处事器

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

此刻可以从头装载 Web 页面,而 Eclipse 该当切换到 Debug 透视图。

图 54. Eclipse Debug 透视图

用Eclipse Europa举行Web开辟,第1部分 - Eclipse Java EE

#p#分页标题#e#

从调试透视图中,您可以慢慢完成代码、配置监督方法等。无需对处事器执 行任何非凡操纵。我们可以像调试 Java 主要领的可执行类一样调试 Web 应用 措施。

竣事语

我们已经看到如何利用 Eclipse 配置 Web开拓所需的一切内容。Eclipse 集成了数据库、Web 处事器以及所需的其他内容;拥有可以辅佐您快速操作 Java EE 技能集的很多东西。我们利用 Eclipse 毗连到数据库以建设表并填充 数据,然后返回并操作沟通的东西建设 Java Persistence API 映射以简化数据 会见代码。利用了 Eclipse 建设 JSP 和 servlet。然后可以陈设 Web 应用程 序,而且甚至直接从 Eclipse 举办调试。此刻,我们可以添加更多用于建设球 员和角逐及计较统计信息的 Web 页面,详见共分三部门的系列教程 “用 Eclipse Europa 举办 Web 开拓” 的第 2 部门。

文章来历:

http://www.ibm.com/developerworks/cn/edu/os-dw-os-eclipse- europa1.html

    关键字:

在线提交作业