使用JavaServer Faces技术的Web模块示例

1.hello1:

  hello1应用程序是一个web模块,它使用JavaServer Faces技术来显示问候和响应。可以使用文本编辑器查看应用程序文件,也可以使用NetBeans IDE。此应用程序的源代码在tut-install/示例/web/jsf/hello1/目录中。

  Hello类被称为托管bean类,它为Facelets页面表达式中使用的name属性提供了getter和setter方法。默认情况下,表达式语言引用类名,第一个字母为小写(hello.name)。

package javaeetutorial.hello1;
import javax.enterprise.context.RequestScoped; import javax.inject.Named;
@Named @RequestScoped public class Hello {
private String name;
public Hello() { }
public String getName() { return name; }
public void setName(String user_name) { this.name = user_name; } }

  如果使用bean类的默认名称,可以指定@Model作为注释,而不必指定@Named和@RequestScoped。@Model注释被称为原型,这是一个用于封装其他注释的注释的术语。稍后将在CDI应用程序中使用原型来描述它。一些例子将使用@Model,在适当的地方。

2.hello2:

  hello2应用程序是一个web模块,hello2应用程序的行为几乎与hello1应用程序相同,但是它是使用Java Servlet技术实现的,而不是使用JavaServer Faces技术。可以使用文本编辑器查看应用程序文件,也可以使用NetBeans IDE。

  双击GreetingServlet.java 查看文件。这个servlet覆盖了doGet方法,实现了HTTP的GET方法。servlet显示一个简单的HTML问候表单,它的Submit按钮,就像hello1那样,为其操作指定一个响应页面。下面的摘录从@WebServlet注释开始,它指定了相对于上下文根的URL模式:

@WebServlet("/greeting")
public class GreetingServlet extends HttpServlet { @Override
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setBufferSize(8192);
try (PrintWriter out = response.getWriter()) {
out.println("<html lang=\"en\">" + "<head><title>Servlet Hello</title></head>"); // then write the data of the response
out.println("<body bgcolor=\"#ffffff\">"+ "<img src=\"duke.waving.gif\" " + "alt=\"Duke waving his hand\">"
+ "<form method=\"get\">" + "<h2>Hello, my name is Duke. What's yours?</h2>"
+ "<input title=\"My name is: \"type=\"text\" "+"name=\"username\" size=\"25\">"
+ "<p></p>"+"<input type=\"submit\" value=\"Submit\">"
+ "<input type=\"reset\" value=\"Reset\">"+ "</form>");
String username = request.getParameter("username");
if (username != null && username.length()> 0) {
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/response"); if (dispatcher != null) {
dispatcher.include(request, response);
}
}
out.println("</body></html>");
}
}
...

  双击ResponseServle.java查看它的文件。这个servlet还覆盖了doGet方法,只显示响应。下面的摘录从@WebServlet注释开始,它指定了相对于上下文根的URL模式:

@WebServlet("/response")
public class ResponseServlet extends HttpServlet { @Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try (PrintWriter out = response.getWriter()) { // then write the data of the response
String username = request.getParameter("username");
if (username != null && username.length()> 0) {
out.println("<h2>Hello, " + username + "!</h2>");
}
}
}
...

分析hello.java文件的更多相关文章

  1. Java文件读写分析

    本文内容:IO流操作文件的细节分析:分析各种操作文件的方式. 读写一个文件 从一个示例开始分析,如何操作文件: /** * 向一个文件中写入数据 * @throws IOException */ pr ...

  2. Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客<Android平台dalvik模式下java Ho ...

  3. 解决java文件编码和windows7系统(中文版)默认编码冲突所导致的乱码情况

    开篇从一个比较简单但是也比较蛋疼的问题开始吧. 背景介绍:我是新手小白,初学java. 问题介绍:在使用UTF-8编码格式写java文件时,编译出现问题. 原因分析:1.java文件的编码格式是UTF ...

  4. 性能分析之-- JAVA Thread Dump 分析综述

    性能分析之-- JAVA Thread Dump 分析综述       一.Thread Dump介绍 1.1什么是Thread Dump? Thread Dump是非常有用的诊断Java应用问题的工 ...

  5. Android的R.java文件

    1.Android资源管理简介: Android应用程序资源可以分为两大类,分别放在assets和res文件夹下.assets目录下保存的是一些原始的文件,可以以任何方式来进行组织.这些文件最终会被原 ...

  6. JAVA文件中获取路径及WEB应用程序获取路径方法

    JAVA文件中获取路径及WEB应用程序获取路径方法 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了tes ...

  7. java文件读写操作

    Java IO系统里读写文件使用Reader和Writer两个抽象类,Reader中read()和close()方法都是抽象方法.Writer中 write(),flush()和close()方法为抽 ...

  8. JAVA 文件编译执行与虚拟机(JVM)简单介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...

  9. IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数

    package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

随机推荐

  1. 转载:Linux内核调试方法

    转载文章请注明作者和二维码及全文信息. 转自:http://blog.csdn.net/swingwang/article/details/72331196 不会编程的程序员,不是好的架构师,编程和内 ...

  2. linux内存管理之vmalloc函数分析

    2017-07-09 今天周末,闲来无事聊聊linux内核内存分配那点事……重点在于分析vmalloc的执行 流程 以传统x86架构为例,内核空间内存(3G-4G)主要分为三大部分:DMA映射区,一致 ...

  3. tooltip提示文字

    <p class="tooltip-demo">Tigh <a title="Default tooltip" rel="toolt ...

  4. 003-and design-dva.js 知识导图-02-Reducer,Effect,Subscription,Router,dva配置,工具

    一.Reducer reducer 是一个函数,接受 state 和 action,返回老的或新的 state .即:(state, action) => state 增删改 以 todos 为 ...

  5. Cardano(ADA), EOS, RChain(RHOC), Aeternity(AE) 都是极其好的币

    从区块链的基础知识出发,研究ETH和EOS的区别 免责声明:EOS目前还在开发中,我们对此项目的一些理解可能会改变.而且,我并不是以太坊开发者,而只是一个喜欢区块链的爱好者.请牢记这两点,请把下面的内 ...

  6. 【开发者笔记】利用ab命令对接口进行压力测试

    目标:对接口进行正确性测试和压力测试 工具:Apache-ab 下载 系统:Windows.linux 目标接口:http://www.stagebo.xyz/foru/lifemonths 命令:a ...

  7. [css]网站骨架布局作业

    实现效果图: 代码实现 第一次写的时候不知道如何下手, 后来摸清规律了,由大到小. 由全局到局部 第一次还遇到区块命名问题, 和哪个该怎么划分问题 第一次还遇到由于划分不规整,所以有些代码没达到预期的 ...

  8. http-从域名到页面

    目录 1. 网络基础 TCP/IP HTTP DNS URI, URL, and URN URI的格式 2. HTTP简单概括 通过实例看HTTP HTTP报文组成 3. 使用Firefox修改请求首 ...

  9. 【Cocos2dx 3.x Lua】TileMap使用

    1.编辑TileMap地图资源 2.Cocos2dx 3.x Lua中使用TileMap   Link: http://codepad.org/P0nFP1Dx  local TileMap=clas ...

  10. appcmd创建站点、应用程序、虚拟目录批处理程序

    创建站点(放置在站点下运行): @echo off cls :start echo start set /p sitename="sitename:" @set "phy ...