用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 数据库开发教程 > Oracle教程 > Oracle基础教程 > 正文
用Oracle JDeveloper 10.1.3构建Ajax应用程序
iTbulo.COM 2007-5-25 佚名()

 

恭喜!您已创建了第一个 Ajax 程序!

增强 Ajax 应用程序

以下练习构建在上一个示例的基础上,并用 Http Servlet 替换了 helloAjax.txt 文件。由于 servlet 可以包含逻辑,能够基于预先的定义修改响应格式,因此 servlet 比文件更具动态性,您可以使用 CSS 样式表为返回的数据行设置交变颜色,并显示页面用户键入的文本。

1.
使用 Ajaxprj 项目上的 New 选项打开 JDeveloper New Gallery。选择 Web Tier > HTML 树条目中的 CSS File 选项。将文件命名为 helloAjax.css,然后确保该文件位于 public_html 目录下。
2.
删除 JDeveloper 默认生成的样式表代码。
3.
将以下代码复制或键入到样式表文件中,然后保存该文件。
div.message b.red
{
background-color:gray;
color:RED;
font-family:Arial, Helvetica, sans-serif;
}
div.message b.green { background-color:yellow; color:GREEN; font-family:Arial, Helvetica, sans-serif; }

div.message b.red 标记显示所有 <b> 元素时使用灰色背景颜色和红色字体颜色。<b> 元素有一个类属性 "red",并作为子元素嵌入具有一个 message 类属性的 HTML <DIV> 元素中。<DIV> 和 <b> HTML 元素作为返回给异步 Ajax 请求的服务器请求的一部分动态创建。

4.

要创建 Http Servlet,从 JDeveloper 上下文菜单中选择 New,然后选择 Web Tier > Servlets 条目。从可选项中选择 HTTP Servlet。将 servlet 类命名为 HelloAjax,保留所有其他域和对话框的默认值。此操作将创建一个 Http Servlet 并将其映射为 web.xml 部署描述符中的 /helloajax 名。

5.
将两个例程域
private int counter = 0;
private String name="";

添加到 servlet 中,且正好位于 private static final String CONTENT_TYPE = "text/html; charset=windows-1252"; 域中。

6.
更改 servlet doGet 方法的代码,使其如下所示
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
++counter;
name = request.getParameter("name") != null?(String)request.getParameter("name"):null;

//init cap
name="From "+name;
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
if(counter % 2 == 0)
    {
out.println("<b class='green'>Hello Ajax "+name+" </b><br");
    }
else
    {
out.println("<b class='red'>Hello Ajax "+name+" </b><br");
    }
out.close();
}	
	
Servlet 期待包含用户输入的请求参数 "name",并将该参数添加到 Hello Ajax 消息中。每个偶数行都用 CSS 类引用 ‘green’ 显示,每个非偶数行都用 CSS 类引用 ‘red’ 显示。由于 XmlHttpRequest 输出显示在 <DIV></DIV> 元素对之间,因此为输出设置颜色的样式表将 <b> 元素表现为 div b.greendiv b.red。稍后,您会为 HTML DIV 元素添加 class="message" 属性,因此产生的 CSS 引用为 div.message b.reddiv.message b.green,这些是您先前在 helloAjax.css 文件中定义的 CSS 名称。

7.
保存您的工作。

.

8.
在 JDeveloper 代码视图编辑器中打开 helloAjax.html 文件。
9.

将 HTML <body> 的内容从

<body>
<input type="button" value="Press Me" onclick="doTheAjaxThing();"
<div id="message"></div>
</body>

更改为

<body>
<form name="form1" action="">
<input type="button" value="Press Me" onclick="doTheAjaxThing();"/>
<input type="text"id="name" name="name"/>
</form>
<div id="message" class="message"></div>

</body>

现在,该 HTML 文件中包含一个额外的文本域,可供用户键入输出字符串。名称输入域的 id 属性为 "name",用户可以使用浏览器的 DOM 树通过 JavaScript 对其进行访问。文本域的确切位置是 document.form1.name

最后更改的内容是 class 属性,该属性被添加到 <div> 元素,以便由样式表文件进行处理。

10. 转至 helloAjax.html 文件的设计视图。在 Application Navigator 中选择 helloAjax.css 条目,然后将该条目拖放到 HTML 页面上。此操作会在运行时创建由 HTML 页面到样式表的引用。
11.
再次打开源代码视图中的 helloAjax.html 文件,并在 <head></head> 元素对之间查找 doTheAjaxThing() 方法。
12.
将以粗体突出显示的第一行添加到 JavaScript 函数中,然后使用突出显示的第二个代码行替换当前的 requestObject.open() 方法。
function doTheAjaxThing(){
var requestObject;
var PAGE_SUCCESS = 200;
var param="name="+(document.form1.name.value.length >0 ?document.form1.name.value:"nobody");
requestObject = xmlHttpRequestHandler.createXmlHttpRequest();
requestObject.open("Get","helloajax?"+param,false);
requestObject.send(null);
  ...

第一行创建一个变量参数,该参数读取输入文本域的值。为确保该域的值不为空,您可以使用 JavaScript 测试输入字符串的长度。如果域值确实为空,则使用 "nobody"。

requestObject.open 方法调用目前引用 helloajax(服务器端 HTTP Servlet 的 web.xml 名称),而不是 helloajax.txt 文件。由于该请求为 GET 请求,因此 name 请求参数使用问号 '?' 添加到 servlet 引用中。如您所见,从 XmlHttpRequest 的观点来看,由调用服务器上的静态文件转变为调用 servlet 所需进行的更改很少。

13.

您还可以将标题中的 HTML <tile> 元素更改为

<title>Hello Ajax from servlet</title>
            
            
14.

保存您的工作,然后运行 helloAjax.html 文件。

 

图 7

 

上一页  [1] [2] [3] [4] 下一页

文章搜索
相关资讯
相关文章 相关下载
数据库异步操作(ADODB)
如何删除oracle10g中的垃圾表?
焦点信息