paulwong

#

showModalDialog和showModelessDialog

一、showModalDialog和showModelessDialog有什么不同?


  showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗口。类似alert的运行效果。
  showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡住一下而以。:P)



二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?


  在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<html>和<body>之间的。

三、怎样才刷新showModalDialog和showModelessDialog里的内容?


  在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠javascript了,以下是相关代码:


<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload</a>


  将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要配合
<base target="_self">

使用,不然你按下F5会弹出新窗口的。

四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。

<input type="button" value="关闭" onclick="window.close()">

  也要配合<base target="_self">,不然会打开一个新的IE窗口,然后再关掉的。

五、showModalDialog和showModelessDialog数据传递技巧。
  (作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)
  这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了。
  例子:
现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
一般的传递方式:

window.showModalDialog("filename.htm",var_name)//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
lert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量
  这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法再进行操作了。这就是这种传递方式的局限性。
    
以下是我建议使用的传递方式:
  //不管要操作什么变量,只直传递主窗口的window对象
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
 同时我也可以操作var_id变量
 alert(window.dialogArguments.var_id)//读取var_id变量
 window.dialogArguments.var_id="001"//设置var_id变量

 同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
  window.dialogArguments.form1.index1.value="这是在设置index1元素的值"

六、多个showModelessDialog的相互操作。
  因为光说很费劲,我就偷点懒,直接用代码来说了,如果不明白的话那就直接来信(oyiboy#163.net(使用时请将#改成@))问我吧。

  以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位置。

  主文件的部份js代码。
  var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px") //打开控制窗口
  var s2=showModelessDialog('about:blank',window,"dialogTop:200px;dialogLeft:300px")  //打开被控制窗口

  控制.htm的部份代码。

<script>
    
//操作位置数据,因为窗口的位置数据是"xxxpx"方式的,所以需要这样的一个特殊操作函数。
function countNumber(A_strNumber,A_strWhatdo)
{
A_strNumber
=A_strNumber.replace('px','')
A_strNumber
-=0
switch(A_strWhatdo)
{
case "-":A_strNumber-=10;break;
case "+":A_strNumber+=10;break;
}
return A_strNumber + "px"
}
  
</script>


<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'-')" value="上移">
  
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'-')" value="左移">
  
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber(window.dialogArguments.s2.dialogLeft,'+')" value="右移">
  
<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber(window.dialogArguments.s2.dialogTop,'+')" value="下移">

  以上关键部份是:
窗口命名方式:var s1=showModelessDialog('控制.htm',window,"dialogTop:1px;dialogLeft:1px")
  变量访问方式:window.dialogArguments.s2.dialogTop

  这个例子只是现实showModelessDialog与showModelessDialog之间的位置操作功能,通过这个原理,在showModelessDialog之间相互控制各自的显示页面,传递变量和数据等。这要看各位的发挥了。

posted @ 2006-08-16 14:02 paulwong 阅读(397) | 评论 (0)编辑 收藏

PrepareStatement中in中带问号的又一用法

String strSQL = " DELETE FROM TAB_DESIREMOTOR WHERE DESIREMOTORID IN ( ? ) " ;
ps 
=  conn.prepareStatement(strSQL);
java.util.Vector v
= new  Vector();
v.addElement(
new  Int( 1 ));
v.addElement(
new  Int( 2 ));
ps.setObject(
1 , v);
count 
=  ps.executeUpdate();

posted @ 2006-07-30 14:52 paulwong 阅读(2120) | 评论 (1)编辑 收藏

MyEclipse 5.0 M2 注册码及下载地址和Eclipse 3.2多国语言包

MyEclipse 5.0 M2 注册码及下载地址


官方介绍:
The second milestone release (M2) of MyEclipse 5.0 is now available for immediate downolad. Please review the special instructions, release notes and the New and Noteworthy before download. MyEclipse 5.0M2 is compatible with Eclipse 3.2 release candidates. Please be sure to install Eclipse 3.2 prior to installation of MyEclipse 5.0M2.

Notably, the MyEclipse 5.0M2 release integrates the popular Matisse4MyEclipse Swing UI designer directly into MyEclipse, thereby enabling developers to easily build sophisticated graphical user interfaces for their applications. Though Matisse4MyEclipse is now supported on Linux, Mac users will be unable to utilize the Matisse4MyEclipse, MyUML, and MyEclipse Image Editor functions due to the long-standing Eclipse SWT_AWT bug #145890.
MyEclipse Enterprise Workbench 5.0 M2 for Windows 98/2000/XP (7/7/2006) 下载地址:


http://www.myeclipseide.com/Downloads+index-req-getit-lid-59.html


序列号过期时间为2099年12月31日,估计用上5-10年都有可能(就看myeclipse的更新速度了)。
Subscriber: www.1cn.biz
Subscriber Code: jLR8ZC-444-55-4467865481680090

注册成功后会发现:

Subscriber: www.1cn.biz
Product ID: E3MP (MyEclipse Professional Subscription)
License version: 9.99
Full Maintenance Included
Subscription expiration date (YYYYMMDD): 20991231
Number of licenses: Unlimited

Eclipse 3.2多国语言包

下载地址列表:
NLpack1 - German, Spanish, French, Italian, Japanese, Korean, Portuguese (Brazil), Traditional Chinese and Simplified Chinese.
windows OS:

http://ftp.jaist.ac.jp/pub/eclipse/eclipse/downloads/drops/L-3.2_Language_Packs-200607121700/NLpack1-eclipse-SDK-3.2-win32.zip

posted @ 2006-07-30 12:13 paulwong 阅读(2825) | 评论 (0)编辑 收藏

Websphere Application Server心得

    Websphere Application Server(WAS)是一个JVM容器+WEB容器+EJB容器,能

解析JAVA的指令,能对HTTP的请求作响应,能解析EJB指令。

    WAS只须装一次,就能自定义多个CONTAINER,表现在访问的网址上为不同的

端口。

    部署在WAS上的J2EE程序包只能是EAR包或WAR包,如果一个项目内必需多个

WEB的PROJECT,则只能部署EAR包,EAR包中指定所要包含的WEB PROJECT,事实

上EAR包的作用就是指定项目中有几个WEB PROJECT而已;如果一个项目中只有

一个WEB PROJECT,则部署EAR包或WAR包均可以。

    安装EAR包或WAR包都是从控制台的“安装新应用程序”中开始,两者的区别

是安装EAR包无须指定上下文根,即:http://localhost:9080/web1中的web1,

而安装WAR包则必须指定上下文根,其余则没什么区别,均须指定安装在哪个

CONTAINER上,是否可以使用别名(网址上的不同)等。

    打包可用Application Server ToolKit,支持从CVS上下载代码。

posted @ 2006-07-28 10:27 paulwong 阅读(576) | 评论 (0)编辑 收藏

MyEclipse+WebSphere 通过 JNDI 连接 Sybase 简介

     摘要: 很久不来这里写东西了,一是工作忙,还有就是我是个初学者也写不出什么东西。这几天因工作需要学习了一下 WebSphere5.1, 在网上找了些资料终于了解了如何通过 JNDI 连接 Sybase 数据库。贴上来一个是怕自己以后忘了,另外就是希望能帮助像我一样苦苦探索的初学者。   ...  阅读全文

posted @ 2006-07-24 17:12 paulwong 阅读(2707) | 评论 (1)编辑 收藏

WebSphere中流行数据库连接池的配置(Oracle、SQL Server、Sybase、MySQL)

本文介绍WebSphere下Oracle、SQL Server、Sybase、MySQL数据库连接池的配置方法,并给出相应调用连接池的示例。相对于Weblogic,WebSphere连接池的配置要稍微复杂一些,因为缺少相关的文档,需要一定的技巧和经验。特别是对于初学者,完整的配置好Websphere连接池还是有一定难度的。

一、系统准备
1.在相应的数据库中建立本文用到的表

create table TEST(C1 CHAR(10) )
insert into TEST values('FromTest')


2.准备环境变量,此部分往往会被初学者忽略。




点击“管理WebSphere变量”,ORACLE_JDBC_DRIVER_PATH的值输入操作系统中jar文件(classes12.jar)的位置。
“确认”后,界面最上方,点击“保存”,会再提示“保存”还是“放弃”,再选“保存”。

为方便起见,本文中,SQL Server的jar文件(msbase.jar、mssqlserver.jar、msutil.jar )、Sybase的jar文件(jconn2.jar)、mySQL的jar文件(mysql-connector-java-3.1.10-bin.jar)都放在同一目录(如:C:\oracle\ora92\jdbc\lib)。

3.本文中的所有例子测试均通过,环境:Windows2003、WebShpere5.1、ORACLE9I、SQL Server 2000、SYBASE12.5、MySQL5.0。

二、Oracle、SQL Server、Sybase、MySQL数据库连接池在WebSphere中的详细配置步骤

(一)、Oracle连接池的配置

1.进入管理控制台(http://localhost:9090/admin/)

2.选择:资源->JDBC提供程序,点击“新建”,建立JDBC提供程序。




点击“应用”后,类路径中,输入“${ORACLE_JDBC_DRIVER_PATH}/classes12.jar”,再点击“应用”。

3.定义数据源
点击界面中“数据源后”再点击“新建”,建立数据源。



JNDI取名ORACLE_JNDI,点击“应用”。

4.界面上点击“定制属性”,定义连接池的JDBC Driver、URL、用户名和口令等信息。
点击“URL”,URL的值输入:jdbc:oracle:thin:@localhost:1521:MYHORA,其中,localhost可以为ORACLE的IP地址,MYHORA是ORACLE的服务名称。
点击“确定”保存配置。
同样的方法输入:
driverType的值oracle.jdbc.driver.OracleDriver
databasename的值MYHORA
servername的值localhost
preTestSQLString的值为SELECT COUNT(1) FROM TEST
其余的取默认值。

5.本部分比较关键,是初学着比较困惑的地方。
我们看到,界面上并没有输入用户名、口令的地方,而没有用户名称、口令是无法连接数据库的。




在“定制属性”中点击“新建”,“名称”中输入user,“值”中输入数据库的用户名称,如:study,点击“确定”;
在“定制属性”中点击“新建”,“名称”中输入password,“值”中输入数据库的口令,如:study,点击“确定”;
我们看到,“定制属性”中多了两个我们自定义的属性user、password



resized image

6.保存配置,在“定制属性”界面的最上方点击“保存”。

7.测试连接





系统提示:成功信息,表明,连接池配置成功。
连接池配置成功后,WebSphere需要重新启动。

(二)、SQL server连接池的配置

SQL Server连接池的配置步骤同Oracle,具体的参数值:
JDBC 提供程序:下拉选择Microsoft JDBC driver for MSSQLServer 2000
Sybase连接池的配置步骤也同Oracle,具体的参数值:
常规属性中的名称:Microsoft JDBC driver for MSSQLServer 2000
常规属性中的描述:Microsoft JDBC driver for MSSQLServer 2000
常规属性中的类路径:
${ORACLE_JDBC_DRIVER_PATH}/msbase.jar
${ORACLE_JDBC_DRIVER_PATH}/mssqlserver.jar
${ORACLE_JDBC_DRIVER_PATH}/msutil.jar

常规属性中的实现类名:默认
数据源中的名称:SQLSERVER_JNDI
数据源中的JNDI:SQLSERVER_JNDI
定制属性中的databaseName:数据库名称
定制属性中的serverName:Sybase数据库服务器的名称或IP
定制属性中的portNumber:端口号
定制属性中的preTestSQLString:SELECT COUNT(1) FROM TEST
同Oracle,手工“新建”user和password属性,值为数据库的用户名和口令,该用户的缺省数据库必须为databaseName的值。
其他默认。

(三)、Sybase连接池的配置

JDBC 提供程序:下拉选择Sybase JDBC Driver
Sybase连接池的配置步骤也同Oracle,具体的参数值:
常规属性中的名称:SYBASE JDBC Driver
常规属性中的描述:SYBASE JDBC Driver
常规属性中的类路径:${ORACLE_JDBC_DRIVER_PATH}/jconn2.jar
常规属性中的实现类名:默认
数据源中的名称:SYBASE_JNDI
数据源中的JNDI:SYBASE_JNDI
定制属性中的databaseName:数据库名称
定制属性中的serverName:Sybase数据库服务器的名称或IP
定制属性中的portNumber:端口号
定制属性中的preTestSQLString:SELECT COUNT(1) FROM TEST
同Oracle,手工“新建”user和password属性,值为数据库的用户名和口令,该用户的缺省数据库必须为databaseName的值。
其他默认。

(四)、MySQL连接池的配置

MySQL连接池的配置步骤同Oracle稍有不同,JDBC 提供程序中并没有MySQL中的选项,选Oracle JDBC Driver就可以,实际运行中,WebSphere是以设置的参数为准的。

具体的参数值:
常规属性中的名称:MySQL JDBC Driver
常规属性中的描述:MySQL JDBC Driver
常规属性中的类路径:${ORACLE_JDBC_DRIVER_PATH}/mysql-connector-java-3.1.10-bin.jar
常规属性中的实现类名:com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
数据源中的名称:MYSQL_JNDI
数据源中的JNDI:MYSQL_JNDI





由于WebSphere没有缺省的MySQL选项,“定制属性”全部需要手工新建。具体的值要根据MySQL的实际环境要做相应修改(petshop是我机器上的数据库名称)。

三、应用程序中测试连接池。

1. jsp程序中测试连接池

附件中的TestConnPoolWeb.ear文件直接发布后,
运行:http://localhost:9080/TestConnPoolWeb/oracle_pool.jsp,结果:ORACLE_JNDI:FromTest
运行:http://localhost:9080/TestConnPoolWeb/sqlserver_pool.jsp,结果:SQLSERVER_JNDI:FromTest
运行:http://localhost:9080/TestConnPoolWeb/sybase_pool.jsp,结果:SYBASE_JNDI:FromTest
运行:http://localhost:9080/TestConnPoolWeb/mysql_pool.jsp,结果:MYSQL_JNDI:FromTest

2. 程序说明

得到连接的方法:

private static Connection getConnection(String strConnPoolJndi) throws NamingException, SQLException {
Context ctx 
= null;
ctx 
= new InitialContext();
DataSource ds 
= (DataSource)ctx.lookup(strConnPoolJndi);
Connection conn 
= ds.getConnection();

return conn;

}


参数strConnPoolJndi分别为:ORACLE_JNDI、SQLSERVER_JNDI、SYBASE_JNDI、MYSQL_JNDI,对于相应的数据库。
从表中查询一条数据:

public static String getDBData(String strConnPoolJndi) {
String strReturn
="";
Connection conn 
= null;
Statement st 
= null;
ResultSet rs 
= null;

try {
conn 
= getConnection(strConnPoolJndi);
st 
= conn.createStatement();
rs 
= st.executeQuery( "select C1 from TEST" );

if (rs.next()) {
strReturn 
= rs.getString(1);
}

}


jsp中打印出表中的一条记录:

<%
out.println(
"ORACLE_JNDI:" + test.pool.TestPool.getDBData("ORACLE_JNDI"));
%>



附件TestConnPoolWeb.ear(包括源程序)
[Download File]

posted @ 2006-07-24 16:15 paulwong 阅读(3740) | 评论 (3)编辑 收藏

采用输出内容

采用<JSP:FORWORD> 该方法是利用服务器端先将数据输出到缓冲区的机制,在把缓冲区的内容发送到客户端之前,原来的不发送,改为发送该页面的内容,如果在<JSP: FORWORD>之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意. 如下面的例子中(1)会输出index.html的内容,2 不会输出index.html的内容,而是输出out.println("@@@@@@@@@@@@@@@@@"); 中的内容,并且在服务端会抛出:java.lang.IllegalStateException: Response already committed 异常,但客户端没有任何错误输出。

(1)

<%@page buffer="1kb"%>
 
<%
long i=0;
 
for(i=0;i<10;i++)
{
       out.println(
"@@@@@@@@@@@@@@@@@");
}
%>
 
<jsp:forward page="./index.html" /> 

 
(2)

<%@page buffer="1kb"%>
 
<%
long i=0;
 
for(i=0;i<600;i++)
{                 
       out.println(
"@@@@@@@@@@@@@@@@@");
}
%> 

posted @ 2006-07-16 22:45 paulwong 阅读(230) | 评论 (0)编辑 收藏

AJAX 網頁程式設計─rico

rico 是另外一套開放軟體的 JavaScript Framework, 根基於 prototype.js, 但是不僅僅是 prototype.js 的延伸而已, 還創造出一些它獨有的功能, 其中包含以下幾個特色:


1. 支援 AJAX。
2. 支援拖拉式介面。
3. 動畫效果, 如動態改變元件位置大小等。

rico 下載網址:http://openrico.org/rico/home.page


rico 的套用方式也非常簡單, 不過它需要配合 prototype.js, 因此必須在 HTML 文件中同時套用這兩套 Framework, 方法如下。


<head>
<script type="text/javascript" src="script/prototype.js">
</script>
<script type="text/javascript" src="script/rico.js"></script>
</head>


rico 範例:旅遊網站

rico 的 ajax 實作是以一個 ajaxEngine 物件為核心, 任何 ajax 的動作都是透過這個物件來完成, 事實上, 它的觀念也非常簡單, 非常適合初次使用 ajax 的人學習。在這個小節中, 筆者將透過簡單的範例來介紹 rico ajax 的使用。


我們設計了一個「台灣走透透 — 縣市情報通」的網站, 主要功能是提供使用者查詢台灣各縣市資訊及小吃特產等資訊, 類似旅遊資訊之類的情報站。但是如果我們只是單純將各個縣市的情報寫成 HTML 檔案, 然後讓使用者點選超連結瀏覽, 這樣就不符合前面章節所提的非同步通訊的好處, 所以在這裡我們就改變設計, 讓使用者選擇想要瀏覽的縣市之後, 立刻出現該縣市相關資訊, 當然在這裡我們是要學習 AJAX, 所以這個範例就是利用 AJAX 來完成這樣的動作。


整個 HTML 檔案主要是由一個 select box 和一個 <DIV> 標籤所構成, 當使用者選取了 select box 中任一個地名時, 右手邊的 <DIV> 區塊便會被置換成相對應的地區介紹, 當然這些介紹文字都是經由 AJAX 向伺服器要來的。


rico_exam.html
01 
<html>
02 
<head>
03 
<meta http-equiv="Content-Type"
04 content
="text/html; charset=UTF-8" />
05 
<script type="text/javascript" src="script/prototype.js">
06 </script>
07 
<script type="text/javascript" src="script/rico.js">
08 </script>
09
10 
<script type="text/javascript">
11 var cur_sel;
12 function init() {
13 cur_sel = '0';
14 document.getElementById('selField').value=cur_sel;
15 // 向 ajaxEngine 註冊一個新的要求 - AID_LOCQUERY
16 【ajaxEngine.registerRequest('AID_LOCQUERY', 'loc.php');】
17 // 向 ajaxEngine 註冊一個新的元件 - descField
18 【ajaxEngine.registerAjaxElement('descField');】
19 }
20
21 function queryLocDesc(sel) {
22 var locName = sel.value;
23 if (locName != '0&& locName != cur_sel) {
24 // 送出 AID_LOCQUERY 的要求,並指定參數
25 【ajaxEngine.sendRequest ('AID_LOCQUERY', 】
26 【'locName='+locName);】
27 cur_sel = locName;
28 }
29 }
30 </script>
31 
<title>台灣走透透 — 縣市情報通</title>
32 
</head>
33 
<body onload="init()">
34
35 
<table width="50%" border=0>
36 
<tr>
37 
<td width="25%" valign="top">
38 請選擇縣市情報:
39 
<select id="selField" onchange="queryLocDesc(this)">
40 
<option value="0" selected>----------</option>
41 
<option value="1">台北市</option>
42 
<option value="2">台北縣</option>
43 
<option value="3">基隆市</option>
44 
<option value="4">宜蘭縣</option>
45 
<option value="5">桃園縣</option>
46 
</select>
47 
</td>
48 
<td>
49 
<div id="descField"></div>
50 
</td>
51
52 
</tr>
53 
</table>
54
55 
</body>
56 
</html>


執行結果




程式說明

這個範例的流程圖如右:

 

這個範例看起來簡單多了, 這也是我們為什麼要使用 Framework 的目的之一, 重複利用別人的成果, 可以為自己解省力氣, 並專注在開發更精緻的產品上。


在範例一開始, 我們首先要載入兩個 JavaScript 程式庫, 一個是前面所介紹的 prototype.js, 而一個是 rico.js, 因為 rico.js 實際上是植基於 prototype.js 上, 所以在使用 rico 之前, 務必要先載入 prototype.js, 而且要使用對的版本, 例如在筆者撰寫本章節時, rico 最新的版本是 1.1.0, 它所需要的 prototype.js 最低需求是 1.4.0, 所以你如果要使用這個版本, 同樣的也需要一份 prototype.js 1.4.0 的函式庫。


在載入 prototype.js 以及 rico.js 之後, 接下來的 script 區塊便是我們自己的程式碼了, 在這個範例中, 筆者只用了短短兩個函式, 第一個函式 init() 是用來在頁面被載入的同時做初始化, 另外一個函式 queryLocDesc() , 是當使用者選擇了 select box 中不同的選項時, 做出對應的動作, 所以我們必須在 select box 的 onchange 事件被觸發時去執行這個函式。


前面有提到 rico 的 AJAX 是以 ajaxEngine 為核心, 所以整個頁面不管有幾個 AJAX 需求, 都是要跟這個物件註冊, 在第一個範例中, 我們只有一種 AJAX 需求, 所以我們也只對 ajaxEngine 註冊一個要求, 在 rico 中, 你要完成這個動作就是要呼叫 registerRequest() 函式, 不過註冊的動作並不會觸發 XMLHttpRequest 立刻去執行, 而是必須等到我們呼叫了 sendRequest() 這個函式後, ajaxEngine 才會真正有動作。


因為我們可以對 ajaxEngine 註冊好幾個 AJAX 需求, 為了區別不同的需求, 便需要一個 ID 來辨識, rico 是以一個字串 ID 來為每個 AJAX 需求作辨認, 所以不管你呼叫 registerRequest() 以及 sendRequest() 時都要指定這個 ID, 讓 rico 可以知道你要做的是那個 AJAX 動作, 在我們第一個範例中, 就是以 AID_LOCQUERY 作為這個 ID 字串。又例如以下程式碼便是我們註冊了好幾個 AJAX 需求, 且個別去執行動作。


function init() {
ajaxEngine.registerRequest('AID_FOODQUERY', 'food.php');
ajaxEngine.registerRequest('AID_FUNQUERY', 'fun.php');
ajaxEngine.registerRequest('AID_INFO', 'info.php');
}

function queryFood() {
ajaxEngine.sendRequest('AID_FOODQUERY');
}

function queryFun() {
ajaxEngine.sendRequest('AID_FUNQUERY');
}

function queryInfo() {
ajaxEngine.sendRequest('AID_INFO');
}

利用 rico 開發 AJAX 有個限制, 也就是你必須給它適當格式的 XML 文件, 底下便是我們給第一個範例的 XML 文件:


<?xml version="1.0" encoding="UTF-8"?>
<ajax-response>
<response type="element" id="descField">
<img src="/images/sights/taipeicity00.jpg" />
<table border="0">
<tr><td><b>面積</b>: 271.7997平方公里</td></tr>
<tr><td><b>人口</b>:264萬6474人(2001.6)</td></tr>
<tr><td><b>知 名 小 吃:</b></td></tr>
<tr><td>香腸、麵線、小籠包、麻辣鍋、滷味、豆乾、芒果冰
、牛肉麵、藥燉排骨、大餅包小餅、豆花、蛇肉、下午茶、飲茶
、茶點、夜市小吃、各省料理、各國料理
</td></tr>
</table>
</response>
</ajax-response>

在每個給 rico ajaxEngine 的 XML 文件中, 必須是由 <ajax-response> </ajax-response> 所包裝起來, 而在這個區塊中, 你又必須將你真正的資料包裝在 <response> </response> 區塊中, 不過在同一個 <ajax-response> 區塊中, 可以包含多個 <response> 區塊。


在每個 <response> 的標籤中, 你必須描述這個回應的屬性和辨識 ID, 屬性可以是 element 或者是 object, 端看你向 ajaxEngine 註冊的是 element 或者是 object 而定, 例如在第一個範例中, 我們註冊了一個 element, 它的 ID 是 descField:


ajaxEngine.registerAjaxElement('descField');

不過, 在你的 HTML 文件中, 你所註冊的 ID 必須要有相對應的 <DIV> 區塊, 因為當 ajaxEngine 收到伺服器的回應後, 會對這個 <DIV> 區塊做替換的工作, 例如, 在第一個範例中, ajaxEngine 會將 <response> </response> 中所夾帶的 HTML 內容替換到 <DIV id="descField"> </DIV> 中, 因此在瀏覽器上, 我們就可以看到資料的呈現。

posted @ 2006-07-15 13:45 paulwong 阅读(722) | 评论 (0)编辑 收藏

服务器在某些情况下需要进行的调整

服务器在某些情况下需要进行的调整.

=======================================================================
一、中文问题
如果操作系统不支持中文,应首先使操作系统支持中文。
附录中提供为Aix安装中文补丁包的步骤,其他操作系统请参照相关资料。
(1)weblogic
修改startweblogic.sh(startweblogic.cmd)中启动server的命令,重新设置虚拟机参数
添加-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=CN
具体如下:

%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=CN
-Dweblogic.Name=%SERVER_NAME%
-Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE%
-Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server

(2)websphere
修改应用程序服务器->进程定义->JVM虚拟机->一般自变量定义
添加-Ddefault.client.encoding=GBK -Dfile.encoding=GBK -Duser.language=Zh -Duser.region=CN
=======================================================================
二、内存调优
通过分析运行日志,在中间件服务器运行时,可找到管理信息->日志分析
服务器不运行情况下,可超找服务器主目录下的fpplogs目录.
查看是否存在OutOfMemoryError错误,如果存在说明存在超出虚拟机分配的内存,
应该适当调整虚拟机内存。
(1)weblogic
可以设置-Xms(最小使用内存) -Xmx(最大使用内存),-XX:MaxPermSize
最大使用内存:对于UNIX而言,一般不应超过物理内存的75%;
对于Windows, 一般不应超过物理内存的50%;
-XX:MaxPermSize 一般应为ms(最大使用内存)的一半;

具体操作时,修改startweblogic.sh(startweblogic.cmd)中启动server的命令,重新设置虚拟机参数

set MEM_ARGS=-Xms128m -Xmx512m -XX:MaxPermSize=256m
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
-Dweblogic.Name=%SERVER_NAME%
-Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE%
-Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server

(2)websphere
修改应用程序服务器->进程定义->JVM虚拟机
设置最大最小内存,并重新启动服务器.
========================================================================
三、连接池的优化
可以参照同一时间连接数据库的用户数量,进行设置,
数据库的最大连接数不能小于高峰时期同一时间连接用户的数量。
(1)weblogic
Services->jdbc-->Connection Pools-->centerconn-->connections
initial Capacity(初始连接数):10
Maximum Capacity(最大连接数):50
CapacityIncrement:(每次递增数):3
(2)websphere
请参考weblogic设置数据源的最大最小连接数。

========================================================================
附录:

在AIX中使用中文有两种途径:第一是在安装AIX时选择中文语言,装好的系统自动显示中文(这种方法不推荐使用,它没有第二种方法使用起来灵活)。第二是安装AIX时选择英文,系统启动后手工设置中文环境,方法如下:

1. 将AIX系统盘的第一张光盘放入光驱;

2. 运行命令:

smitty

--> System Environments

--> Manage Languange Environment

--> Change/Show Primary Language Environment

--> Change/Show Cultural Convention, Language, or Keyboard



在随后显示的菜单中将光标分别移到以下字段:



Primary CULTURAL Convention

Primary LANGUAGE translation

Primary KEYBOARD



按下,从弹出的菜单中选择“IBM-eucCN”将上述字段改为简体中文,按下回车键后系统自动从光盘安装中文环境软件包。此操作完成后重新启动系统,操作界面即为简体中文。


========================================================================
注:本文档只做参照,并不能千篇一律的这样做.还需要具体问题具体分析.

posted @ 2006-07-12 22:00 paulwong 阅读(461) | 评论 (0)编辑 收藏

中文版API

中文版API

http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html

posted @ 2006-06-22 11:02 paulwong 阅读(183) | 评论 (0)编辑 收藏

仅列出标题
共116页: First 上一页 108 109 110 111 112 113 114 115 116 下一页