- 狀態(tài)欄 (statusbar)顯功能
- 日期物件
- 隨數(shù)的產生
- 開啟新窗囗
范 例 5:
在 這 一 部 分 首 先 要 為 你 展 示 的 JavaScript 特 性 是 將 你 的 滑 鼠 移 到 這 個 不 同 顏 色
的連 結上 面, 此 時 看 看 瀏 覽 器 下 的 狀 態(tài) 列 有 何 結 果。 然 後 這 樣 的 功 能 我 們 可 以
與 JavaScript 的 功 能 相 結 合。 好, 現(xiàn) 在 再 將 你 的 滑 鼠 移 到 本 處 不 同 顏 色 的連 結上
面, 你 應 該 會 發(fā) 現(xiàn) 有 一 個 視 窗 出 現(xiàn), 是 吧?! 如 何! 怎 麼 做 到 的 呢? 以 下 就 是
這 一 個 連 結 的 作 法:
<a href="tpage.htm" onMouseOver="window.status='Just another stupid link...'; return true">
在 這 兒 你 只 要 在 傳 統(tǒng) <a> 的 標 簽 中 加 入 onMouseOver 的 method, 就 可 達 成 你 要 的
效 果 了。 這 里 的 window.status 是 用 來 讓 你 可 以 在 WWW 瀏 覽 器 的 狀 態(tài) 列 上 顯 示
一 些 訊 息 用 的。 在 語 法 中, 你 可 以 看 到 訊 息 部 分 是 用 ' 括 起 來 的 部 分, 而 非 以 " 括
起 來, 在 訊 息 部 分 結 束 之 後, 必 須 加 上 ; return true。
好 了, 利 用 以 上 的 特 性 可 以 很 簡 單 的 完 成 第 二 個 連 結 的 例 子! 相 當 簡 單, 以
onMouseOver 的 method 然 後 配 合 事 件 發(fā) 生 時 去 呼 叫 函 數(shù) hello() 就 行 了, 不 再
多 加 解 釋 了, 作 法 如 下:
<html>
<head>
<script language="LiveScript">
<!-- Hiding
function hello() {
alert("哈 羅!");
}
</script>
</head>
<body>
<a href="" onMouseOver="hello()">link</a>
</body>
</html>
范 例 6:
接 下 來 我 們 要 告 訴 你 一 個 使 用 日 期 和 時 間 的 例 子。 在 第 一 部 分 中, 你 已 看 過 了
lastModified 的 用 法 和 作 法。 現(xiàn) 在 要 告 訴 你 的 并 非 是 印 出 網(wǎng) 路 上 伺 服 器 或 文 件
修 改 日 期, 而 是 你 個 人 客 戶 端 機 器 的 日 期 和 時 間。 以 下 就 是 執(zhí) 行 結 果:
現(xiàn) 在 時 間 是: 14:4
今 天 日 期 為: 6/3/2008
做 法 如 下:
<script language="LiveScript">
<!-- Hiding
today = new Date()
document.write("現(xiàn) 在 時 間 是: ",today.getHours(),":",today.getMinutes())
document.write("<br>今 天 日 期 為: ", today.getMonth()+1,"/",today.getDate(),"/",today.getYear());
// end hiding contents -->
</script>
在 本 例 中, 我 們 必 需 首 先 建 立 一 個 日 期 變 數(shù), 這 可 以 由 today= new Date()來 完 成。
如 果 沒 有 特 別 指 定 時 間 與 日 期 的 話, 瀏 覽 器 將 會 采 用 本 地 客 戶 端 機 器 的 時 間, 若 將
它 放 入 變 數(shù) today 中。 這 兒 要 注 意 的 是: 我 們 并 沒 有 宣 告 today 這 個 變 數(shù) 的 型 態(tài),
這 和 Java 或 其 他 的 程 式 語 言 在 用 到 變 數(shù) 之 前 必 需 先 加 以 宣 告 的 方 式 有 相 當 大 的 不
同。 在 完 成 today 的 日 期 變 數(shù) 後, 我 們 等 於 建 立 了 一 個 具 有 本 地 時 間 與 日 期 的 物 件
(object)。 接 著 就 可 以 使 用 get... 的 method 以 取 得 today 這 個 物 件 的 時 間 和 日 期。
請 注 意 getMonth 這 個 method 所 取 得 的 月 份 范 圍 是 由 0~11, 所 以 必 須 加 1 以 代
表 真 正 的 1 月 至 12 月。 看 完 以 上 的 例 子 後, 想 想 你 可 以 使 你 的 文 件 變 得 有 點
智 慧, 例 如: 某 個 文 件 有 時 效 限 制 的 話, 你 可 以 利 用 我 們 在 上 一 部 份 的范 例 4
中 所 提 到 的 功 能 和 這 一 個 范 例 中 所 學 習 到 的 功 能, 設 計 一 個 讓 你 的 文 件 在 第10天
以 後 讀 到 的 話 就 會 告 訴 讀 者:"喂! 這 篇 已 過 時 了!"的 程 式, 試 試 看, 并 不 難!
除 以 上 功 能 外, 在 建 立 日 期 物 件 時 你 也 可 以 事 先 設 定 日 期 如 下:
docStarted= new Date(96,0,13)
首 先 是 年(西 元), 接 著 是 月(但 記 得 減 1), 再 接 著 是 日。 同 樣 的 方 法 也 可 以
加 上 時 間 的 設 定, 如 下:
docStarted = new Date(96,0,13,10,50,0)
前 三 個 是 日 期 的 年、 月、 日, 接 著 是 時、 分、 秒。 最 後, 我 們 必 須 提 醒 你,
JavaScript 并 沒 有 實 際 的 日 期 型 態(tài), 但 是 它 卻 能 毫 不 費 力 地 顯 示 出 日 期 和 時 間,
原 因 是 它 是 從 1 / 1 / 1970 0:0h 開 始 以 ms(milli seconds) 來 計 算 目 前 的 時 間 的,
這 聽 起 來 似 有 些 復 雜, 但 你 倒 不 用 擔 心, 它 有 標 準 的 共 用 函 數(shù) 可 以 計 算,
你 只 要 知 道 如 何 用 就 可 以 了!
范 例 7:
接 下 來 我 們 要 為 你 介 紹 一 個 可 以 產 生 亂 數(shù) 的 函 數(shù), 也 是 以 JavaScript 所 寫 的。
這 個 函 數(shù) 只 是 利 用 了 一 點 小 技 巧 而 已, 而 這 種 技 巧 在 大 部 分 的 編 譯 器(compiler)中,
大 都 是 如 此(或 類 似) 計 算 出 亂 數(shù) 來 的。 我 相 信 JavaScript 最 後 應 也 會 以 相 似 的 方
法 來 產 生 這 樣 的 method , 如 果 它 會 提 供 這 樣 功 能 的 話。 以 下 是 此 函 數(shù) 的 結 果:
這 是 一 個 計 算 產 生 的 亂 數(shù): 0.9836312285070992
以 下 是 這 個 作 法 的 寫 法:
<html>
<head>
<script language="LiveScript">
function RandomNumber() {
today = new Date();
num = Math.abs(Math.sin(today.getTime()));
return num;
}
</script>
</head>
<body>
<script language="LiveScript">
<!--
document.write("This is a random number:", RandomNumber());
// -->
</script>
</body>
</html>
我 們 的 做 法 是 以 上 一 個 范 例 中 的 時 間 函 數(shù); 它 會 出 現(xiàn) 一 個 很 大 的 數(shù),
利 用 這 個 數(shù) 再 加 以 運 算 即 可! 例 如: 將 它 拿 來 做 正 弦 函 數(shù)(sin) 的 運
算, 得 到 的 數(shù) 再 做 絕 對 值 的 運 算, 結 果 可 以 得 到 一 個 介 於 0 與 1 間 的
實 數(shù)。 因 為 時 間 的 改 變 是 ms 為 單 位, 而 且 你 絕 不 會 獲 得 相 同 的 數(shù) 字。
不 過 這 個 做 法 并 不 適 合 拿 來 快 速 的 連 續(xù) 產 生 一 系 列 的 亂 數(shù), 但 如 果 你
是 不 定 時, 久 久 的 用 一 次, 那 效 果 就 不 錯 了!
范 例 8:
JavaScript 的 一 個 重 要 特 點 是 它 可 以 制 作 視 窗。 你 可 以 產 生 一 個 的 視 窗, 并 且
在 此 視 窗 中 載 入 HTML 文 件, 完 全 以 JavaScript 來 航 游 網(wǎng) 際 網(wǎng) 路(Internet )。
接 下 來 的 范 例 就 是 告 訴 你 如 何 開 啟 一 個 視 窗 并 且 寫 點 東 西 進 去, 你 可 先 試 試
按 一 下 范 中 之 接 鈕 看 看!
原 始 程 式 如 下:
<html>
<head>
<script language="LiveScript">
function WinOpen() {
msg=open("","DisplayWindow","toolbar=no,directories=no,menubar=no");
msg.document.write("<HEAD><TITLE>哈 羅!</TITLE></HEAD>");
msg.document.write("<CENTER><H1>酷 斃 了!</H1><h2>這 是<B>JavaScript</B>所 開 的 視 窗!</h2></CENTER>");
}
</script>
</head>
<body>
<form>
<input type="button" name="Button1" value="Push me" onclick="WinOpen()">
</form>
</body>
</html>
這 兒 你 又 看 到 用 按 鈕 來 啟 動 函 數(shù)。 這 次 的 函 數(shù) WinOpen()是 藉 著 一 個 open
的 method 來 產 生 一 個 新 的 視 窗。 第 一 對 雙 引 號("")是 用 來 描 述 欲 載 入 至 視 窗
中 的 文 件 URL 位 置。 如 果 留 者 空 白 的 話, 那 就 會 呈 現(xiàn) 一 個 空 白 視 窗, 并 可 以
透 過 JavaScript 寫 入 東 西! 下 一 對 雙 引 號 內 的 內 容 是 這 個 新 開 啟 視 窗 的 名 字,
你 可 以 喜 歡 給 它 任 意 一 個 名 字, 但 不 可 加 入 空 白, 如 用 Display Window 的 話 便
會 出 現(xiàn) 錯 誤 訊 息, 請 注 意。 接 下 來 的 一 連 串 雙 引 號 內 所 指 定 的 是 該 視 窗
的 相 關 性 質(properties), 這 些 蠻 有 趣 的, 你 可 以 指 定 要 不 要 有 工 具 棒(toolbar) 、
卷 軸(scrollbar), 等 等, 例 如: 如 果 你 寫 toolbar = yes, 那 就 會 在 你 所 產 生 出
來 的 視 窗 中 出 現(xiàn) 一 排 工 具 列。 以 下 有 許 多 你 可 以 改 變 的 視 窗 特 性, 請 注 意 它 們
字 中 間 不 可 以 有 空 白:
toolbar
location
directories
status
menubar
scrollbars
resizable
copyhistory
width=pixels
height=pixels
以 上 的 pixels 部 分, 你 可 以 填 入 點 數(shù) 的 數(shù) 值, 這 數(shù) 值 是 告 訴 瀏 覽 器 這 個 視 窗 的
大 小。 在 開 啟 視 窗, 并 且 將 它 稱 為 msg 以 後, 就 可 以 開 始 寫 些 東 西 到 視 窗 中 了。
你 可 以 寫 入 一 般 正 規(guī) 的 HTML 語 法 文 字。 哇! 這 可 不 得 了 了, 也 就 是 說, 你 可 以
利 用 先 前 使 用 者 在 form 表 格 中 輸 入 給 你 的 文 章 直 接 將 它 回 應 至 瀏 覽 器 上 來 了! 這 些
功 能 在 幾 個 月 前 大 概 還 只 能 用 CGI 才 能 達 到 喔! 現(xiàn) 在 你 不 用 CGI 也 可 以 做 了!
- 什麼是JavaScript?
- 執(zhí)行 JavaScript scripts
- 將scripts 語法嵌入HTML文件之中
- 第一個函數(shù)
- 輸入型元件
- 日期功能 -- 最後修改期
JavaScript 是一種新的描述語言,此一語言可以被箝入 HTML 的文件之中。
透過 JavaScript 可以做到回應使用者的需求事件 (如: form 的輸入) 而不用任何的網(wǎng)路
來回傳輸資料,所以當一位使用者輸入一項資料時,它不用經(jīng)過傳給伺服端 (server)
處理,再傳回來的過程,而直接可以被客戶端 (client) 的應用程式所處理。你也可
以想像成有一個可執(zhí)行程式在你的客端上執(zhí)行一樣!目前已有一些寫好的程式在
Internet 上你可以連過去看看,以下有一些計算器的例子,在 Nescape 上。
JavaScript 和 Java 很類似,但到底并不一樣! Java 是一種比 JavaScript 更復雜
許多的程式語言,而 JavaScript 則是相當容易了解的語言。JavaScript 創(chuàng)作者
可以不那麼注重程式技巧,所以許多 Java 的特性在 Java Script 中并不支援。
如需相關的更多資訊,可以去讀讀 Netscape 的有關 Netscape JavaScript 之介紹。
JavaScript 如何執(zhí)行呢?
Netscape 2.0 beta 3 版以上,就可以執(zhí)行 JavaScript 的功能了,我們測試過至少
beta 3 版以上可以,其他種類的 WWW 瀏覽器如:Internet Expore 3.0也有此一功能。
以下我們就以一些例子來告訴你如何將 JavaScript 寫在 HTML 文件中,并且體會
一下新語言的特性,我們從第一個例子開始:如何用 JavaScript 印出一串文字至
HTML 文件中:
<html>
<head>
My first JavaScript!
</head>
<body>
<br>
This is a normal HTML document.
<br>
<script language="LiveScript">
document.write("這是以 JavaScript 印出的!")
</script>
<br>
Back in HTML again.
</body>
</html>
如果你使用的 WWW 瀏覽器是 Netscape 2.0 beta 3 以上版本的話,那你就可以
看到相關的結果,而如果你的瀏覽器并非是可以支援 JavaScript 的話,那看起
來就會有一些怪怪的了,以上范例的結果如下:
This is a normal HTML document.
這是以 JavaScript 印出的!
Back in HTML again. 此一范例并沒有太大的用處,它只是要告訴你如何使用<script>的標簽,并
如何將它置於 HTML 的文件之中而已,這個新的標簽你可以特它放在文件
中的任何地方。
范例 2:
接下來下一個例子所要介紹的是有關函數(shù) (function) 的使用。請放心,函數(shù)并
非很難懂的東西,但它卻相當有用。函數(shù)通常是在 HTML 文件中 <body >的
部份被呼叫,而理所當然地,它最好事先被宣告并放在 HTML 文件中 <body>
的部份。好讓在 <body> 部分中使用到函數(shù)時,它已確定被讀取住來。另外,
<script> 標簽的有關描述語法剖份,你可以用注解的符號將它括起來,以免舊
版或無法讀取 JavaScript 的瀏覽器讀到,而誤會了意思!
<html>
<head>
<script language="LiveScript">
function pushbutton() {
alert("嗨! 你好");
}
</script>
</head>
<body>
<form>
<input type="button" name="Button1" value="Push me" onclick="pushbutton()">
</form>
</body>
</html>
如果你是使用 Netscape 2.0 beta 3 以上的瀏覽器,那以上 JavaScript 語法部份
的結果如下,你可以試著按按鈕看看有何結果產生!
在范例 2 中,將會產生一個按鈕,當你用滑鼠去按它的時候,應該會出現(xiàn)
一個視窗上面有“嗨! 你好”的字串,如何?不錯吧!這個結果是如何產生
的呢?首先,在 <head>內的函數(shù)會被載入并存於內存中,接著一個新
的 <form>標簽 <input type ="button".....>將產生一個接鈕。然後,你可以
在後面看到 'onClick' 的指令,這就是告訴瀏覽器,當該按鈕被按時,應會執(zhí)行
onClick 後的函數(shù) 'pushbutton()',而這個函數(shù)在剛剛程式被載入時就已安放在
記憶體中了!請注意,在這個函數(shù)中我們用到了個新東西- alert 的 method,
是 JavaScript 事先定義好的,它會以對話視窗產生內涵的訊息,并有一"確定"
(OK)的按鈕。 JavaScript 定義了許多的 method,你可以連至 Netscape 公司去
獲取較完整的訊息。我想這些 method 在不久的將來會有長長的一串可以夠你
學的,不過目前的 method 也已經(jīng)可以做出相當多東西了!
接著下個例子將告訴你如何由一個輸入型表格中讀入使用者的輸入資料,
事實上,這也是加入個函數(shù)就可以達成的。
范例 3:
<html>
<head>
<script language="LiveScript">
<!-- hide script from old browsers
function getname(str) {
alert("哈羅! "+ str+"!");
}
// end hiding contents -->
</script>
</head>
<body>
Please enter your name:
<form>
<input type="text" name="name" onBlur="getname(this.value)" value="">
</form>
</body>
</html>
現(xiàn)在你可以試試結果如何:
請輸入你的名字:
(<!- ... ->) 此部分即我們之前所提到的它可以避免舊版本或是不支援 JavaScript
的 WWW 瀏覽器因為不認識這些函數(shù)而產生錯誤。它的順序應 該為 <script>
先,接著為注解的開頭 <!-,然後是內容,注解尾 ->, 最後是 </script>。
另外要注意的一點是,語解尾那一行的開頭雙斜線 "http://" ,不可以省略,它代表了
JavaScript 的注解,若省略了的話, ->之前的字會被誤認為是 JavaScript 的指令。
這個例子可以讓使用者輸入一段文字,然後再輸入完畢後經(jīng)由 <input>標簽中的
"onBlur" 事件函數(shù)偵知,於是呼叫 Getname(Str)這個函數(shù)來加以取得輸入字串,
并將它顯示在對話視窗上!函數(shù) Getname(this.value) 中的 "this.value" 是你在文
字輸入格式中所輸入的值。
范例 4::
這個范例更是帥了!我們在 HTML 文件檔完成了以後,常會加上一行文件
最後修改的日期,現(xiàn)在你可不用擔心每次都要去改或是忘了改了。你可以
很簡單的寫一個如下的描述語法程式,就可以自動的為你每次產生最後修
改的日期了:
<html>
<body>
This is a simple HTML- page.
<br>
Last changes:
<script language="LiveScript">
<!-- hide script from old browsers
document.write(document.lastModified)
// end hiding contents -->
</script>
</body>
</html>
以上的 document.lastModified 叁數(shù)在 Netscape 2.0 beta 2 版時是被寫成
documeut.lastmodified 的,然而,之後的版本就改為 document.lastModified,
所以注意一下 ;JavaScript 本身是會區(qū)分大小寫的, lastmodified 與 lastModified
在它看來是不同的結果。
最後,在這一部分結束之前,要提醒你一點,像范例 4 ,的用法并非每一部
機器都是一樣的,例如:PC 上跑得很正確的,在工作站上不一定會有相同的
結果,所以,或許你仍得測一測不同機器的結果才會有所定論。當然,這一切
是因為 JavaScript 還正在發(fā)展的原因,最新的訊息還是得去拜訪一下Netscape
公司才知道。也許你也不用奇怪,當你隔周再來訪時,JavaScript 可能又作了
相當大的改變了呢
在這個例子中又有新的東西了。首先,讓我們注意一下,在語法中的注解部分
開發(fā)的朋友,在操作數(shù)據(jù)庫的時候,相信絕大部分人都用過它。但它不僅僅就是一個結果集的純載體,僅僅只有存儲的功能。下面就簡略說一下它的功能。
結果集大體上可以分為四類,它們各有特點,基本上都和Statement語句的創(chuàng)建方式有關。
1、基本型(最基本,用得最廣泛)
創(chuàng)建方式:無參數(shù)創(chuàng)建型
Statement st = conn.CreateStatement
ResultSet rs = Statement.excuteQuery(sqlStr);
特點:這種最簡單,沒有特別的功能(不支持滾動、更新等等),只能用next()逐個單方向去讀取數(shù)據(jù)。
2、滾動型
創(chuàng)建方式:參數(shù)創(chuàng)建型
Statement st = conn.createStatement(int resultSetType, int resultSetConcurrency)
ResultSet rs = st.executeQuery(sqlStr)
參數(shù):
resultSetType是設置ResultSet對象的類型可滾動
resultSetConcurency是設置ResultSet對象能夠修改的
具體的參數(shù)值見ResultSet.
特點:(和具體參數(shù)的設置有關。)這種類型支持滾動獲取記錄,可以向前向后操作,類似于分頁功能的操作方式。如支持:next()、previous()、first()、absolute(int n)等等。
3、更新型
創(chuàng)建方式:(和2一樣,不過參數(shù)選取不同)
Statement st = createstatement(Result.TYPE_SCROLL_INSENSITIVE,Result.CONCUR_UPDATABLE)
特點:可以完成對數(shù)據(jù)庫的更新操作。更新的方法是,把ResultSet的游標移動到你要更新的行,然后調用updateXXX(),再用updateRow()完成對數(shù)據(jù)庫的寫入。
限制/要求:(1)對單表操作。(2)不包含join或者group by子句。
4、保持型
創(chuàng)建方式:
Statement st=createStatement(int resultsetscrollable,int resultsetupdateable,int resultsetSetHoldability)
ResultSet rs = st.excuteQuery(sqlStr);
參數(shù):只介紹第三個resultsetSetHoldability,表示在結果集提交后結果集是否打開,其值為
ResultSet.HOLD_CURSORS_OVER_COMMIT:表示修改提交時,不關閉數(shù)據(jù)庫。
ResultSet.CLOSE_CURSORS_AT_COMMIT:表示修改提交時ResultSet關閉
特點:一般情況下,在使用Statement執(zhí)行完一個查詢,又去執(zhí)行另一個查詢的時候,第一個查詢的結果集就會被關閉。該方式可以自由設定是否關閉結果集。
限制/要求:(1)只是在JDBC3.0的驅動下才能成立。
可更新的結果集:
更新一行:
UpdateXXX()è cancelRowUpdates()èupdateRow()èrowUpdated()。
UpadateXXX()方法只能修改當前行的數(shù)據(jù),并不能修改數(shù)據(jù)庫中的數(shù)據(jù),所以在調用updateXXX()后,還要調用updateRow()方法,用當前行中的新數(shù)據(jù)更新數(shù)據(jù)庫。
CancelRowUpdates()方法用來放棄對當前行的修改,注意,要讓這個方法有效,必須在調用updteRow()方法之前調用它。
rowUpdated()方法來判斷當前行是否被更新。
插入行:
moveToInsertRow()方法移動游標到插入行,插入行是一個與可更新的結果集相聯(lián)系的特殊的緩存行。
moveToInsertRow()èupdateXXX()ègetXXX()èinsertRow()èrowInserted()
insertRow()將新行傳遞給數(shù)據(jù)庫,從而在新數(shù)據(jù)庫中真正插入一行數(shù)據(jù)
rowInserted()方法來判斷當前行是否是插入行。
刪除一行:
deletRow()從結果集中和數(shù)據(jù)庫中刪除一行,當游標指向插入行的時候,不能調用這個方法。一個被刪除的行可能在結果集中留下一個空的位置,可以調用 rowDeleted()方法來判斷一行是否被刪除。
可更新結果集的使用必須滿足下面3個條件:
1, 只能是針對數(shù)據(jù)庫中單張表單的查詢
2, 查詢語句中不能包含任何的join操作。
3, 查詢操作的表中必須有主鍵,而且在查詢的結果集中必須包含作為主鍵的字段。
結果集中執(zhí)行插入操作,還應該滿足下面兩個條件
1, 查詢操作必須選擇數(shù)據(jù)庫表中所有不能為空的列
2, 查詢操作必須選擇所有沒有默認值的列。
判斷ResultSet是否為空
ResultSet rs=stmt.executeQuery(sql);
rs == null;
rs.size()這個方法沒有的
rs為ResultSet的引用,即使結果集里有0條記錄,rs也不為空,所以用rs == null來判斷結果集里是否有0條記錄是錯誤的,而要用 rs.getRow(); 為0則表示沒有記錄--使用的時候也有問題
使用rs.next()是否為true來判斷,會使游標前移一位,可能丟掉一條記錄,不合適
boolean hasRows = false;
下面的方法較合適
while (rs.next()){
hasRows = true;
//Do your stuff
}
if (!hasRows ){
//Empty result set
}
//You dont have to test for null result set
Ctrl+1
快速修復
Ctrl+D
刪除當前行
Ctrl+Alt+↓
復制當前行到下一行(復制增加)
Ctrl+Alt+↑
復制當前行到上一行(復制增加)
Alt+↓
當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)
Alt+↑
當前行和上面一行交互位置
Alt+←
前一個編輯的頁面
Alt+→
下一個編輯的頁面
Alt+Enter
顯示當前選擇資源(工程,or 文件 or文件)的屬性
Shift+Enter
在當前行的下一行插入空行(這時鼠標可以在當前行的任一位置,不一定是最后)
Shift+Ctrl+Enter
在當前行插入空行(原理同上條)
Ctrl+Q
定位到最后編輯的地方
Ctrl+L
定位在某行
Ctrl+M
最大化當前的Edit或View
Ctrl+/
注釋當前行,再按則取消注釋
Ctrl+O
快速顯示 OutLine
Ctrl+T
快速顯示當前類的繼承結構
Ctrl+W
關閉當前Editer
Ctrl+K
參照選中的Word快速定位到下一個
Ctrl+E
快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)
Ctrl+/
(小鍵盤) 折疊當前類中的所有代碼
Ctrl+×
(小鍵盤) 展開當前類中的所有代碼
Ctrl+Space
代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)
Ctrl+Shift+E
顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)
Ctrl+J
正向增量查找(按下Ctrl+J后,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)
Ctrl+Shift+J
反向增量查找(和上條相同,只不過是從后往前查)
Ctrl+Shift+F4
關閉所有打開的Editer
Ctrl+Shift+X
把當前選中的文本全部變味小寫
Ctrl+Shift+Y
把當前選中的文本全部變?yōu)樾?
Ctrl+Shift+F
格式化當前代碼
Ctrl+Shift+P
定位到對于的匹配符(譬如{}) (從前面定位后面時,光標要在匹配符里面,后面到前面,則反之)
下面的快捷鍵是重構里面常用的 (注:一般重構的快捷鍵都是Alt+Shift開頭的了)
Alt+Shift+R
重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節(jié)省很多勞動力)
Alt+Shift+M
抽取方法 (這是重構里面最常用的方法之一了,尤其是對一大堆泥團代碼有用)
Alt+Shift+C
修改函數(shù)結構(比較實用,有N個函數(shù)調用了這個方法,修改一次搞定)
Alt+Shift+L
抽取本地變量( 可以直接把一些魔法數(shù)字和字符串抽取成一個變量,尤其是多處調用的時候)
Alt+Shift+F
把Class中的local變量變?yōu)閒ield變量
Alt+Shift+I
合并變量(可能這樣說有點不妥Inline)
Alt+Shift+V
移動函數(shù)和變量
Alt+Shift+Z
重構的后悔藥
---------------------------------------------------------------------------------------------------------------------
Eclipse插件下載
1 Eclipse下載
EMF,GEF - Graphical Editor Framework,UML2,VE - Visual Editor都在這里下載
http://www.eclipse.org/downloads/index.php
2 lomboz J2EE插件,開發(fā)JSP,EJB
http://forge.objectweb.org/projects/lomboz
3 MyEclipse J2EE開發(fā)插件,支持SERVLET/JSP/EJB/數(shù)據(jù)庫操縱等
http://www.myeclipseide.com
4 Properties Editor 編輯java的屬性文件,并可以自動存盤為Unicode格式
http://propedit.sourceforge.jp/index_en.html
5 Colorer Take 為上百種類型的文件按語法著色
http://colorer.sourceforge.net/
6 XMLBuddy 編輯xml文件
http://www.xmlbuddy.com
7 Code Folding 加入多種代碼折疊功能(比eclipse自帶的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
8 Easy Explorer 從eclipse中訪問選定文件、目錄所在的文件夾
http://easystruts.sourceforge.net/
9 Fat Jar 打包插件,可以方便的完成各種打包任務,可以包含外部的包等
http://fjep.sourceforge.net/
10 RegEx Test 測試正則表達式
http://brosinski.com/stephan/archives/000028.php
11 JasperAssistant 報表插件(要錢的哦~)
http://www.jasperassistant.com/
12 Jigloo GUI Builder JAVA的GUI編輯插件
http://cloudgarden.com/jigloo/
13 Profiler 性能跟蹤、測量工具,能跟蹤、測量B/S程序
http://sourceforge.net/projects/eclipsecolorer/
14 AdvanQas 提供對if/else等條件語句的提示和快捷幫助(自動更改結構等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
15 Log4E Log4j插件,提供各種和Log4j相關的任務,如為方法、類添加一個logger等
http://log4e.jayefem.de/index.php/Main_Page
16 VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
17 Implementors 提供跳轉到一個方法的實現(xiàn)類,而不是接口的功能(實用!)
http://eclipse-tools.sourceforge.net/implementors/
18 Call Hierarchy 顯示一個方法的調用層次(被哪些方法調,調了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
19 EclipseTidy 檢查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
20 Checkclipse 檢查代碼的風格、寫法是否符合規(guī)范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
21 Hibernate Synchronizer Hibernate插件,自動映射等
http://www.binamics.com/hibernatesync/
22 VeloEclipse Velocity插件
http://propsorter.sourceforge.net/
23 EditorList 方便的列出所有打開的Editor
http://editorlist.sourceforge.net/
24 MemoryManager 內存占用率的監(jiān)視
http://cloudgarden.com/memorymanager/
25 swt-designer java的GUI插件
http://www.swt-designer.com/
26 TomcatPlugin 支持Tomcat插件
http://www.sysdeo.com/eclipse/tomcatPlugin.html
27 XML Viewer
http://tabaquismo.freehosting.net/ignacio/eclipse/xmlview/index.html
28 quantum 數(shù)據(jù)庫插件
http://quantum.sourceforge.net/
29 Dbedit 數(shù)據(jù)庫插件
http://sourceforge.net/projects/dbedit
30 clay.core 可視化的數(shù)據(jù)庫插件
http://www.azzurri.jp/en/software/index.jsp
http://www.azzurri.jp/eclipse/plugins
31 hiberclipse hibernate插件
http://hiberclipse.sourceforge.net
http://www.binamics.com/hibernatesync
32 struts-console Struts插件
http://www.jamesholmes.com/struts/console/
33 easystruts Struts插件
http://easystruts.sourceforge.net
34 veloedit Velocity插件
http://veloedit.sourceforge.net/
35 jalopy 代碼整理插件
http://jalopy.sourceforge.net/
36 JDepend 包關系分析
http://andrei.gmxhome.de/jdepend4eclipse/links.html
37 Spring IDE Spring插件
http://springide-eclip.sourceforge.net/updatesite/
38 doclipse 可以產生xdoclet 的代碼提示
http://beust.com/doclipse/
39 SQLExplorer,在Eclipse 中連接各種數(shù)據(jù)庫進行操作使用
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=31124