2.4. 查看 Quickstart 示例
2.4.1. 探索 helloworld Quickstart 复制链接链接已复制到粘贴板!
helloworld 快速入门演示了如何将简单的 Servlet 部署到 JBoss EAP。业务逻辑封装在服务中,该服务作为 Jakarta 上下文和依赖注入 Bjection Bjection Bean 提供,并注入到 Servlet 中。此快速入门是一个起点,可确保您已正确配置和启动服务器。
使用命令行构建和部署此快速启动的详细说明,请参见 helloworld 快速启动目录根目录下的 README.html 文件。本节介绍如何使用 Red Hat CodeReady Studio 运行 Quickstart,并假设您已安装红帽 CodeReady Studio、配置 Maven,并导入并成功运行 helloworld quickstart。
先决条件
- 安装 Red Hat CodeReady Studio。具体步骤,请参阅 Red Hat CodeReady Studio 安装指南中的使用安装程序独立安装 CodeReady Studio。
-
运行
helloworld快速入门。具体步骤,请参阅在 Red Hat CodeReady Studio 中运行 Quickstarts。 -
打开 Web 浏览器并在 http://localhost:8080/helloworld 访问应用,以验证
helloworldquickstart 已成功部署到 JBoss EAP。
检查目录结构
helloworld 快速启动的代码可以在 QUICKSTART_HOME/helloworld/ 目录中找到。helloworld 快速入门由一个 Servlet 以及 Jakarta 上下文和依赖注入 Bjection Ban 组成。它还包含应用的 WEB-INF/ 目录中的 beans.xml 文件,其版本号为 1.1,并且 bean-discovery-mode 是 all。此标志文件将 WAR 识别为 bean 存档,并告知 JBoss EAP 在此应用中查找 bean,并激活 Jakarta 上下文和依赖注入。
src/main/webapp/ 目录包含快速启动的文件。本例的所有配置文件都位于 src/main/webapp/ 中的 WEB-INF/ 目录中, 包括 beans.xml 文件。src/main/webapp/ 目录还包括 index.html 文件,该文件使用简单的 meta refresh 将用户的浏览器重定向到 Servlet,它位于 http://localhost:8080/helloworld/HelloWorld。quickstart 不需要 web.xml 文件。
检查代码
软件包声明和导入已从这些列表中排除。Quickstart 源代码中提供了完整的列表。
查看
HelloWorldServlet代码。HelloWorldServlet.java文件位于src/main/java/org/jboss/as/quickstarts/helloworld/目录中。此 servlet 将信息发送到浏览器。示例:HelloWorldServlet 类代码
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表 2.1. HelloWorldServlet Details 行 备注 43
您只需要添加
@WebServlet注释,并提供用于访问 servlet 的 URL 映射。46-48
每个网页都需要正确构成 HTML。这个快速入门使用静态字符串来编写最小标头和页脚输出。
50-51
这些行注入 HelloService Jakarta Contexts 和 Dependency Injection bean,用于生成实际消息。只要我们不更改 HelloService 的 API,这种方法允许我们以后在不更改视图层的情况下更改 HelloService 的实施。
58
此行调用 服务以生成消息"Hello World",并将它写入到 HTTP 请求。
检查
HelloService代码。HelloService.java文件位于src/main/java/org/jboss/as/quickstarts/helloworld/目录中。此服务只需返回一条消息。不需要 XML 或注解注册。示例:HelloService 类代码
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2. 探索 numberguess Quickstart 复制链接链接已复制到粘贴板!
numberguess quickstart 演示了如何将简单的非持久性应用创建和部署至 JBoss EAP。信息通过 Jakarta Server Faces 视图显示,业务逻辑则封装在两个 Jakarta Contexts 和 Dependency Injection bean 中。在 numberguess 快速启动中,您有十次尝试猜测 1 到 100 之间的数字。在每次尝试后,您都会被告知您的猜测过高还是过低。
numberguess Quickstart 的代码可以在 QUICKSTART_HOME/numberguess/ 目录中找到,其中 QUICKSTART_HOME 是您下载并解压缩 JBoss EAP 快速入门的目录。numberguess quickstart 由多个 Bean、配置文件和 Facelets Jakarta Server Faces 视图组成,并打包为一个 WAR 模块。
使用命令行构建和部署此快速启动的详细说明,请参阅 numberguess quickstart 目录的 README.html 文件。以下示例使用 Red Hat CodeReady Studio 运行 Quickstart。
先决条件
- 安装 Red Hat CodeReady Studio。具体步骤,请参阅 Red Hat CodeReady Studio 安装指南中的使用安装程序独立安装 CodeReady Studio。
-
运行
numberguessQuickstart。具体步骤请参阅 在 Red Hat CodeReady Studio 中运行 Quickstarts,并将helloworld替换为说明中的numbergues。 -
打开 Web 浏览器并访问 URL http://localhost:8080/numberguess 来访问这个应用,以验证
numberguesquickstart 已成功部署到 JBoss EAP。
检查配置文件
本例的所有配置文件都位于 QUICKSTART_HOME/numberguess/src/main/webapp/WEB-INF/ 目录中。
检查
face-config.xml文件。此快速入门使用 Jakarta Server Faces 2.2 版本的
face-config.xml文件名。Facelet 的标准化版本是 Jakarta Server Faces 2.2 中的默认视图处理程序,因此不需要配置。此文件仅包含 root 元素,只是指示应用中应启用 JSF 的标志文件。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
beans.xml文件。beans.xml文件包含版本号 1.1,并且bean-discovery-mode包含all。此文件是一个标志文件,将 WAR 识别为 Bean 存档,并告知 JBoss EAP 在此应用中查找 bean,并激活 Jakarta 上下文和依赖注入。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
此快速入门不需要 web.xml 文件。
2.4.2.1. 检查 Jakarta 服务器 Faces 代码 复制链接链接已复制到粘贴板!
Jakarta Server Faces 将 .xhtml 文件扩展用于源文件,但通过 .jsf 扩展提供渲染的视图。home.xhtml 文件位于 src/main/webapp/ 目录中。
示例:Jakarta Server Faces 源代码
以下行号与在 Red Hat CodeReady Studio 中查看文件时看到的行号对应。
| 行 | 备注 |
|---|---|
| 36-40 | 这些消息可以发送给用户:"Higher!"和"Lower!"。 |
| 45-48 | 用户猜测,可以猜到的数字范围会较小。这一句子会改变,确保他们知道有效猜测的范围。 |
| 55-58 | 此输入字段绑定至使用值表达式的 bean 属性。 |
| 58 | 验证器绑定用于确保用户不会意外输入他们可能猜到的范围之外的数字。如果验证器不在此处,用户可能会对不限号使用一个猜测。 |
| 59-61 | 必须有办法让用户将其猜测发送到服务器。在这里,我们绑定了 Bean 的操作方法。 |
2.4.2.2. 检查类文件 复制链接链接已复制到粘贴板!
所有 numberguess 快速启动源文件都可在 QUICKSTART_HOME/numberguess/src/main/java/org/jboss/as/quickstarts/numberguess/ 目录中找到。软件包声明和导入已从这些列表中排除。Quickstart 源代码中提供了完整的列表。
查看
Random.javaQualifier Code限定符用于消除两个 Bean 之间的不确定性,两者都有资格根据其类型注入。如需有关限定符的更多信息,请参阅 JBoss EAP 开发指南中的使用限定符解决 Ambiguous Injection。
@Random限定符用于注入随机数字。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
MaxNumber.javaQualifier Code@MaxNumberqualifier用于注入允许的最大数量。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
Generator.javaCodeGenerator类通过制作者方法创建随机数,并通过相同方式公开可能的最大数量。此类为应用范围,因此每次都不会出现不同的随机值。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看
Game.java代码会话范围的
Game类是应用的主要入口点。它负责设置或重置游戏,捕获和验证用户的猜测,并通过FacesMessage向用户提供反馈。它使用构建后生命周期方法从@Random Instance<Integer>bean 检索随机数来初始化游戏。注意类中的
@Named注释。只有在您想要使用 Jakarta Expression Language(本例中为#{game})使 bean 可访问 Jakarta Server Faces 视图时,才需要此注解。Copy to Clipboard Copied! Toggle word wrap Toggle overflow