亚洲综合色成在线播放,亚洲高清免费视频,91久久亚洲国产成人精品性色http://m.tkk7.com/jasmine214--love/category/45454.html微笑著思考zh-cnThu, 15 Jul 2010 22:40:25 GMTThu, 15 Jul 2010 22:40:25 GMT60iTopoview Java網絡拓撲圖組件 ---官網http://m.tkk7.com/jasmine214--love/archive/2010/07/15/326155.html幻海藍夢幻海藍夢Wed, 14 Jul 2010 23:06:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/15/326155.htmlhttp://m.tkk7.com/jasmine214--love/comments/326155.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/15/326155.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/326155.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/326155.html 原文:http://www.zhtelecom.com/itopoview.htm
iTopoview Java網絡拓撲圖組件

系統介紹
??? iTopoview是專門面向網絡拓撲圖領域的界面組件,采用Java技術開發,為軟件開發人員準備。使用者 無需了解任何圖形技術,無需借助其他腳本,通過簡單的Java數據定義和操縱,即可創建出專業高效的網絡拓撲圖;并且提供了菜單、鼠標、用戶業務數據、用戶業務處理、告警等操作,讓網絡拓撲圖的工作變得 愉悅高效。iTopoview附帶了一個完整網絡拓撲圖界面源代碼,供用戶學習參考,可用于Java GUI、Web Applet或Ajax + iTopoview等環境中。

在線 體驗

Java Web Start方式演示(需Java插件)?????????? 瀏覽器在線方式演示


iTopoview界面樣例
采用iTopoview API開發的界面



幻海藍夢 2010-07-15 07:06 發表評論
]]>
用wz_jsgraphics.js(javascript圖形庫)進行畫矢量圖,兼容多瀏覽器http://m.tkk7.com/jasmine214--love/archive/2010/07/14/326067.html幻海藍夢幻海藍夢Wed, 14 Jul 2010 03:22:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/14/326067.htmlhttp://m.tkk7.com/jasmine214--love/comments/326067.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/14/326067.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/326067.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/326067.html 原文: http://squll.blogbus.com/logs/3932957.html
序:在 www.sitepoint.com 上看了 Simon 的一篇 BLOG ,引導我去了一個很棒的 Web 開發站點 http://www.walterzorn.com/ ,并在那里獲得了一個僅用 DHTML 和 Javscript 技術開發的一個高性能的矢量圖形庫 wz_jsgraphics.js (感謝 Walter Zorn 開發了這個圖形庫),使用它就可以在你的網頁上畫出漂亮的矢量圖形了。進入這個圖形庫的介紹頁面 http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm ,映入眼簾的是折線、多邊形、圓等常見的一些幾何圖形,起初我以為不過是一些圖片罷了,當我看到這行小字 These are not image files. Shapes & text have been dynamically drawn with wz_jsgraphics.js 后,并細細閱讀了關于它的說明后,才意識到除了VML 和 SVG可以在 網頁上繪制顯示矢量圖形,僅用DHTML 和 Javascript 同樣可以做到這一切!是不是覺得很吃驚呢?(雙擊一下這個文檔,看看放大后的矢量圖形吧),ok!廢話少說,下面我將詳細介紹一下這個圖形庫。

總覽 (overview)

該圖形庫使用了 DHTML 和 Javascript 技術,它可以畫線,圓,橢圓,折線,多邊形,矩形。對于一個不太了解 Javascript 的人來說使用這個圖形庫也是非常容易的,另外,使用這個圖形庫畫出的圖形是完全被優化到像素級的!

瀏覽器的兼容性

Linux 系統 :
Browsers with Gecko-Engine (Mozilla, Netscape 6+, Galeon), Konqueror 3.0.3 ( 非常慢 ), Netscape 4, Opera 5 and 6.

Windows 系統 :
Gecko-Browsers, IE 4, 5 and 6, Netscape 4, Opera 5, 6 and 7.

說明:如果在網頁全部加載完成后,使用這個矢量圖形庫進行繪制,在 Opera 版本 7 以前的瀏覽器中不會執行, Netscape 版本 4 也不會執行。相反,當 HTML 頁面正在被解析時, 使用這個圖形庫進行繪制是全部瀏覽器均能做到的。

怎樣使用這個矢量圖形庫?

1 .包含這個庫

插入下面的代碼到你的 html 文件的開頭部分(在 <head> 和 </head> 之間):

<script type="text/javascript" src="wz_jsgraphics.js"></script>

2 .使用層( div 或 layer )作為畫布( canvases )
如果是當頁面正被載入時,直接在 html 頁面中繪制,那么這個步驟不是必須的。

如果在頁面加載完成后繪制,應該設置幾個具有絕對坐標的層,作為你的畫布,每一個層應該有一個唯一的 id:
<div id="myCanvas" style="position:relative;height:250px;width:100%;"></div>
...
<div id="anotherCanvas" style="position:relative;height:100px;width:300px;"></div>

3 .下載并保存這個圖形庫

到這個地址 http://www.walterzorn.com/scripts/wz_jsgraphics.zip 下載,將解壓后的 wz_jagraphics.js 與你的 html 文件放至相同的目錄中,如果你的 wz_jagraphics.js 與 html 文件處于不同的目錄下,記得在 src=”wz_jsgraphics.js” 中指示 wz_jagraphics.js 的相對路徑。

怎樣使用這個矢量圖形庫中的繪制函數?

1 創建一個 jsGraphics 對象

a) 在頁面完全載入后繪制:

(這種方式不會在 Netscape 版本 4 和 Opera 版本小于 7 的瀏覽器中執行)

還記得前面用 div 元素創建的畫布嗎?看下面的示例, 需要為 div 創建相應的 jsGraphics 對象,這些代碼必須插入到相關的 div 元素結束標志 </div> 后面, 但必須在 </body> 的前面, div 元素的 id 作為 new jsGraphics(); 的構造參數,像下面這樣:

<script type="text/javascript">
<!--

var jg = new jsGraphics("myCanvas");

//-->
</script>

如果有多個 div 元素,每一個 div 都需要有它自已的 jsGraphics 對象:

<script type="text/javascript">
<!--

var jg = new jsGraphics("myCanvas");
var jg2 = new jsGraphics("anotherCanvas");

//-->
</script>

b )在頁面載入的時候繪制
(在 Netscape 4 和 Opera 5/6 可以執行)

只需要將構造參數設為空:

<script type="text/javascript">
<!--

var jg_doc = new jsGraphics();

//-->
</script>

你可以選擇 jg,jg2 或 jg_doc 其它的變量名,只要不違反 Javascript 的命名規則就可以。

2. 圖形繪制函數

為確保所有瀏覽器能正確執行, 這里選擇頁面載入時進行繪制,即上文的 b 方式

一旦產生這些圖形對象(在這個示例中 jg, jg2 或 jg_doc ),就可以使用它來調用繪制圖形的方法。由圖形對象所繪制的圖形將會在相關的 div 元素上顯示(采用上文 a 方式構造圖形對象):

<script type="text/javascript">
<!--
function myDrawFunction()
{
jg_doc.setColor("#00ff00"); // 選擇綠色
jg_doc.fillEllipse(100, 200, 100, 180); // 坐標點相對于文檔 (document)
jg_doc.setColor("maroon");
jg_doc.drawPolyline(new Array(50, 10, 120), new Array(10, 50, 70));
jg_doc.paint(); // 注意:直接在文檔上繪制,而不與某個 div 關聯 ,

jg.setColor("#ff0000"); // 選擇紅色
jg.drawLine(10, 113, 220, 55); // 坐標點相對于 div 元素 "myCanvas"
jg.setColor("#0000ff"); // 選擇藍色
jg.fillRect(110, 120, 30, 60);
jg.paint();

jg2.setColor("#0000ff"); // 選擇藍色
jg2.drawEllipse(10, 50, 30, 100);
jg2.drawRect(400, 10, 100, 50);
jg2.paint();
}

var jg_doc = new jsGraphics(); // 直接在文檔上繪制
var jg = new jsGraphics("myCanvas");
var jg2 = new jsGraphics("anotherCanvas");

myDrawFunction();

//-->
</script>

開始畫時應首先選擇畫筆顏色,否則,畫筆的顏色取默認值-黑色。坐標值作為繪制圖形方法的參數,如果采用上文的 a 方式構造圖形對象,那么坐標值是相對于 div 元素的左上角的。每一個畫布(圖形對象),它的 paint 方法必須被顯示的調用以產生 html 格式的圖形,否則,在你的屏幕上什么都不會發生。



函數名(方法) 示例代碼(用 jg 圖形對象)

setColor( "#HexColor" );
指定畫筆顏色,一旦設置后,這個顏色會一直保留,直到下一次再重新指定畫筆顏色,這個顏色值可以類似于 html 中的 #rrggbb 顏色表示,用名稱表示顏色也可以,例如:“ maroon ”

jg.setColor("#ff0000");

or with identical result

jg.setColor("red");

setStroke( Number );
指定畫筆采用的線厚度,這個厚度一旦被設置,會一直保留,直到下一次重新指定一,默認厚度是 1px.
要設置點劃線型,需要傳 Stroke.DOTTED 參數,點劃線型同樣適用于矩形,多邊型,折線和橢圓。

jg.setStroke(3);

or

jg.setStroke(Stroke.DOTTED);

drawLine( X1, Y1, X2, Y2 );
畫線。從第一個坐標點到第二個坐標點,線的厚度由 setStroke 設置。

jg.drawLine(20,50,453,40);

drawPolyline( Xpoints, Ypoints );
一條折線是一系列線段的集合, Xpoints 和 Ypoints 是每個點的 x 坐標和 y 坐標的數組集合,必須像下面這樣聲明:

var Xpoints = new Array(x1,x2,x3,x4,x5);
var YPoints = new Array(y1,y2,y3,y4,y5);

var Xpoints = new Array(10,85,93,60);
var YPoints = new Array(50,10,105,87);
jg.drawPolyline(Xpoints,Ypoints);

drawRect( X, Y, width, height );

一個矩形的外邊線。參照左上角的坐標點,并指定矩形的寬度和高度。

jg.drawRect(20,50,70,140);

fillRect( X, Y, width, height );

填充矩形,參照左上角的坐標點,并指定矩形的寬度和高度。

jg.fillRect(20,50,453,40);

drawPolygon( Xpoints, Ypoints );
多邊形。 Xpoints 和 Ypoints 是每個點的 x 坐標和 y 坐標的數組集合,必須像下面這樣聲明:

var Xpoints = new Array(x1,x2,x3,x4,x5);
var YPoints = new Array(y1,y2,y3,y4,y5);

如果始點和終點末被指定,多邊線將會自動閉合。

var Xpoints = new Array(10,85,93,60);
var Ypoints = new Array(50,10,105,87);
jg.drawPolygon(Xpoints, Ypoints);

Instead of Xpoints and Ypoints you may use another name provided it follows the rules for variable names.

fillPolygon( Xpoints, Ypoints );

填充矩形。參數作用見 drawPolygon()

jg.fillPolygon(new Array(10,85,93,60), new Array(50,10,105,87));

drawEllipse( X, Y, width, height );

畫橢圓邊線。參照橢圓的外接矩形, x 和 y 是這個外接矩形的左上角坐標

jg.drawEllipse(20,50,70,140);
or
jg.drawOval(20,50,70,140);

fillEllipse( X, Y, width, height );
填充橢圓。參數見 drawEllipse()

jg.fillEllipse(20,50,71,141);
or
jg.fillOval(20,50,71,141);

drawString( "Text", X, Y );

寫文本至由 x 和 y 坐標指定的位置。不同于 Java ,坐標值是第一行文本的左上角坐標值。如果文本中包含有 HTML 標記將被轉義,舉個例子:

"Some Text<br>more Text" 會被轉義為兩行


setFont( "font-family", "size+unit", Style );
在 drawString() 之前調用。指定字體,大小,樣式,字體和大小可以是與 HTML 中指示的一樣,至于樣式,可以使用的有:
Font.PLAIN 默認樣式,非粗體和斜體
Font.BOLD 粗體
Font.ITALIC 斜體

它們可以結合使用

jg.setFont("arial","15px",Font.BOLD);
jg.drawString("Some Text",20,50);

drawImage( "src", X, Y, width, height );
在指定的位置畫圖像, ”src” 參數指定圖像所在路徑, width 和 height 參數允許調整圖像寬高。

jg.drawImage("friendlyDog.jpg", 20,50,100,150);

paint();
必須顯示調用,才能真正在 html 頁面上畫圖形,不推薦每隔一段(每畫一個圖形)就調用一次。

像下面這樣的調用應該避免 :
jg.drawEllipse(0, 0, 100, 100);
jg.paint();
jg.drawLine(200, 10, 400, 40);
jg.paint();
...

像下面這樣的調用性能會很高 :
jg.drawEllipse(0, 0, 100, 100);
jg.drawLine(200, 10, 400, 40);
/*... 還有其它畫的方法 ... */
jg.paint(); // 最后調用 paint()

jg.paint();

clear();

與圖形對象關聯的 div 畫布中的圖形被清除(在 div 中不是由這個圖形對象創建的內容是不會被改變的)

jg.clear();

setPrintable( true );

默認情況下,打印這些圖形是不太可行的,因為瀏覽器的默認打印設置中會關閉打印背景,調用 setPrintable() ,并設置參數為 true ,將重置圖形為可打印的(至少在 Mozilla/Netscape 6+ and IE 中)



幻海藍夢 2010-07-14 11:22 發表評論
]]>
ZK + Spring + Hibernate最簡單的例子http://m.tkk7.com/jasmine214--love/archive/2010/07/11/325786.html幻海藍夢幻海藍夢Sun, 11 Jul 2010 08:25:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325786.htmlhttp://m.tkk7.com/jasmine214--love/comments/325786.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325786.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325786.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325786.html?
原文:http://chanson.javaeye.com/blog/164786
1、Spring+Hibernate配置起來很簡單,具體就不細說了,網上多的是。

2、ZK顯示頁面
【query.zul】
<?xml version="1.0" encoding="UTF-8"?>
<window>
<button label="查詢"></button>
<vbox>
? <listbox id="testListID" width="800px" rows="5" use="chanson.common.web.ui.ListTestBean">
??? <listhead>
????? <listheader label="姓名"/>
????? <listheader label="性別"/>
????? <listheader label="生日"/>
????? <listheader label="薪資"/>
??? </listhead>
??? <listitem value="${each.id}" forEach="${testList}">
????? <listcell label="${each.name}"/>
????? <listcell label="${each.sex}"/>
????? <listcell label="${each.birthday}"/>
????? <listcell label="${each.money}"/>
??? </listitem>
? </listbox>
</vbox>
</window>

《說明》:
A、<?xml version="1.0" encoding="UTF-8"?>
這個別忘記了,剛學的時候就是因為它報了不少錯誤。
B、use="chanson.common.web.ui.ListTestBean"
這個類就是銜接前后臺的關鍵類。
C、${*.*}這個是標準的EL寫法。


3、ListTestBean——最關鍵的銜接類
public class ListTestBean extends Listbox {

??? public void onCreate() {
??? ? ITestLogic testLogic = (ITestLogic) SpringFactory
? .getBeanFactory().getBean("testLogic");
??? ? List testList = testLogic.find("from Test");
??????? Iterator it = testList.iterator();
??????? while(it.hasNext()) {
??????????? Test test = (Test) it.next();
??????????? Long id = test.getId();
??????????? String name = test.getName();
??????????? Integer sex = test.getSex();
??????????? Date birthday =test.getBirthday();
??????????? Double money = test.getMoney();??????

??????????? Listitem listitem = new Listitem();
??????????? listitem.setValue(id);
??????????? listitem.setParent(this);

??????????? Listcell nameCell = new Listcell(name);
??????????? Listcell sexCell = new Listcell(sex.toString());
??????????? Listcell birthdayCell = new Listcell(birthday.toString());
??????????? Listcell moneyCell = new Listcell(money.toString());
??????????? nameCell.setParent(listitem);
??????????? sexCell.setParent(listitem);
??????????? birthdayCell.setParent(listitem);
??????????? moneyCell.setParent(listitem);
??????? }
???? }
}
《說明》:
A、例子是一個簡單的查詢,所以看起來也比較簡單。
B、該類的作用有點像似servlet,只是省略了頁面跳轉
C、setter/getter真是麻煩,得找找更簡潔的方法



【附錄】
1)、數據庫設計——test表
CREATE TABLE `test` (
? `id` decimal(22,0) NOT NULL default '0',
? `name` varchar(100) default NULL,
? `sex` int(1) default NULL,
? `birthday` datetime default NULL,
? `money` decimal(15,4) default NULL,
? PRIMARY KEY? (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2)、其他應該沒什么了吧?
3)、頁面效果圖
  • 描述: 頁面效果圖
  • 大小: 27.5 KB


幻海藍夢 2010-07-11 16:25 發表評論
]]>
ZK--學習研究1/2/3http://m.tkk7.com/jasmine214--love/archive/2010/07/11/325785.html幻海藍夢幻海藍夢Sun, 11 Jul 2010 08:01:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325785.htmlhttp://m.tkk7.com/jasmine214--love/comments/325785.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325785.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325785.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325785.htmlhttp://jerrysun.blog.51cto.com/745955/280525
由于工作的變動,已經很久沒有更新Blog了。來到新公司又馬不停蹄的開始了自己的工作,現在終于可以忙里偷閑了,呵呵。
  雖然說新公司的業務和自己之前從事的是兩個領域,不過好在技術還是Java,而且在新公司的第一個項目還和之前的一樣,開發一個內容管理系統,哈哈,這個可是我比較擅長的。在經歷兩月的時間之后,終于滿足了需求的內容,順利上線。不過又出了新問題,就是界面比較難看,這時領導提議說“要不你用ZK改造吧,公司之前的系統也是ZK做的”。這個提議倒是不錯,不過對于我來說又是一個挑戰。
  google了一下,發現ZK在國內使用的不是很多,資料也不是很全。只能是摸著河過石頭了。不會寫,還不會抄嗎,先下載ZK官網的Demo看看再說
  下了Demo,搭建環境,運行,發現ZK確實比較好用,非常類似于微軟的.Net,它提供了很多組件,使用這些組件可以很快的進行開發。我認為ZK最好的地方在于code-behind,這一點和.Net是非常類似的。這樣就不用再像寫JSP的時候那樣將一些具體的操作代碼寫到頁面中,使頁面代碼非常難閱讀;而它又比WebWork更加靈活,有些東西不需要再重新修改WebWork中的組件(由于敝人對于WebWork的使用不是很精通,請各位WebWork、Structs達人不要拍磚)。
  也許是我接觸的東西少吧(作為一個程序員,實在是慚愧啊),總之ZK讓我覺得很容易上手,后面的應用也說明了這一點。

書接上回,前面說了那么多,到底ZK有啥好處呢?這個就只可意會不可言傳了,呵呵。
  舉個例子,假設有個列表需要顯示,在頁面中可以使用table或者是ul li來實現,table的代碼如下:
<table cellspacing="0" cellpadding="0" width="90%" border="0"class="table_cont">
??<tbody>
<%
????//判斷列表是否為空
????if(activeList==null || activeList.isEmpty() || activeList.size()<1)
????{
??????//為空,顯示提示信息
??????out.print("<tr><td colspan=\"4\" style=\"width:400px;\">目前 "+strProvinceName+" 還沒有活動</td></tr>");
????}
????else
????{
??????//不為空,顯示列表內容
??????out.println("<tr>\n<th style=\"width:40%;\">名稱</th><th style=\"width:30%;\">活動日期</th><th style=\"width:10%;\">狀態</th><th style=\"width:20%;\">操作</th>\n</tr>");
??????Iterator<Active> iter = activeList.iterator();
??????Active active = null;
??????while(iter.hasNext())
??????{
????????active = (Active)iter.next();
????????out.println("<tr>");
????????out.print("<td style=\"width:40%;\">"+active.getTitle()+"</td>");
????????if(active.getCreateDt()!=null)
????????{
??????????out.print("<td style=\"width:30%;\">"+active.getCreateDt().toString().substring(0,10)+"</td>");
????????}
????????else
????????{
??????????out.print("<td style=\"width:10%;\">?</td>");
????????}
????????if(active.getStatus()==1)
????????{
??????????out.print("<td>上線</td>");
????????}
????????elseif(active.getStatus()==2)
????????{
??????????out.print("<td>下線</td>");
????????}
????????out.print("<td style=\"width:20%;\"><a href=\"activeUpdate.jsp?province="+province+"&activeId="+active.getId()+"\">修改</a>??");
????????out.print("<a href=\"activeDel.jsp?province="+province+"&activeId="+active.getId()+"\">刪除</a></td>");
????????out.println("</tr>");
??????}
????}
%>
??</tbody>
</table>
  效果圖如下:
  可以看出其中有一些的判斷,然后還要擔心“<%”和“%>”是否匹配,“{”和“}”是否匹配等等情況。如果是ZK的話,這些不必要的擔心就可以省去了。
  頁面(list.zul)代碼:
<?xmlversion="1.0"encoding="UTF-8"?>
<?pagetitle="列表"contentType="text/html;charset=UTF-8"?>
<zk>
<windowstyle="heigth:100%; border:0; text-align:center;"id="winList">
??<stylesrc="../styles/global.css"></style>
??<divstyle="padding-top:20px; vertical-align:bottom;">
????<labelvalue="列表"/><separator/>
??</div>
??<divstyle="padding:0px 0px 0px 0px;text-align:center;width:80%;">
????<labelid="lblTips"visible="false"style="color:#FF0000;"/>
????<listboxid="blacklistList"style="width:100%;">
??????<listheadstyle="text-align:center;">
????????<listheaderlabel="用戶號碼"style="width:15%;"/>
????????<listheaderlabel="用戶類別"style="width:15%;"/>
????????<listheaderlabel="說明"style="width:35%;"/>
????????<listheaderlabel="添加日期"style="width:15%;"/>
????????<listheaderlabel="操作"style="width:20%;"/>
??????</listhead>
????</listbox>
??</div>
??<zscriptlanguage="Java">
????<![CDATA[
???????????? import com.zk.list;
???????????? list ui = new list();
???????????? ui.setWinMain(winlList);
???????????? ui.showAllBlacklist();
????]]>
??</zscript>
</window>
</zk>
  邏輯處理代碼(list.java):
publicvoid showAllBlacklist()
{
??try
??{
????// 得到列表
????BlacklistIF blacklistIf = ServiceLocator.getBlacklistIF();
????List<Blacklist> blacklistList = blacklistIf.findAllBlacklist(-1);
????
????// 判斷列表是否為空
????if(blacklistList.size()>0 && !blacklistList.isEmpty())
????{
??????this.showList(blacklistList);
????}
??}
??catch(Exception ex)
??{
????ex.printStackTrace();
??}
}

privatevoid showList(List<Blacklist> blacklistList)
{
??// 得到列表組件,用于顯示群發安排列表
??Listbox listbox = (Listbox)winMain.getFellow("blacklistList");
????
??// 列表的行組件
??Listitem listitem = new Listitem();
????
??// 列表的列組件
??Listcell listcell = new Listcell();
????
??for(int i=0;i<blacklistList.size();i++)
??{
????// 用戶號碼
????listcell.setLabel(blacklistList.get(i).getMobile());
????listitem.appendChild(listcell);
????
????// 用戶類別
????listcell = new Listcell();
????switch(blacklistList.get(i).getType())
????{
??????case 1:
????????listcell.setLabel("黑名單");
????????break;
??????case 2:
????????listcell.setLabel("黃名單");
????????break;
??????case 3:
????????listcell.setLabel("綠名單");
????????break;
??????case 4:
????????listcell.setLabel("非彩信用戶");
????????break;
????}
????listitem.appendChild(listcell);
????
????// 說明
????listcell = new Listcell();
????if(blacklistList.get(i).getDescription().equals(""))
????{
??????listcell.setLabel("暫無");
????}
????else
????{
??????listcell.setLabel(blacklistList.get(i).getDescription());
????}
????listitem.appendChild(listcell);
????
????// 添加日期
????listcell = new Listcell();
????listcell.setLabel(blacklistList.get(i).getCreateDate().toString().substring(0,10));
????listitem.appendChild(listcell);
????
????// 顯示操作按鈕
????Hbox hbox = new Hbox();
????
????// 彩信產品的id,添加事件監聽時要用final修飾的變量
????finalint id = Integer.parseInt(blacklistList.get(i).getId().toString().trim());
????// 添加一個查看按鈕
????Button button = new Button();
????button.setLabel("查看");
????// 為查看按鈕添加一個
????button.addEventListener(Events.ON_CLICK, new EventListener()
????{
??????publicvoid onEvent(Event arg0) throws Exception {
????????showBlacklistDetail(String.valueOf(id));
??????}
????});
????button.setVisible(false);
????hbox.appendChild(button);
????
????// 添加一個刪除按鈕
????button = new Button();
????button.setLabel("刪除");
????// 為刪除按鈕添加一個
????button.addEventListener(Events.ON_CLICK, new EventListener()
????{
??????publicvoid onEvent(Event arg0) throws Exception {
????????delBlacklist(String.valueOf(id));
??????}
????});
????hbox.appendChild(button);
????
????listcell = new Listcell();
????listcell.appendChild(hbox);
????listitem.appendChild(listcell);
????
????// 將當前行在列表中顯示
????listbox.appendChild(listitem);
????
????listitem = new Listitem();
????listcell = new Listcell();
??}
}
  效果圖如下:
  可以看到,這樣就達到了邏輯處理和頁面顯示的代碼分離,使得頁面顯示的代碼更加清晰,而邏輯處理類的作用也更加明顯。
前面已經看見效果了,咱們就來開始實際應用它吧。首先要做的是搭建開發環境,訪問ZK的官方網站http://www.zkoss.org/,在頁面的頂部導航,或者右側可以看到download,點擊download進去,在頁面的Downloads列表中選擇第二項“ZK studio”,這時會進入另一個頁面,此時我們只要在MyEclipse中的插件管理面板中將“Online Installation”下面的地址粘貼進去,點擊OK就好了。接下來就是等待MyEclipse幫我們把ZK插件安裝好。
  安裝好以后,會彈出一個對話框,要輸入用戶名和密碼,這個只要在ZK的網站上注冊一下就好了。我嘗試過不輸入用戶名、密碼,結果ZK不能正常使用了
  開發環境有了,接下來就是來編寫我們的第一個ZK工程了。在MyEclipse中選擇file->new->project 然后選擇ZK Project,然后next,輸入工程名,finish就可以了。這時會詢問是否切換到ZK的編輯面板,這個就因人而異吧,自己喜歡就好。
  在ZUL文件的代碼中,你會看到“New Content Here!” 這句話,把它替換成你自己想寫的內容,保存,然后部署到Tomcat下,訪問這個ZUL文件,就能看到效果了。
  效果圖如下:
  代碼如下:
<?pagetitle="new page title"contentType="text/html;charset=UTF-8"?>
<zk>
<windowtitle="new page title"border="normal">
我的第一個ZK頁面,hoho
</window>
</zk>
  
  嘿嘿,第一個ZK頁面出來嘍


幻海藍夢 2010-07-11 16:01 發表評論
]]>
ZK--如何使用JSPhttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325784.html幻海藍夢幻海藍夢Sun, 11 Jul 2010 07:55:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325784.htmlhttp://m.tkk7.com/jasmine214--love/comments/325784.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325784.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325784.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325784.html 原文:http://hi.baidu.com/zk_ajax/blog/item/883b0f36030da1dca3cc2bb3.html
Zk
使用的是 zul ,據說是 xul 的擴展,反正對于我這種用慣 JSP 的人實在不習慣,于是便嘗試并搜索著如何將 zk 整合到 JSP 中,還真找到了,不過 JSP 文件就必須嚴格遵守 XML 格式了,例如 < br> 就得寫成 <br /> <br></br> 了,剛開始狂報錯,基本上都是標簽未關閉,實在不慣啊。哈,進正題了。

?????? 還記得那個 zkajax 工程嗎,打開它,然后打開 web.xml 文件 ( 如果不知道這個文件的位置,我就該哭了 ) ,如果出現的是圖形,就點下面 Source 即可出現代碼。

?????? <listener> 標簽的前面添加如下的 filter(Ctrl+Shift+F5 可以對齊文本 )

<filter>

????????????? <filter-name>zkFilter</filter-name>

????????????? <filter-class>

???????????????????? org.zkoss.zk.ui.http.DHtmlLayoutFilter

????????????? </filter-class>

????????????? <init-param>

???????????????????? <param-name>extension</param-name>

???????????????????? <param-value>html</param-value>

???????????????????? <!-- Use XHTML components as default. -->

????????????? </init-param>

?????? </filter>

?????? <filter-mapping>

????????????? <filter-name>zkFilter</filter-name>

????????????? <url-pattern>*.jsp</url-pattern>

????????????? <dispatcher>REQUEST</dispatcher>

????????????? <dispatcher>INCLUDE</dispatcher>

????????????? <dispatcher>FORWARD</dispatcher>

????????????? <dispatcher>ERROR</dispatcher>

?????? </filter-mapping>

????

WebContent 目錄下新建一個 test_jsp 文件 內容如下

<%@ page language="java" pageEncoding="UTF-8"%>

<html xmlns:x="http://www.zkoss.org/2005/zul">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title> 測試 zk jsp</title>

</head>

<body>

<x:window id="test" title=" 測試 zk jsp" border="normal" width="100px">

測試 zk jsp

</x:window>

</body>

</html>

在這文件上點右鍵 ->Rin As->Run on server, ,即可看到運行結果,大概是下圖的樣子:

是不是字體很小?我覺得太小了,于是我修改 css 文件中的字體,我把大部分該成了 10pt ( 原來為 x-small xx-small ) ,此文件為與 zul.jar\web\zul\css\normie.css.dsp ,然后再運行就是下圖的樣子了:


感覺到變化了吧。



幻海藍夢 2010-07-11 15:55 發表評論
]]>
ZK DEMO--在本地部署環境http://m.tkk7.com/jasmine214--love/archive/2010/07/11/325783.html幻海藍夢幻海藍夢Sun, 11 Jul 2010 07:53:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325783.htmlhttp://m.tkk7.com/jasmine214--love/comments/325783.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/11/325783.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325783.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325783.html 原文:http://hi.baidu.com/zk_ajax/blog/item/05c0f61133ce3d7fcb80c476.html
班主任讓人幫忙做一個教師管理系統,我看著是一個機會,就跟一位同學去了。算是接下了一個項目。另我吃驚的是可以有一小筆收入,心中暗喜。

?????? 接下來不好過了,后臺技術足夠了 , 缺一個做界面的,要是 dorado 不付費早用它了。接下來費了好大勁終于找到了一個開源的東西 ---zk ,一個作界面的不二之選。

?????? 扯遠了,接下來是正題。

??? 可以在 http://www.zkoss.org/ 上下到有關 zk 需要的東西, 我用的版本是 zk-2.3.0.zip

下面介紹如何在 eclipse 部署 zk 環境

(1)??? 打開 eclipse, File->New->Project->Web->Dynamic Web Project ,即新建一個動態網站,工程名為 zkajax 。我個人傾向于在 Java Psrspective 環境下工作。

(2)??? zk-2.3.0\demo\src\zkdemo\WebContent 下的文件放在工程中的對應位置

(3)??? zk-2.3.0\zk-2.3.0\dist\lib 下的所有 jar 引入路徑 ( 放在 WEB-INF/lib )

(4)??? zk-2.3.0\demo\src\zkdemo\src 下的 java 文件放在 工程的 src

(5)??? 最后是下圖的樣子


(6)??? 運行,在工程 zkajax 上點右鍵 ->Run As->Run on Server ,選中 tomcat ,點 Finish 即可,網頁出來后點 Zk Demo ,效果圖如下:



幻海藍夢 2010-07-11 15:53 發表評論
]]>
10種加速Ajax開發的主流框架http://m.tkk7.com/jasmine214--love/archive/2010/07/08/325515.html幻海藍夢幻海藍夢Thu, 08 Jul 2010 01:19:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/08/325515.htmlhttp://m.tkk7.com/jasmine214--love/comments/325515.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/08/325515.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325515.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325515.html1. APS.NET的官方解決方案
  ASP.NET AJAX
  網址:ajax.asp.net

  ASP.NET AJAX是微軟.NET平臺上的解決方案,提供涵蓋伺服器端與用戶端所需的AJAX技術與JavaScript整 合機制。

  透過與下載與安裝ASP.NET AJAX到Visual Studio 2005當中,即可利用預設的控制項,開發出一些視覺特效與非同步傳輸的應用。

  另外,ASP.NET AJAX也提供控制項的Toolkit,包含開發人員想自行開發AJAX應用時所需的基底類別與專案范本。

  ASP.NET AJAX除了處理瀏覽器的相容性問題,也讓用戶端的JavaScript在開發時加入物件導向特性,例如型別系統、資料型別、命名空間、事件等,使得程式 碼更容易除錯、維護與重復使用。

  雖然ASP.NET AJAX提供伺服器與用戶端的解決方案,透過Visual Studio2005加持,也讓開發、除錯的難度降低,不過和其他AJAX框架相比,許多AJAX效果和功能都還在測試階段(在CTP版本中供用戶測 試),可以應用的功能有限。

  2.支援「上一頁」與加入「我的最愛」功能
  Dojo
  網址:dojotoolkit.org

  一些輕巧的Ajax框架,用意在解決JavaScript遇到的易用性或特效問題,相較之下,Dojo更像是個面面俱到的JavaScript 工具套餐,號稱可以降低網頁或網頁應用程式前端開發速度。

  Dojo支援拖拉、淡出、淡入、移動、透明、操作SVG圖檔等動態效果,它的Widget也讓使用者可以輕易使用選單,分頁標簽(tab)、樹 狀結構、日歷、文字編輯器等效果,當然也支援非同步處理的Ajax功能。

  另外,Ajax由于以動態的方式操作文件物件,導致使用者習于使用上一頁、下一頁的功能無法使用,也無法利用像是「我的最愛」的功能,將使用者 所需的頁面留下正確的書簽,但這些需求Dojo都已有解法。

  比起其他輕巧型的Ajax框架,要摸熟Dojo顯然要下較多的功夫才能掌握,目前文件較少也是個問題。不過由于它的功能更為完整,因此開發人員 需要自行加工的地方就相對較少。

  3.可由JavaScript呼叫Java語法
  DWR(Direct Web Remoting)
  網 址:www.getahead.ltd.uk/dwr

  DWR是設計給Java語言的Ajax框架,讓開發人員可以利用JavaScript程式呼叫Java語法。

  DWR的運作可分為兩個部分,一方面用在瀏覽器上,處理連接伺服器端Java程式,另一部分則是用來展示回傳資料。透過DWR呼叫Java的函 式,它會處理連接處理的細節,而當資料被處理完成后,DWR就會執行回呼函式,以進行后續呈現的處理。

  在安裝DWR時必須編輯Web應用程式的部署描述檔案,而且也要編輯DWR特定檔案。 DWR配置檔案指定了可以遠端建立和呼叫的類別。檔案中包含伺服器程式碼的JAR檔案,另外還有JavaScript檔案,提供一些輔助函式,處理互動呈 現的效果。

  DWR最大的好處就在于讓Java開發人員可以利用熟悉的語法來處理頁面與資料,并且能配合Struts、Tapestry來使用。不過從用戶 端呼叫遠端伺服器的Java程式,仍存在一些安全上的疑慮,在使用時必須注意。

  4.以易用性、簡化語法為目標
  jQuery
  網址:jquery.com

  jQuery是最近大受矚目的Ajax框架,它以Prototype為本,簡化并提升JavaScript語法的功能。

  jQuery有點像是將Prototype所做的事再推向極端,讓使用者改變原有撰寫JavaScript的方法。它最為人稱道的地方,就在于 強大的存取頁面元素功能,無論是文件的節點、CSS的選取子或Xpath表達式,都能利用「$( )」函式快速存取,并賦予它更多的功能。

  此外,它的chainable方法能將一串處理函式結合在一起,讓程式碼更為簡潔。另外jQuery也提供一些動態效果,不過和其他框架相比, 這部分就顯得陽春許多。

  jQuery的優劣其實都在同一件事情上,一方面它簡化JavaScript的語法,讓撰寫程式更為簡便,就好用的目的而言,的確是相當成功。 然而這卻讓JavaScript的程式碼會發展成另一種樣子,對于初學者而言,一開始學習時,必須要花點時間去適應。

  5.依功能需求,下載模組化工具
  MooTools
  網址:mootools.net

  前身是以輕巧著稱的Moo.fx,與Prototype有著相似的概念和語法,但在物件導向上做得更為徹底,而且在動畫效果和互動行為上,提供 更多的功能與應用,能讓使用者更快的寫出物件導向概念的JavaScript語法。

  MooTools的下載檔依模組分為核心、類別、原生語法、網頁元素、瀏覽器視窗、動畫效果、拖曳、遠端傳輸與外掛程式,除了核心程式是必要下 載之外,其他可依使用者需求,下載所需的JavaScript檔案,借此減少檔案的體積。

  雖然MooTools將JavaScirpt物件導向化的結果做得更徹底,有利于程式的擴展與維護,不過也挑戰原先熟悉JavaScript物 件觀的人,需要較多的時間適應。

  不過無論是網站本身呈現、程式語法展示,甚至是模組下載介面,MooTools都展現相當精致的動態效果,參與網站的示范,很快就能實作。

  6.大大擴充JavaScript基本功能
  Prototype
  網址:prototype.conio.net

  Prototype不像其他框架,有許多炫人耳目的動態效果,而是專注在改良JavaScript本身的功能,讓JavaScript更容易使 用,也更具物件導向風格。

  Prototype在簡化JavaScript方法上,提供許多方便的語法,最著名的如「$( )」函式,只要將DOM節點的ID傳入這個函式,就能取得這個節點物件,簡化了DOM的操作方法。而這個方式也幾乎成為其他開發框架延用的功能。其他如 「$F( )」函數能直接處理Web表單元件的值,「$A( )」函數能將列舉的字串轉換成陣列等,都是Prototype經典功能。

  在非同步處理上,它也提供了Ajax.Request、Ajax.Updater等類別,讓開發人員在處理非同步運作時可以利用它提供的方法, 讓溝通行為更為容易、正確。

  雖然Prototype沒有太多花俏的功能,不過它簡化JavaScript的特性,仍讓許多Web開發人員衷情于它。

  7.平順、豐富的動畫效果
  Rico
  網址:openrico.org

  Rico是基于Prototype之上的Ajax框架,在西班牙文中,「rico」即為「rich」的意思,這也說明Rico的目標是提供開發 人員利用JavaScript達到豐富的網頁元件與應用。

  Rico提供非同步的Ajax應用,可讓非同步回應繞送到一個或多個回呼以操作DOM或JavaScript物件。在動畫效果方面,支援如拖曳 功能、縮放、過場、進度指標和黃褪技術等,可立即套用豐富的效果。

  由于Rico志在讓JavaScript也能表現出Flash般的動畫效果,因此像是網頁元件的顏色、形狀或下拉效果的變化都相當平滑,也能讓 DIV方塊做出圓角的效果,讓視覺表現更具Web 2.0風格。

  Rico的LiveGrid功能同樣是為人所稱道之處。它能讓表單資料產生更多元的表現方式,突破表格的檢視行為。例如它可以讓使用者在觸動卷 動軸時,動態下載資料,利用這種方式,可以分段下載,就無需采用分頁檢視的手法。

  8. RoR與CakePHP的指定框架
  Script.aculo.us
  網址:Script.aculo.us

  Script.aculo.us是建立在Prototype之上的Ajax框架,是解決視覺效果與互動行為的輕巧框架,Ruby on Rails及PHP上的開發框架CakePHP等,都是使用Script.aculo.us作為Ajax的解決方案。

  在視覺效果上,Script.aculo.us利用改變透明度、大小、位置以及結合以上三種元素,產生更多種變化,例如淡進、淡出、閃動、提示 等數十種視覺效果,可讓頁面效果更具變化,引導使用者與介面程式互動等。

  在互動介面方面,提供了拖曳元件、就地編輯元件(In-Place Editor)、水平、垂直拉動卷軸、自動完成、元件排序、購物車等,這些預先打包成套的功能,解決了瀏覽器相容性的問題,也讓使用者很容易可以直接導入 在現有的專案功能中,節省自行開發的時間。

  此外,Script.aculo.us包含單元測試(Unit Test)框架,可以利用本身的test物件,用來驗證程式執行的狀態,并且支援模擬滑鼠與鍵盤的功能。

  9.有Yahoo!網站服務背書的框架
  Yahoo! User Interface
  網 址:developer.yahoo.com/yui/

  Yahoo! User Interface(YUI)是Yahoo!所提供的Ajax框架,提供便捷的開發方式與許多JavaScript函式庫,使用者可以利用它來開發互動式 的介面與Ajax效果。 YUI可分為三大部分,包含工具、CSS和 控制元件等函式庫,工具部分是核心物件,負責一些較底層的處理功能,CSS則提供像版面規畫、字體工具。而控制元件則有自動完成、月歷、樹狀結構這些工 具。

  由于YUI實際應用在Yahoo!的網站中,因此實作的可靠性相當不錯,在YUI網站上也提供不少范例與文件,能協助使用者快速上手。雖然 YUI是由Yahoo!所推出,不過它遵循JavaScript的語法規則,并將樣式、內容與行為分離,開發人員如果要擴充功能,也相當容易。

  一般Ajax框架都需要置放在網站的伺服器端,隨著頁面一起下載,YUI除了采取這種方式之外,也提供使用連結的方式,使用者只要在應用的頁面 中將路徑指向YUI主機即可。

  10.適合Java開發環境的企業級解決方案
  ZK
  網址:www.zkoss.org

  ZK是基于Ajax、XUL(XML User Interface Language)、Java網頁應用程式的開發框架,讓網頁的操作行為可以像是桌面應用程式一般。

  不同于用戶端的Ajax解決方案,ZK由伺服器端出發,利用ZK處理Ajax互動的引擎,處理用戶端的頁面行為,也因此大為降低利用 JavaScript作為動態開發語法時,常遇到的瀏覽器相容問題。

  ZK提供超過70個XUL組件及80個XHTML組件,因此一些網頁或應用程式常見的功能,ZK都提供現成的工具可讓使用者立即應用,只需利用 ZK以XML為基礎的使用介面設計語言,即可產生這些組件。應用的人則可在后端利用Java語言進行來處理程式邏輯與資料傳遞。

  由于ZK利用Java語言開發,屬于以伺服器為中心的解決方案,因此必須安裝支援Java的應用程式伺服器(如Tomcat)才能執行。



幻海藍夢 2010-07-08 09:19 發表評論
]]>
ZK框架學習總結http://m.tkk7.com/jasmine214--love/archive/2010/07/07/325495.html幻海藍夢幻海藍夢Wed, 07 Jul 2010 12:32:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/07/325495.htmlhttp://m.tkk7.com/jasmine214--love/comments/325495.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/07/325495.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325495.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325495.html 原文:http://qa.taobao.com/?p=7145&cpage=1

1、ZK框架簡介

ZK框架是一個用JAVA實現的簡單但是功能強大的表現層框架。它包括了一個基于Ajax的 事件驅動引擎、這也是它的最大特色。可以做到沒有JavaScript,只通過ZUML(ZK User Interface Markup Language)這種標識語言即可做到界面創建和事件響應。

ZK的實現完全用java實現,開發過程中不會有任何的JavaScript代碼,但是通過 將zul文件(ZK的源文件,類似于jsp文件)通過ZK引擎編譯后查看頁面源代碼,結果還是可以看到,ZK實現的本質還是通過 JavaScript+CSS來處理異步請求的。

組件是ZK中最常見的元素。有點類似于JAVA Swing或者VB這樣的基于組件的編程。結合ZK Studio,可以達到可視化和動態地查看頁面效果。

特征:

  1. 它是一個表現層工具。可以與hibernate,iBatis,spring等凡是與JAVA有關的結合構建一個完整的WEB應用。
  2. 以服務端為中心的框架。它封裝了Ajax的后臺處理技術。服務端由兩個重要部分實現:ZK加載器,ZK異步更新引擎。前者負責解析URL請求,生 成HTML頁面;后者負責監聽和處理客戶端的Ajax請求,同時更新ZK組件的屬性,然后將Ajax響應發回給客戶端。
  3. 基于組件的GUI。頁面的可視部分都是由組件構成。類似于HTML標簽,但是比HTML標簽更靈活。

不足之處:

  1. ZK與JAVA結合緊密。由于ZK的組件都是由JAVA實現,所以對組件的控制也僅限于用JAVA語言。無法與控制層解耦。
  2. 學習資料和文檔比較少。最全面的ZK應用其實還是官方的DEMO。連《ZK框架——Ajax開發實踐》一書都是用的官方例子。所以對有些事件或者 屬性只有自己探索。
  3. ZK的測試比較薄弱。對頁面無法用工具進行測試。只能用手動測試。調試也不方便。出錯了的話錯誤信息不明確,無法很快定位問題。

2、安裝部署開發環境

2.1??? 工具及安裝

需要安裝的工具有JDK、Tomcat(或者其他服務器)、My Eclipse(或者Eclipse)、 ZK開發包、ZK Studio。JDK、Tomcat、My Eclipse安裝都不用介紹了,主要介紹ZK相關的部門。我的環境是JDK 1.6.0_16+Tomcat 6+My Eclipse 6.0。

準備工作:

  • l? 下載ZK包和demo。http://www.zkoss.org/download/zk.dsp。 在Windows下開發選擇zk-bin-5.0.2.zip,Linux 下選擇zk-bin-5.0.2.tar.gz。下載好后還需要下載一個demo包。這個demo包里面包含了一些xml模板,創建ZK頁面時可以根據模 板快速生成。demo下載選擇zk-demo-5.0.2.zip。
  • 然后下載ZK Studio。ZK Studio是My Eclipse一個插件。提供了對ZK文件的時時查看和組件的可視化編輯以及一些通用頁面原型。最好還是下載這個插件,方便開發。這個插件可在線安裝或者 直接下載。安裝步驟可參考頁面:
    ZK 
Studio界面1

    ZK Studio界面1

ZK 
Studio界面2

ZK Studio界面2

2.2 ?? ZK環境的配置

  • 解壓zk-bin-5.0.2.zip, 創建用戶自定義庫:在My Eclipse里面選擇windows->Preferences->JAVA->Build Path->User Libraries。添加3個用戶庫。名字隨便取,可以分別叫:ZK Ajax Frame、ZK Ajax Framework Extendsion以及ZK Ajax Framework Forge Library。分別對應zk-bin-5.0.2目錄結構中dist下的lib、lib/ext以及lib/zkforget中的jar包。配置好后的 用戶庫如下圖:

自定義的用戶庫
自定義的用戶庫

  • 添加xsd到用戶xml catalog entry里。這是為了確保可以更好的地使用My Eclipse XML Editor的功能。打開window->preferences->My Eclipse->Files and Editors->XML->XML Catalog。添加zk-bin-5.0.2/dist/xsd/zul.xsd。
  • 添加xml文件模板:將zkdemo\WebContent\WEB-INF下的lang-addon.xml、 portlet.xml,zk.xml和web.xml四個文件復制到My Eclipse安裝目錄下的myeclipse\eclipse\plugins \com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710\templates\xml。文件 夾名字可能因為My Eclipse版本不同而不同。只要以com.genuitec.eclipse.wazardsXXX這樣開頭的文件夾就行。然后將這四個文件分別改名 為:LangAddon.vtl、Portlet.vtl、ZK.vtl、ZKWeb.vtl。打開四個文件,將<?xml version=”1.0″ encoding=”UTF-8″?>這一行都改成<?xml version=”1.0″ encoding=”$encoding”?>。繼續在這個xml文件夾里面新建一個名為ZUL.vtl的文件。內容如下:
<?xml version=”1.0″ encoding=”$encoding”?><?page title=”title” ?><zk xmlns=”http://www.zkoss.org/2005/zul”

xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=”http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul “>

</zk>

  • 修改 My Eclipse安裝目錄下的myeclipse\eclipse\plugins \com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710 \ templates.xml。在<!– XML templates –>后面添加如下代碼:
<templatecontext=”com.genuitec.eclipse.wizards.xml”script=”templates/xml/ZKWeb.vtl”

name=”XML template for a web.xml file with ZK capability”/>

<template

context=”com.genuitec.eclipse.wizards.xml”

script=”templates/xml/LangAddon.vtl”

name=”XML template for a lang-addon.xml file for ZK”/>

<template

context=”com.genuitec.eclipse.wizards.xml”

script=”templates/xml/Portlet.vtl”

name=”XML template for a port-let.xml file for ZK”/>

<template

context=”com.genuitec.eclipse.wizards.xml”

script=”templates/xml/ZK.vtl”

name=”XML template for a zk.xml file”/>

<template

context=”com.genuitec.eclipse.wizards.xml”

script=”templates/xml/ZUL.vtl”

name=”XML template for a *.zul file”/>

  • 添加新的文件類型。打開window->preferences->general-content types,給Java Source File添加*.zs,給XML添加*.zul,給JSP添加*.dsp,給HTML添加*.zhtml。到此,ZK環境完全搭建完成。開發好的ZK應用 可以直接打成war包進行部署。十分地簡單。

3、 快速搭建頁面

有兩種方式創建ZK Project。第一種方式是直接在ZK Welcome Page里面新建一個ZK工程,這樣不用再添加ZK庫。第二種方式是先創建一個Web Project,然后在Build Path里面添加剛才添加的三個User Libraries。然后在WebRoot里面添加zul文件即可。添加zul文件要選擇新建XML Advanced Tempaltes文件。

打開zul文件可以選擇Open with Zul Editor。這樣便可以利用zk studio的可視化編程進行開發。

除了ZK自己提供的一些組件外,html的標簽在ZK中完全可以繼續用。但是為了避免ZK解 釋HTML標簽,通常要使用<![CDATA[ 和 ]]>將HTML標簽圍入其中。換言之,他們并不是子組件。而是被存儲在content屬性內。

組件可以從zk palet直接拖拉進代碼區,然后可以在中查看和設置組件支持的所有屬性和事件。其特點就是高效地組建頁面。如果不添 加任何JAVA代碼,那么創建一個頁面的效率不亞于直接用Axure創建界面原型。圖4是一個界面demo。無任何js和CSS代碼。當然,ZK框架并不 排斥使用CSS代碼。利用style屬性可以設置CSS樣式,還可以通過<style src=” CSS文件”/>加載CSS文件。

快速創建頁面范例
快速創建頁面范例

4、幫助文檔

最好的幫助文檔其實是zkoss官網的一些文檔。比如:開發手冊(http://zh.zkoss.org/doc/devguide/index.html)。 但是對于開發人員來說,官方的幫助文檔其實還不夠的。ZK總提供上百個組件和13個指令。每個組件都會有10到60個不同的屬性和事件響應。所以,對于這 些屬性及用法沒有一個好的類似java api文檔那樣的東西,實在是會不知所措。所以在zkoss官方還提供了zkoss組件的java api(http://www.zkoss.org/javadoc/latest/zk/), 方便開發人員。

5、不用寫Javascript的事件響應

5.1??? 組件的事件

每個組件都支持一些事件。如onClick、onOK,onClose等。以下是 window組件所支持的事件:

組件:“window”所支持的事件
組件:“window”所支持的事件

在ZK異步更新引擎的支持下,組件的屬性可以被動態改變。首先獲得組件對象,然后設 置值。獲得組件可以通過JAVA代碼或者EL表達式。同一ID空間中的可以用getFellow(組件id),還有一種方法是利用 org.zkoss.zk.ui.api包中的Path類可以很方便地獲取組件。Path.getComponent(組件路徑)。如獲取以下頁面的 label組件的value值可以這樣寫:

<?page id=”page1”?><window id=”winA”><label id=”labelA” value=”Label A” />

</window>

<zscript><![CDATA[

alert(Path.getComponent(“/winA/labelA.value”));

]]></zscript>

跨頁面的組件訪問可以用//表示當前桌面。如要在page2中訪問page1的id為 winA的window組件,可以這樣寫Path.getComponent(“//page1/winA”)。

當然,ZK也不排除使用javascript。如:

<script type=”text/javascript”>function testAlert() {alert(“調用javascript成功!”);

}

</script>

<button label=”SayHello”>

<attribute name=”onClick”>

<![CDATA[

Clients.evalJavaScript("testAlert();");

]]>

</attribute>

</button>

事件還可以在JAVA代碼中進行注冊。注冊后與直接寫在zul頁面中的效果是一樣的。比如我 們可以先定義一個事件類:

public class MyListener implements EventListener{@Overridepublicvoid onEvent(Event event) throws Exception {

// TODO add some methods

……

}

}

然后可以在另外一個類中注冊它。

public class ShowMessage extends Window {publicvoid onCreate() throws InterruptedException{ //does initialization

getFellow(“btnAddUser”).addEventListener(“onClick”, new MyListener());

}

}

這樣我們就可以通過use=”ibatis.ShowMessage”來調用 MyListener里面定義的一些方法了。

5.2 ?? ??? 組件與控制器

將組件和組件的控制代碼最好進行分離。利用組件的use或者applay屬 性將JAVA代碼和zul頁面進行關聯。如:<window width=”100%” height=”100%” apply=”zktest.borderlayout.BorderLayoutComposer”>或者<listbox width=”800px” rows=”5″ use=”zktest.jianer.ListTestBean”>。

我們知道,一個經典的MVC框架中,視圖,控制器和模型都是必須要有的。在一個WEB工程中 DAO層的引入比較容易,比如說hibernate或者說淘寶現在用的比較多的iBatis。而控制器從何而來。視圖如何與控制器互相傳遞數據?這里就用 到了zul頁面和java代碼的分離。分離出java代碼后,java代碼可以很容易與DAO層打交道,而獲取視圖層的數據也可以輕松通過 getFllow獲取到組件進行操作。這樣MVC三層便實現了。另外,在Web工程中還可以配置Spring進行類管理。

6、搭建一個完整的WEB應用

6.1??? 整合持久層

要想程序與數據庫打交道,有很多種方式。直接寫JDBC當然是最笨的一種,現在淘寶的 JAVA應用普遍采用iBatis作為持久層,沒有采用hibernate是因為考慮到hibernate的效率問題,所以我也試著將iBatis配置進 工程里面。

首先當然是有一個ZK的工程。參照前面第3章的內容。在My Eclipse里面新建好一個Web工程。然后在Build Path里面配置需要的包。這里我用到的是MySQL的JDBC包和iBatis的包。都加入到Build Path里面:。然后進行iBatis的配置。

要使iBatis跑起來,至少需要3個配置文件。。SqlMap.properties用來 配置數據庫連接的相關信息。如用戶名,密碼,連接字符串等。SqlMapConfig.xml用來指定數據源、SqlMap.properties的位置 和用到的sqlMap。而這個User.xml就是一個sqlMap。用來配置sql語句、返回類型,傳入參數和名字的。在sqlMap類里面就通過名字 對sql語句進行調用。一切配置好后就可以開始正式編碼了。

6.2??? 整合Spring

在MyEclipse里面添加Spring相當容易。直接在工程上點右鍵,選擇My Eclipse->Add Spring Capabilities。這樣就將Spring的包引入了進來,并且自動生成了Spring的配置文 件:applicationContext.xml。在applicationContext.xml里面便可以進行bean的配置。更多Spring的 用法可以參照相關的資料。在此便不多說。

通過配置iBatis和Spring后便可分層對一個Web應用進行開發了。JAVA代碼處 理業務邏輯,充當控制層。ZK負責界面展示。iBatis負責持久層。

7、附錄



幻海藍夢 2010-07-07 20:32 發表評論
]]>
zk學習資源http://m.tkk7.com/jasmine214--love/archive/2010/07/07/325492.html幻海藍夢幻海藍夢Wed, 07 Jul 2010 12:09:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/07/325492.htmlhttp://m.tkk7.com/jasmine214--love/comments/325492.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/07/325492.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325492.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325492.html 原文:http://sunflowers.javaeye.com/blog/467142

zk學習篇

?

1,首先是zk的官方網站首頁:zk版本發布信息,新聞,demo入口,學習文檔入口,zk愛好者開發examples入口

?

?? http://www.zkoss.org

?

2,文檔入口

?

??http://docs.zkoss.org/wiki/Documentation

?

?

2,zk學習開發手冊

?

??http://zh.zkoss.org/doc/devguide/??中文

?

??http://zkoss.org/doc/devguide-single/index.html ?英文

?

??http://www.zkoss.org/download/download.zul?file=pdf/ZK-devguide.pdf&link=/doc&source=devguide_pdfdownload ?pdf版

?

3,zk開發向導

?

??http://docs.zkoss.org/wiki/Developer's_Reference??

?

???http://www.zkoss.org/download/download.zul?file=pdf/ZK-devref.pdf&link=/doc&source=defref_pdfdownload?? ? ? ? ? ? ? ? ? ? ?pdf版

?

4,zk樣式手冊

?

?? http://docs.zkoss.org/wiki/Style_Guide

?

?

5,zk組件開發手冊

?

???http://www.zkoss.org/doc/compdevguide/

?

?

6,關于zk的small talks,非常實用,如果開發文檔看完了,可以到這里進階

?

?? ?http://docs.zkoss.org/wiki/Small_Talks

?

?

7,zk在線java doc

?

???http://zkoss.org/javadoc/

?

8,zk二進制開發包,source ,documentation,and others

?

???http://zkoss.org/download/zk.dsp

?

9,zk demo集合

?

???http://zkoss.org/demo/

?

10,zk論壇

?

??http://zkoss.org/forum

?

11,zk架構

?

?? ??http://zh.zkoss.org/doc/devguide/ch03.html#id404475

?

12,zk組件活動周期

?

?? ?http://zh.zkoss.org/doc/devguide/ch04.html

?

13,zk事件處理

?

???http://zh.zkoss.org/doc/devguide/ch05.html

?

zk進階篇

?

?

?

一,開發環境的搭建

?

?? 1) ?Eclipse中開發 zk,如果你是最新的開發web的eclipse,第一步可省略

?

???http://docs.zkoss.org/wiki/Develop_ZK_Applications_with_Eclipse

?

?? 2) ?NetBean

?

?http://docs.zkoss.org/wiki/How_to_build_your_first_ZK_application_with_NetBeans

?

?? 3) ZK開發的Eclipse插件 編輯器

?

1?@ zk Studio 安裝

?

http://docs.zkoss.org/wiki/ZK_Studio_Installation_Guide

?

??2 @ zk快速上手

?

http://docs.zkoss.org/wiki/QuickStart_Guide

?

?? ? ? ?3 @?ZK Studio 用戶手冊

?

http://docs.zkoss.org/wiki/Studio_userguide

?

二,基于zk的MVC架構

?? ?
?? 1)?ZK Composer 介紹,特別是最后一張圖,非常重要:如果清楚認識這個圖,對以后數據處理等非常有益

?

http://docs.zkoss.org/wiki/An_Introduction_of_ZK_Composer

?

?? 2) 最佳MVC模式,提示:其中的AfterComposer方法內時間綁定現在已過時,zk有更好的實現,見4

?


http://docs.zkoss.org/wiki/Best_Model-View-Controller_Patterns

?

?? 3) ?MVC三部曲,呵呵,作者的標題很有意思,冒險呢

?

http://docs.zkoss.org/wiki/The_Trilogy_of_ZK's_MVC_Adventure

?

?? 4) 輕松實現MVC,對于學習架構設計理念非常好的一個例子

?

http://docs.zkoss.org/wiki/ZK_MVC_Made_Easy

?

?? 5)一個基于spring的聯系人列表的事例,

?

注:其中時間綁定已過時,?<button label="Register" onClick="loginWnd.onRegister()" />

?

?? ? 官方推薦forward="onXXX=onYYY",等號前的為js事件,onYYY對應Controller class方法

?

?? ? ? ? ? ? ?forward默認是onClick事件,所以可簡寫為forward="onYYY"

http://docs.zkoss.org/wiki/Contact_List_with_ZK_and_Spring

?? 6) 使用Zk Studio六步輕松實現CRUD

?

http://docs.zkoss.org/wiki/Build_CRUD_Application_with_ZK_Studio_in_6_Steps

?

?? 7) SHZ ?z為ZK

?

http://docs.zkoss.org/wiki/Hibernate_%2B_Spring_%2B_ZK

?

?? 8) ?spring+jpa+zk ?mvc

?

http://docs.zkoss.org/wiki/ZK_With_Spring_JPA_And_A_Model-View-Controller_Pattern

?

?? 9) ?基于ZK注解的數據綁定的四個個例子

?

1,ZK數據綁定實現

?

?? ??http://docs.zkoss.org/wiki/Data-Binding_Implementation_for_ZK

?

2,使用zk注解,實現雙向數據綁定

?

http://docs.zkoss.org/wiki/Two-way_Data_Binding_with_ZUML_Annotations

?

?? ? ? ?3,使用zk注解實現零代碼數據綁定

?

http://docs.zkoss.org/wiki/Zero_Code_Data_Binding_with_ZUML_Annotations

?

4,使用zk注解綁定集合數據

?

http://docs.zkoss.org/wiki/Data_Binding_Collection_Data_with_ZUML_Annotations

?

?? 10) zk 各種監聽器的作用

?

http://docs.zkoss.org/wiki/Developer_reference_Appendix_B._WEB-INF/zk.xml_Overview_The_listener_Element

?

??更多資源請看http://docs.zkoss.org/wiki/Small_Talks



幻海藍夢 2010-07-07 20:09 發表評論
]]>
ajax框架之 zk -demo1http://m.tkk7.com/jasmine214--love/archive/2010/07/07/325491.html幻海藍夢幻海藍夢Wed, 07 Jul 2010 11:32:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/07/325491.htmlhttp://m.tkk7.com/jasmine214--love/comments/325491.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/07/325491.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325491.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325491.html前一段在網上看查找資料,無意間發現了一個 ajax框架的在線demo,被其華美的外表及簡潔的代碼風格所吸引,就開始了zk學習之路,經過兩天的研究,發現這個框架確實不錯,特別是它提供的例子,基本實現了所有web開發的需要,它還對google map進行了封裝,使其使用更加容易,不過,經這兩天的學習,發現它的學習資料不是太多,找好長時間也找不到多少有用的,只好研究它自帶的demo了,呵呵,一段時間的研究,終于寫出了一個小實例,現在提供出來,希望能對大家有幫助。該實例在 eclipse3.2+myeclipse+tomcat5.5+jdk5.0上運行成功。
歡迎轉載,有問題請聯系我:txyhl@126.com
首先,為了讓大家對其有一個感性的認識,就先去看看它的demo,相信你也會被它華美的外表所吸引
demo:http://www.potix.com/zkdemo/userguide/
OK,ZK 學習之路開始了。
當然,要先去下載ZK,推薦網站:http://www.zkoss.org
需要下載:zk-2.3.0.zip,現在的最高版本
如果有興趣,也可以下載
zk- demo-2.3.0.zip,里面有它的各種應用示例。
新建一個WEB工程,工程名為:zktest
然后將zk-2.3.0\dist\lib,zk-2.3.0\dist\lib \ext,zk-2.3.0\dist\lib\zkforge目錄下面的jar包引入到工程中(怎么引入我不用說了吧)
然后就開始寫程序了......
web.xml
<?xml?version="1.0"?encoding="UTF-8"?>
<web-app?version="2.4"?
????xmlns
="http://java.sun.com/xml/ns/j2ee"?
????xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"?
????xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee?
????http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
????
<listener>
????????
<description>Used?to?cleanup?when?a?session?is?destroyed</description>
????????
<display-name>ZK?Session?Cleaner</display-name>
????????
<listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class>
????
</listener>
????
<filter>
??????
<filter-name>zkFilter</filter-name>
??????
<filter-class>org.zkoss.zk.ui.http.DHtmlLayoutFilter</filter-class>
??????
<init-param>
????????
<param-name>extension</param-name>
????????
<param-value>html</param-value>?<!--?Use?XHTML?components?as?default.?-->
??????
</init-param>
????
</filter>
????
<filter-mapping>
??????
<filter-name>zkFilter</filter-name>
??????
<url-pattern>*.jsp</url-pattern>
??????
<dispatcher>REQUEST</dispatcher>
??????
<dispatcher>INCLUDE</dispatcher>
??????
<dispatcher>FORWARD</dispatcher>
??????
<dispatcher>ERROR</dispatcher>
????
</filter-mapping>
????
<servlet>
????????
<description>ZK?loader?for?ZUML?pages</description>
????????
<servlet-name>zkLoader</servlet-name>
????????
<servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class>
????????
<!--?Must.?Specifies?URI?of?the?update?engine?(DHtmlUpdateServlet).
????????It?must?be?the?same?as?<url-pattern>?for?the?update?engine.
????????
-->
????????
<init-param>
????????????
<param-name>update-uri</param-name>
????????????
<param-value>/zkau</param-value>
????????
</init-param>
????????
<load-on-startup>1</load-on-startup>
????
</servlet>
????
<servlet-mapping>
????????
<servlet-name>zkLoader</servlet-name>
????????
<url-pattern>*.zul</url-pattern>
????
</servlet-mapping>
????
<servlet-mapping>
????????
<servlet-name>zkLoader</servlet-name>
????????
<url-pattern>*.zhtml</url-pattern>
????
</servlet-mapping>
????
<servlet>
????????
<description>The?asynchronous?update?engine?for?ZK</description>
????????
<servlet-name>auEngine</servlet-name>
????????
<servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class>
????
</servlet>

????
<servlet-mapping>
????????
<servlet-name>auEngine</servlet-name>
????????
<url-pattern>/zkau/*</url-pattern>
????
</servlet-mapping>
????
<!--?////?-->

????
<!--?///////////?-->
????
<!--?Miscellaneous?-->
????
<session-config>
????????
<session-timeout>120</session-timeout>
????
</session-config>
????
????
<welcome-file-list>
????????
<welcome-file>index.zul</welcome-file>
????
</welcome-file-list>
</web-app>

index.zul(該文件同web-inf同一級目錄)
<window?title="yhltest?demo"?border="normal">
????
<zscript>{
???? ?? //引入Test類
????????import?test.*;
????????void?submit()?{
????????????Test?test?=?new?Test();
??? ?? ?? ?? //調用Test類的方法getTestStr,并將返回值賦給mylabel
????????????mylabel.value=test.getTestStr(text1.value);????
????????}
????}
</zscript>
????
<grid>
????
<rows>
????????
<row><label?id="mylabel"?value="test"/></row>
??? ?? //輸入1 或 2
????????<row>input(1or2)?<textbox?id="text1"/></row>
??? ?? //提交,調用函數submit
????????<row><button?label="submit"?onClick="submit()"/></row>
????
</rows>
????
</grid>
</window>

如果有一點web開發功底,想信上邊的代碼并不難理解。

Test.java(該文件位于test包下面)
package?test;

public?class?Test?{
????
public?String?getTestStr(String?flag)
????{
????????
if(flag.equals("1"))
????????{
????????????
return?this.getTestStr1();
????????}
else?if(flag.equals("2"))
????????{
????????????
return?this.getTestStr2();
????????}
else
????????{
????????????
return?"請輸入正確的參數";
????????}
????}
????
public?String?getTestStr1()
????{
????????
return?"調用類Test的getTestStr1方法";
????}
????
public?String?getTestStr2()
????{
????????
return?"調用類Test的getTestStr2方法";
????}
}

編寫工作到此完成。
將其發布到tomcat下面,然后在瀏覽器中輸入:http://localhost:8080/zktest/即可測試該功能。
現在jsp和zk頁的整合還沒有研究出來,希望有過這方面開發經驗的大蝦指點一二,可以用郵箱和我聯系。

幻海藍夢 2010-07-07 19:32 發表評論
]]>
JfreeChart --詳細的介紹和3種使用方法http://m.tkk7.com/jasmine214--love/archive/2010/07/06/325386.html幻海藍夢幻海藍夢Tue, 06 Jul 2010 09:43:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/06/325386.htmlhttp://m.tkk7.com/jasmine214--love/comments/325386.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/06/325386.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325386.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325386.html閱讀全文

幻海藍夢 2010-07-06 17:43 發表評論
]]>
JfreeChart--demo1http://m.tkk7.com/jasmine214--love/archive/2010/07/06/325384.html幻海藍夢幻海藍夢Tue, 06 Jul 2010 09:33:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/06/325384.htmlhttp://m.tkk7.com/jasmine214--love/comments/325384.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/06/325384.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325384.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325384.htmlhttp://hi.baidu.com/zh_m_zhou/blog/item/2772d017d9f39059f3de3218.html
作者:pocky

JFreeChart是利用已知數據生成餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤的一個開源項 目。本demo的就是關于如何結合數據生成一個與之對應的餅圖。

1. 環境:
windowsXP,
eclipse3.3,
tomcat6.0,
jfreechart-1.0.12

2,下載。到以下地址下載jfreechart-1.0.12的zip包
http://www.jfree.org/jfreechart/index.html

3. 在eclipse下新建一個web工程,解壓剛下載的zip包,將其中的jcommon-1.0.15.jar和jfreechart- 1.0.12.jar復制到web工程的lib目錄下

4. 新建一個servlet,方法如下:
在web.xml中添加:
??? <servlet>
??? ??? <servlet-name>IndexServlet</servlet-name>
??? ??? <servlet-class>com.demo.IndexServlet</servlet-class>
??? </servlet>
??? <servlet-mapping>
??? ??? <servlet-name>IndexServlet</servlet-name>
??? ??? <url-pattern>/index.do</url-pattern>
??? </servlet-mapping>

新建類,內容如下:
package com.demo;

import java.awt.Font;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.general.DefaultPieDataset;

public class IndexServlet extends HttpServlet{

??? /**
???? * 獲取一個演示用的簡單數據集對象
???? * @return
???? */
??? private static DefaultPieDataset getDataSet() {
??????? DefaultPieDataset dataset = new DefaultPieDataset();
??????? dataset.setValue("蘋果",100);
??????? dataset.setValue("梨子",200);
??????? dataset.setValue("葡萄",300);
??????? dataset.setValue("香蕉",400);
??????? dataset.setValue("荔枝",500);
??????? return dataset;
??? }

??? @Override
??? protected void doGet(HttpServletRequest req, HttpServletResponse resp)
??? ??? ??? throws ServletException, IOException {
??? ??? this.doPost(req,resp);
??? }

??? @Override
??? protected void doPost(HttpServletRequest req, HttpServletResponse resp)
??? ??? ??? throws ServletException, IOException {
??? ??? resp.setCharacterEncoding("gb2312");
??? ??? resp.setContentType("image/jpeg");
??????? DefaultPieDataset data=getDataSet();
???????
??????? JFreeChart chart=ChartFactory.createPieChart3D("水果產量圖", data, true, false, false);
???????
??????? Font font = new Font("SimSun", 10, 20);
??????? TextTitle txtTitle = null;
??????? txtTitle = chart.getTitle();
??????? txtTitle.setFont(font);
??????? PiePlot pieplot = (PiePlot)chart.getPlot();
??????? pieplot.setLabelFont(font);
??????? chart.getLegend().setItemFont(font);
???????
??????? try {
??????????? ChartUtilities.writeChartAsJPEG(resp.getOutputStream(), chart, 600, 400);
??????????? System.out.print("OK");
??????????? //this.getServletContext().getRequestDispatcher("/index2.jsp").forward(req, resp);
??????? } catch (IOException e) {
??????????? // TODO Auto-generated catch block
??????????? e.printStackTrace();
??????? }
??? }
}

5.將工程部署到tomcat下,啟動tomcat,訪問http://server/appName/index.do。至此,一個簡單的demo完 成。

參考文檔:
JFREECHART DEMO1
http://blog.sina.com.cn/s/blog_4ce6c3f80100bydr.html
JFREECHART DEMO2
http://hi.baidu.com/javafanc/blog/item/7da708b544fc16c936d3cade.html
JFREECHART 亂碼
http://topic.csdn.net/u/20071207/11/41ef3b10-043b-496e-8dd6-a501b4c2932c.html

幻海藍夢 2010-07-06 17:33 發表評論
]]>
輕量級java snmp設備網管軟件開發技術http://m.tkk7.com/jasmine214--love/archive/2010/07/04/325219.html幻海藍夢幻海藍夢Sun, 04 Jul 2010 13:35:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/04/325219.htmlhttp://m.tkk7.com/jasmine214--love/comments/325219.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/04/325219.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325219.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325219.htmlJava技術,在網絡管理系統中的應用已經比較普遍。網管軟件的分類有很多種,有側重于業務應用的,有側重于管理設備的,有側重于網絡的,有側重于桌面管理的,每種網管軟件雖然外在的具體表現形式都不同,但其實內部的技術都大同小異。這其中的設備網管軟件就是一個最典型的技術代表,一個全面的設備網管軟件基本上要包含網絡拓撲圖、設備配置、故障管理、性能管理、安全管理、業務管理,也就是FCAPS 這幾大塊功能。

一、 技術架構的變遷
???? 在網管軟件最早的年代,基本上都是從電信管理網的那一套發展起來的,按TMN規范定義的模型來處理,像什么Q接口、F接口、X接口、CORBA、NMS/EMS、FCAPS功能劃分,都是這種模型的代表。這種模型對于大型的電信網絡來說是必須的,可是對于企業級別的設備網管軟件來說,就顯得過于笨重,花費的成本是無法接受的。
???? 于是對于設備網管軟件的架構,逐步向實用化、工程化發展,也就是輕量級技術的發展。輕量級的技術,沿用了FCAPS的功能模型,也是用戶關心的問題。而在內部技術上,突破了TMN的種種限制,好的就借用,不好的就拋棄。在這種輕量級技術的影響下,根據用戶的需求,靈活選擇JAVA技術、數據庫技術、SNMP協議,就是這一技術的代表。

二、 輕量級技術架構
???? 選擇C/S,還是B/S?這是首選問題。C/S的客戶端功能很強大,界面表現力很好,而且故障的反應能實時處理。B/S在集成網絡拓撲圖的界面展示上會打折扣,好在報表分析這塊上。最好的建議是用Applet+服務端的模式,兼顧兩者的優缺點。因為網管軟件的網絡服務特性、實時處理特性、大量任務監視、事件分發特性,不適合采用J2EE的模型,用普通JAVA做服務端是最恰當的。

三、 模塊級技術選擇
1.通信協議選擇:C/S架構的,可以選擇RMI;Applet架構的可選XML-RPC或RMI技術,B/S架構不存在這個問題。

2.數據庫技術選擇:O-R Mapping是最佳選擇,Hibernate是這個領域最成熟的組件,比只用JDBC簡便很多。

3.網管客戶端:這個是最容易被忽略的問題,真正在網管開發中,界面的復雜度和工作量比服務端大很多,而且對于用戶體驗來說,界面更加重要。界面當中最重要非網絡拓撲圖不可,基本上大多數的網管軟件界面都是圍繞著網絡拓撲圖來開發的。目前可以用商業的ilong視圖組件,因為功能涉及面比較廣,API比較復雜,報表系統做的很多,每個客戶端都要收運行費用。喜歡輕量級開發的,可以用itopoview網絡拓撲圖組件,專門針對網管軟件,很多網管系統常用的界面處理都內置了,上手也快,組件庫小巧靈活,只收開發費。兩個組件都可以用于applet環境。

4.WEB客戶端:如果選用B/S,可以考慮flex或SGV或ajax技術的web拓撲圖,flex更成熟一些,用的人比較多。但是所有WEB 拓撲圖都有一個缺點,都是100% java技術的,這樣的話,團隊中需要懂其他技術的開發人員。這是我再次推薦用Applet的原因。

5.網管協議:目前運用的最多是SNMP協議,相關的java協議棧也比較多,像SNMP4j就是比較好的JAVA SNMP協議棧。如果想加快SNMP的開發,可以考慮ObjectSNMP組件,采用O/M Mapping技術(和O/R Mapping類似),這樣的話,開發SNMP的主要工作就是定義普通JAVA對象,當然ObjectSNMP底層可能采用如SNMP4J這樣的協議棧。

6.客戶端報表分析:毫無疑問,jfreechar肯定能滿足需求,而且是免費的(只收文檔費用)。還有一個選擇,用JRobin,可以快速做出漂亮的流量圖,但是JRobin是基于文件的數據存儲,與系統的集成度不好,將來做數據分析也不方面,僅限用于救急。

7.故障、事件分發機制:網管的事件分發不是很復雜,用一個JMS的產品如OpenJMS就可以;如果嫌JMS的存儲多余,可以考慮JGroup消息廣播機制。

8.任務機制:是網管就不可避免的會設計到監控任務、定時任務。如果你對線程和時間處理的很好的,可以用java只帶的就可以;否著的話,可以選擇Quartz,再復雜的任務都能處理。

其他體會:
不要迷信j2ee,對于設備級網管來說,只會幫倒忙,而且處處別扭;即使是B/S的架構,J2EE在處理任務、故障事件、SNMP服務方面也無能為力。設計一個靈活但簡單的界面架構,用戶的很多需求都針對界面的。(bitsCN.com原創/文jianlong/轉載請保留)


文章轉載自網管網:http://www.bitscn.com/pdb/java/200905/161526.html



幻海藍夢 2010-07-04 21:35 發表評論
]]>
無線路由/AP/網橋---區別詳解篇http://m.tkk7.com/jasmine214--love/archive/2010/07/04/325202.html幻海藍夢幻海藍夢Sun, 04 Jul 2010 08:41:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/07/04/325202.htmlhttp://m.tkk7.com/jasmine214--love/comments/325202.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/07/04/325202.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/325202.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/325202.htmlhttp://net.csai.cn/Wireless_Config/200801170913031209.htm
通過無線上網沖浪,現在已經不是新鮮的事情,隨著近一兩年無線網絡的飛速發展,從企業到家庭都開始在不同的領域體驗著“自由上網”的樂趣,筆者接觸無線網絡也有一段時間了,經常在一些無線論壇逛游,無論是在現實生活還是在論壇中,總會有朋友不斷的問這樣的問題:什么是無線AP,什么是無線路由器,什么又是無線網橋,我想家里上網該用哪一種設備?今天筆者就詳細的談談這幾者之間的區別,以解初識無線的朋友的心中之惑。

  一、由名稱看區別

  首先來看無線AP,AP是英文ACCESS POINT的首字母所寫,翻譯過來就是“無線訪問點”或“無線接入點”,從名字上看就是通過它,能把你的擁有無線網卡的機器接入到網絡中來。它主要是提供無線工作站對有線局域網和從有線局域網對無線工作站的訪問,在訪問接入點覆蓋范圍內的無線工作站可以通過它進行相互通信。通俗的講,無線AP是無線網和有線網之間溝通的橋梁。由于無線AP的覆蓋范圍是一個向外擴散的圓形區域,因此,應當盡量把無線AP放置在無線網絡的中心位置,而且各無線客戶端與無線AP的直線距離最好不要超過太長,以避免因通訊信號衰減過多而導致通信失敗。

  無線AP相當于一個無線集線器(HUB),接在有線交換機或路由器上,為跟它連接的無線網卡從路由器那里分得IP。

  無線路由器,從名稱上我們就可以知道這種設備具有路由的功能,大家可能對有線的寬帶路由器有所了解,那么我們可以說無線路由器是單純型AP與寬帶路由器的一種結合;它借助于路由器功能,可實現家庭無線網絡中的Internet連接共享,實現ADSL和小區寬帶的無線共享接入 ,另外,無線路由器可以把通過它進行無線和有線連接的終端都分配到一個子網,這樣子網內的各種設備交換數據就非常方便。

  無線路由器就是AP、路由功能和集線器的集合體,支持有線無線組成同一子網,直接接上上層交換機或ADSL貓等,因為大多數無線路由器都支持PPOE撥號功能。

  說到無線網橋,首先大家要了解網橋的概念,網橋(Bridge)又叫橋接器,它是一種在鏈路層實現局域網互連的存儲轉發設備。網橋有在不同網段之間再生信號的功能,它可以有效地聯接兩個LAN(局域網),使本地通信限制在本網段內,并轉發相應的信號至另一網段。網橋通常用于聯接數量不多的、同一類型的網段。

  無線網橋顧名思義就是無線網絡的橋接,它可在兩個或多個網絡之間搭起通信的橋梁(無線網橋亦是無線AP的一種分支)。無線網橋除了具備上述有線網橋的基本特點之外,比其它有線網絡設備更方便部署。

  很多用過無線AP和無線路由器的朋友可能會說,現在很多無線AP和無線路由器也有網橋的功能,和無線網橋有什么區別?確實,從原理上來講,上述兩種設備的網橋功能和無線網橋的工作原理是一樣的,如果說到不同的話,那就是一般單獨說到無線網橋的時候,是專指那些適合室外遠距離傳輸的“無線AP”,一般擁有專門的天線、功率放大器和一些適合室外工作的特點。二、初識三種設備外觀

  通過上面的介紹,相必大家對這三種設備有了初步模糊的認識,OK,那下面我們再來真實的看一下三種設備的外觀,以求有更進一步的直觀了解。

  無線AP

  單純型無線AP的外觀比較簡單,通常有一個接有線的RJ45網口、電源接口、配置口(usb口或通過web界面配置)和幾個狀態指示燈。

  

無線AP外觀圖

  無線路由

  與無線AP相比,從外觀上看,市面上的無線路由器最大的不同之處是多了四個有線網口,一般有一個WAN口用于上聯上級網絡設備,四個LAN口可以用于連接處于內網中的帶有線網卡的計算機,相應的指示燈也同樣多了一些。

  

無線路由器外觀圖

  無線網橋

  由于無線網橋室外工作、遠距離傳輸的需要,所以組成部件要必無線AP和無線路由器多不少,在設備組成上,無線網橋主要由無線網橋主設備(無線收發器)和天線組成。無線收發器由發射機和接收機組成,發射機將從局域網獲得的數據編碼,變成特定的頻率信號,再通過天線發送出去;接收機則相反,將從天線獲取的頻率信號解碼,還原成數據,再送到局域網中。

  由于室外工作,所以一般在天線和無線網橋主設備之間時候,會一些小部件來起到防水、防雷擊的作用。

  

無線網橋外觀圖

  三、組網拓撲

  對三種設備有了概念上的認識和直觀上的產品外觀認識了,下面我們再來看一下在具體組網的時候他們的各自的組網拓撲是什么樣子的,嚴格的說,在這兒我們要講的是一種理想的拓撲結構情況,因為實際中有很多無線AP或無線路由器也有橋的功能,所以在設成橋模式的情況下,也可以按網橋的結構來組網,不過在此為了行文方便,暫且不考慮此。

  無線AP作為一個無線局域網的中心設備,以星型連接其覆蓋范圍內的具有無線網卡的計算機,然后通過無線AP上的雙絞線鏈接到有線網絡中的交換機或HUB上,所以結構非常簡單。

  

無線AP組網結構圖

  無線路由器結構與無線AP組網結構類似,不同的是他還可以通過雙絞線以有線的方式鏈接計算機,輕松實現有線和無線的互相通信。

  

無線路由器組網結構

  無線網橋一般用于距離比較遠的兩棟或更多建筑物之間的互聯互通。其典型組網結構如下圖:

  

無線網橋組網結構(點對點)四、適用環境及投資成本分析

  無線AP的投資成本最低,現在市面上最簡單的無線AP一般都不到200元,適合那些家庭中有筆記本的朋友體驗無線上網的樂趣,以及都一些小型的soho辦公環境。另外一些室外無線AP還可以讓你體驗室外上網的新鮮體驗。

  與無線AP相比,無線路由器價格稍微高一點,但是其提供了與價格相比更全面更強大的功能,適合組建既有筆記本又有臺式機的有線無線混合網絡。另外通常在無線路由器中都有無線防火墻、虛擬服務器等功能,對于家庭及soho族們來說,可以說是最佳選擇。

  無線寬帶路由器已逐步取帶單純型無線AP成為市場上的主流,所以建議目前在組網時不管你所使用的MODEM是否帶路由都可首選無線寬帶路由器。

  專門的無線網橋價格相對前兩者來說,價格要貴不少,具體價格和產品品牌及功能相差很大,幾千到幾萬不等。但是對于哪些需要遠距離傳輸的環境來說,要么自己鋪設光纜,要么租用光纜,其成本卻相對較小,而且可再利用性很強。還有可以克服有線無法克服的障礙問題。

  結論

  平常生活中我們都追求時尚,那么無線上網是提高我們網絡體驗的最佳選擇,對于家庭來說,只需要花費可能是我們平常和朋友一頓飯的的投資,就可以讓你立即體現到無線給你帶來的便利和方便,而且還等什么呢?對于企業來說,同一城市不同辦公地點互聯困難?不安全?那么考慮一下無線網橋是否能幫您解決棘手的難題吧。



幻海藍夢 2010-07-04 16:41 發表評論
]]>
B/S--網管--拓撲圖系統的實現--高手的一種方法http://m.tkk7.com/jasmine214--love/archive/2010/06/28/324663.html幻海藍夢幻海藍夢Mon, 28 Jun 2010 05:44:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/06/28/324663.htmlhttp://m.tkk7.com/jasmine214--love/comments/324663.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/06/28/324663.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/324663.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/324663.html06年初還不像現在,WEB方面沒有那么多成熟的框架,ajax也遠沒有今天這么普及,
為了改善用戶體驗,我準備在展示層所有的關鍵頁面都使用AJAX技術,
我也是05年才開始學習WEB相關的東西,對js,css等等都不太熟悉,
于是在很短的時間內,研究了如下技術:
DWR、CSS、VML、DOJO、JSON,XSLT,
最終確定了用DWR作為數據傳輸手段,json作為數據傳輸編碼格式,用DOJO來完成前臺控件開發這樣一個模式。
(我有一篇簡單的關于DOJO的文章 ,提到DOJO在js面向對象封裝方面有獨到之處)

我用DOJO開發了三套控件,其中最有特色的是一個拓撲圖編輯和展示系統,
我對比過,在06年,很多網管都有拓撲圖系統,但基本上都是基于C/S的,
我們實現的純B/S的拓撲系統,在當時還是有一定的先進性的,這一設計,后來變成了我的研究生論文。

這個拓撲系統在瀏覽器中實現了MVC模式,
model是XML的拓撲描述,通過dwr加載和保存,描述拓撲圖上的節點、連接線等信息,
view是VML,用于把模型展示層圖形,
controller是javascript,當然使用DOJO做了封裝,響應用戶的操作,
然后修改模型,從而改變拓撲圖的展示,比如拖拽、縮放、畫線等等。
這一部分從可研到設計到完成,只用了四周的時間,光js代碼就超過了200K,
也算是我比較神奇的發揮了,如果沒有DOJO框架,真不知道會亂成什么樣。

幻海藍夢 2010-06-28 13:44 發表評論
]]>
網管軟件---網絡拓撲模塊http://m.tkk7.com/jasmine214--love/archive/2010/06/28/324662.html幻海藍夢幻海藍夢Mon, 28 Jun 2010 05:30:00 GMThttp://m.tkk7.com/jasmine214--love/archive/2010/06/28/324662.htmlhttp://m.tkk7.com/jasmine214--love/comments/324662.htmlhttp://m.tkk7.com/jasmine214--love/archive/2010/06/28/324662.html#Feedback0http://m.tkk7.com/jasmine214--love/comments/commentRss/324662.htmlhttp://m.tkk7.com/jasmine214--love/services/trackbacks/324662.html網絡拓撲是網管軟件重要模塊之一,一個好的網管軟件不僅僅要能夠快速的對全網發現,也需要在展現的時候,準確地展現出網絡中的問題,方便管理人員快 速發現問題,并快速解決問題。因此,用戶對網絡拓撲的要求也越來越高。

  現如今,市面上各個廠家的網管軟件層出不窮,較早期的網管軟件 均是基于C/S架構、基于C/S架構的網管軟件已經是很古老的產品了,其有兩大弊病:一個是需要安裝繁瑣的客戶端,另外一個就是不能滿足用戶在任何一點均 可訪問的需求;因此,隨著網管軟件的競爭日趨激烈,以及軟件技術的日新月異,有遠見卓識的廠家已經開始推出支持B/S架構的網管軟件。通過分析摩卡軟件有 限公司的Mocha BSM的網絡拓撲模塊,來了解一下當今已經被廣泛應用的B/S架構的網絡拓撲相關軟件的具體優勢:

  1.無需安裝客 戶端,從任何一點都可以登錄訪問

  凡是使用過計算機的用戶都清楚地知道,C/S架構即客戶端/服務器架構,意味著凡是C/S架構的軟件, 都是需要安裝客戶端的;而B/S架構的軟件即瀏覽器/服務器,只需要在服務器端安裝網管軟件,就可以通過瀏覽器輸入域名或者IP地址,即可訪問。這樣,只 要任何一臺桌面終端安裝了瀏覽器,即可從任何一點快速訪問網管軟件,即使是管理人員在家休息,在緊急的時候,也可以通過網絡遠程訪問網管軟件,來達到快速 解決問題的目的。

  2.根據權限對網絡拓撲進行統一管理

  無論是政府機構和企業,隨著分支機構的增加,其對網絡的管理也 隨之變得復雜。比如一個省級單位,下轄了多個地市分支機構,每個地市下面又會轄多個地縣單位,因此這種典型的三級架構,從網絡管理的角度來說,就一定要有 嚴格的權限劃分,其權限應該是省級網絡管理者可以看到整個省級單位,各地市單位以及地縣單位的網絡狀態;而地市級網絡管理者,則需要看到該地市網絡和其所 轄的地縣網絡狀態,他不能看到平級地市單位的網絡,也不能看到省級的地市單位的網絡;針對這種情況,C/S架構的網管軟件是不可能做到的,而B/S架構的 網絡拓撲展現,即可以通過權限劃分來進行分級式管理。如今,新疆郵政信息局正式通過摩卡的網絡拓撲來對全疆的網絡系統管理者的權限進行劃分和管理。

  3.配置文件和發現信息實現集中統一管理和共享

  C/S架構的網絡管理軟件,都是需要在客戶端進行網絡拓撲發現的配置 工作,配置內容包括網絡發現時的共同體名、發現方式、發現范圍等,而這些配置的信息以及拓撲發現后的展現信息,都是保存在客戶端的機器上的,無法實現共 享,因此通過B/S架構的網管軟件,可以很方便的進行配置信息統一管理和共享。

  4.支持手工繪制拓撲圖,隨需而變

  摩 卡網絡拓撲展現,不僅僅支持自動二層和三層網絡拓撲的發現,也支持手工繪制拓撲圖,針對網絡監控的不同需求,進行展現。可以定制骨干線路監控,也可以訂制 備用線路監控視圖,摩卡網絡拓撲內置常見的各種網絡設備圖標、機房元素、線路元素、中國地圖、各省地圖以及各種背景,因此通過摩卡網絡拓撲模塊,可以快速 實現手工網絡網絡拓撲定制,隨著監控需求而靈活變化。并且,一旦用戶的網絡環境發生變化需要調整,管理員也可以方便的進行網絡的調整。

   5.支持管理拓撲圖,方便安裝管理區域進行監控管理

  針對網絡拓撲的監控需求及功能來說,一個大的企業網絡是由很多部門在使用的,而某些 設備發生故障影響到的僅僅是某個部門或者區域,因此如何將網絡拓撲和企業的各個職能部門相關聯,通過這種按職能和權限進行劃分的管理拓撲圖,可以快速的發 現某些故障的影響和根本原因。

  6.B/S架構展現的不僅僅是網絡拓撲,可展現機房監控視圖和業務視圖

  通過摩卡軟件的 網管軟件,不僅僅可以展現網絡拓撲,還可以根據用戶的機房實際設計圖,來展現企業的真實機房監控圖,以及業務邏輯監控視圖。

  摩卡軟件為 用戶提供靈活的機房監控視圖,根據企業的具體情況,定制總部的機房至分支機構的機房監控視圖。如果北京的機房出現故障,則可以通過雙擊北京機房圖標,查看 在北京具體是哪個機房出現故障。通過雙擊中關村機房,可以進一步查看中關村機房的具體問題。管理人員甚至可以通過中關村機房監控視圖,進一步查看,哪個具 體機柜上,到底是哪個設備有問題。

  7.適合于劃分了網管網段的企業和機構進行統籌管理

  對于較大型的網 管項目來說,企業或者機構在建立企業內部網絡的時候,都預先規劃了專用的網管網段,只有在網管網段內的網管服務器才能夠對全網進行網絡發現和網絡配置。因 此C/S架構的網管軟件一旦放置在網管網段內,管理人員要想從工作區對網絡進行監控,就比較麻煩。而支持B/S架構的網絡拓撲管理軟件,只需要將網管服務 器放置到網管網段,直接通過工作區的瀏覽器訪問即可。這也是為何,當今B/S架構的瀏覽器會大行其道的原因之一。

  8.拓撲圖和網絡實時 狀態直接關聯,快速發現問題

  通過摩卡的網絡拓撲展現,和設備各個指標狀態相關聯,管理者無需在不同的頁簽和模塊之間來回切換,幫助管理 人員快速的了解整個網絡的健康狀態。如下圖所示:用戶可以直接從網絡拓撲察看到設備的物理鏈接信息、設備接口一覽、IT資產信息、背板信息、以及設備的詳 細技術指標等。并可以通過拓撲圖實現對設備的TELNET操作、MIB信息查看操作、PING、TraceRoute操作等,大大的提高了管理人員的效 率。



幻海藍夢 2010-06-28 13:30 發表評論
]]>
主站蜘蛛池模板: 亚洲黄色三级视频| 特级aa**毛片免费观看| 亚洲av一本岛在线播放| 亚洲国产精品无码久久九九大片| 拍拍拍无挡视频免费观看1000| 最近中文字幕无免费视频| 亚洲色精品vr一区二区三区| 亚洲欧美第一成人网站7777| 99在线观看视频免费| 国产偷国产偷亚洲清高动态图| 男人天堂2018亚洲男人天堂| 18禁超污无遮挡无码免费网站| 无限动漫网在线观看免费| 亚洲福利在线观看| 一级特黄特色的免费大片视频| 成人免费看黄20分钟| 亚洲av成人片在线观看| 最近中文字幕mv免费高清电影 | 亚洲天堂一区二区| jizz日本免费| 国产色婷婷精品免费视频| 亚洲男人的天堂久久精品| 蜜臀AV免费一区二区三区| 亚洲国产一区国产亚洲| 中文字幕无码免费久久99| 曰批免费视频播放免费| 国产公开免费人成视频| 亚洲欧美一区二区三区日产| 亚洲av成人一区二区三区在线观看 | 久久久久亚洲av无码专区蜜芽| 久久精品国产免费观看三人同眠| 亚洲成AV人片一区二区密柚| 国产免费AV片在线观看播放| 亚洲第一页综合图片自拍| 国产精品亚洲色婷婷99久久精品| 最新69国产成人精品免费视频动漫| 亚洲六月丁香六月婷婷蜜芽| 91精品免费在线观看| 久久国产亚洲精品| 国产亚洲精品无码专区| 青青操免费在线观看|