2009年4月25日 #

// 片段1











// 片段二























在后臺代碼實現(xiàn)方法省略,不過返回一定要JSON格式,且有 success屬性,如果用戶存在,返回true, 否則返回false
好了,不多說,上解決方法:
1、菜單----設(shè)置----Internet配置文件----選擇----新增-----
2、標題“關(guān)閉上網(wǎng)”(隨便一個名稱都行)----使用代理“關(guān)”----接入點“DM APN”----完成
3、移動夢網(wǎng)----設(shè)置----模式----選擇“新增”
4、標題“關(guān)閉上網(wǎng)”----主頁“輸入一個無效網(wǎng)址”----互聯(lián)網(wǎng)配置文件(選擇)“步驟2中的‘關(guān)閉上網(wǎng)’”----完成----激活。
5、設(shè)置完成后,在“桌面”狀態(tài)下按到“夢網(wǎng)上網(wǎng)鍵”,則會出現(xiàn)“未發(fā)現(xiàn)請求的主機”的提示,按“確定”即刻返回“桌面”。
1. Session和事務(wù)范圍(transaction scope)
對象的創(chuàng)建代價很昂貴,它是線程安全的對象,它為所有的應(yīng)用程序線程所共享。它只創(chuàng)建一次,通常是在應(yīng)用程序啟動的時候,由一個
SessionFactoryConfiguraion
的實例來創(chuàng)建。
Session
對象的創(chuàng)建代價比較小,是非線程安全的,對于單個請求,單個會話、單個的 工作單元而言,它只被使用一次,然后就丟棄。只有在需要的時候,一個Session
對象 才會獲取一個JDBC的Connection
(或一個Datasource
) 對象,因此假若不使用的時候它不消費任何資源。
此外我們還要考慮數(shù)據(jù)庫事務(wù)。數(shù)據(jù)庫事務(wù)應(yīng)該盡可能的短,降低數(shù)據(jù)庫中的鎖爭用。 數(shù)據(jù)庫長事務(wù)會阻止你的應(yīng)用程序擴展到高的并發(fā)負載。因此,假若在用戶思考期間讓數(shù)據(jù)庫事務(wù)開著,直到整個工作單元完成才關(guān)閉這個事務(wù),這絕不是一個好的設(shè)計。
一個操作單元(Unit of work)的范圍是多大?單個的Hibernate Session
能跨越多個 數(shù)據(jù)庫事務(wù)嗎?還是一個Session
的作用范圍對應(yīng)一個數(shù)據(jù)庫事務(wù)的范圍?應(yīng)該何時打開 Session
,何時關(guān)閉Session
?,你又如何劃分數(shù)據(jù)庫事務(wù)的邊界呢?
1.1 操作單元(Unit of work)
首先,別用session-per-operation這種反模式了,也就是說,在單個線程中, 不要因為一次簡單的數(shù)據(jù)庫調(diào)用,就打開和關(guān)閉一次Session
!數(shù)據(jù)庫事務(wù)也是如此。 應(yīng)用程序中的數(shù)據(jù)庫調(diào)用是按照計劃好的次序,分組為原子的操作單元。(注意,這也意味著,應(yīng)用程 序中,在單個的SQL語句發(fā)送之后,自動事務(wù)提交(auto-commit)模式失效了。這種模式專門為SQL控制臺操作設(shè)計的。 Hibernate禁止立即自動事務(wù)提交模式,或者期望應(yīng)用服務(wù)器禁止立即自動事務(wù)提交模式。)數(shù)據(jù)庫事務(wù)絕不是可有可無的,任何與數(shù)據(jù)庫之間的通訊都必須在某個事務(wù)中進行,不管你是在讀還是在寫數(shù)據(jù)。對讀數(shù)據(jù)而言,應(yīng)該避免auto-commit行為,因為很多小的事務(wù)比一個清晰定義的工作單元性能差。后者也更容易維護和擴展。
在多用戶的client/server應(yīng)用程序中,最常用的模式是 每個請求一個會話(session-per-request)。 在這種模式下,來自客戶端的請求被發(fā)送到服務(wù)器端(即Hibernate持久化層運行的地方),一 個新的Hibernate Session
被打開,并且執(zhí)行這個操作單元中所有的數(shù)據(jù)庫操作。 一旦操作完成(同時對客戶端的響應(yīng)也準備就緒),session被同步,然后關(guān)閉。你也可以使用單 個數(shù)據(jù)庫事務(wù)來處理客戶端請求,在你打開Session
之后啟動事務(wù),在你關(guān)閉 Session
之前提交事務(wù)。會話和請求之間的關(guān)系是一對一的關(guān)系,這種模式對 于大多數(shù)應(yīng)用程序來說是很棒的。
實現(xiàn)才是真正的挑戰(zhàn)。Hibernate內(nèi)置了對"當前session(current session)" 的管理,用于簡化此模式。你要做的一切就是在服務(wù)器端要處理請求的時候,開啟事務(wù),在響應(yīng)發(fā)送給客戶之前結(jié)束事務(wù)。你可以用任何方式來完成這一操作,通常的方案有ServletFilter
,在service方法中進行pointcut的AOP攔截器,或者proxy/interception容器。EJB容器是實現(xiàn)橫切諸如EJB session bean上的事務(wù)分界,用CMT對事務(wù)進行聲明等方面的標準手段。假若你決定使用編程式的事務(wù)分界,請參考本章后面講到的Hibernate Transaction
API,這對易用性和代碼可移植性都有好處。
在任何時間,任何地方,你的應(yīng)用代碼可以通過簡單的調(diào)用sessionFactory.getCurrentSession()
來訪問"當前session",用于處理請求。你總是會得到當前數(shù)據(jù)庫事務(wù)范圍內(nèi)的Session
。在使用本地資源或JTA環(huán)境時,必須配置它,請參見第 2.5 節(jié) “上下文相關(guān)的(Contextual)Session”。
有時,將Session
和數(shù)據(jù)庫事務(wù)的邊界延伸到"展示層被渲染后"會帶來便利。有些serlvet應(yīng)用程序在對請求進行處理后,有個單獨的渲染期,這種延伸對這種程序特別有用。假若你實現(xiàn)你自己的攔截器,把事務(wù)邊界延伸到展示層渲染結(jié)束后非常容易。然而,假若你依賴有容器管理事務(wù)的EJB,這就不太容易了,因為事務(wù)會在EJB方法返回后結(jié)束,而那是在任何展示層渲染開始之前。請訪問Hibernate網(wǎng)站和論壇,你可以找到Open Session in View這一模式的提示和示例。
1.1 長對話
session-per-request模式不僅僅是一個可以用來設(shè)計操作單元的有用概念。很多業(yè)務(wù)處理都需 要一系列完整的與用戶之間的交互,而這些用戶是指對數(shù)據(jù)庫有交叉訪問的用戶。在基于web的應(yīng)用和企業(yè) 應(yīng)用中,跨用戶交互的數(shù)據(jù)庫事務(wù)是無法接受的。考慮下面的例子:
-
在界面的第一屏,打開對話框,用戶所看到的數(shù)據(jù)是被一個特定的
Session
和數(shù)據(jù) 庫事務(wù)載入(load)的。用戶可以隨意修改對話框中的數(shù)據(jù)對象。 -
5分鐘后,用戶點擊“保存”,期望所做出的修改被持久化;同時他也期望自己是唯一修改這個信息的人,不會出現(xiàn) 修改沖突。
從用戶的角度來看,我們把這個操作單元稱為長時間運行的對話(conversation),或者(or 應(yīng)用事務(wù),application transaction)。 在你的應(yīng)用程序中,可以有很多種方法來實現(xiàn)它。
頭一個幼稚的做法是,在用戶思考的過程中,保持Session
和數(shù)據(jù)庫事務(wù)是打開的, 保持數(shù)據(jù)庫鎖定,以阻止并發(fā)修改,從而保證數(shù)據(jù)庫事務(wù)隔離級別和原子操作。這種方式當然是一個反模式, 因為鎖爭用會導致應(yīng)用程序無法擴展并發(fā)用戶的數(shù)目。
很明顯,我們必須使用多個數(shù)據(jù)庫事務(wù)來實現(xiàn)這個對話。在這個例子中,維護業(yè)務(wù)處理的 事務(wù)隔離變成了應(yīng)用程序?qū)拥牟糠重熑巍R粋€對話通常跨越多個數(shù)據(jù)庫事務(wù)。如果僅僅只有一 個數(shù)據(jù)庫事務(wù)(最后的那個事務(wù))保存更新過的數(shù)據(jù),而所有其他事務(wù)只是單純的讀取數(shù)據(jù)(例如在一 個跨越多個請求/響應(yīng)周期的向?qū)эL格的對話框中),那么應(yīng)用程序事務(wù)將保證其原子性。這種方式比聽 起來還要容易實現(xiàn),特別是當你使用了Hibernate的下述特性的時候:
-
自動版本化 - Hibernate能夠自動進行樂觀并發(fā)控制 ,如果在用戶思考 的過程中發(fā)生并發(fā)修改,Hibernate能夠自動檢測到。一般我們只在對話結(jié)束時才檢查。
-
脫管對象(Detached Objects)- 如果你決定采用前面已經(jīng)討論過的 session-per-request模式,所有載入的實例在用戶思考的過程 中都處于與Session脫離的狀態(tài)。Hibernate允許你把與Session脫離的對象重新關(guān)聯(lián)到Session 上,并且對修改進行持久化,這種模式被稱為 session-per-request-with-detached-objects。自動版本化被用來隔離并發(fā)修改。
-
Extended (or Long) Session - Hibernate 的
Session
可以在數(shù)據(jù)庫事務(wù)提交之后和底層的JDBC連接斷開,當一個新的客戶端請求到來的時候,它又重新連接上底層的 JDBC連接。這種模式被稱之為session-per-conversation,這種情況可 能會造成不必要的Session和JDBC連接的重新關(guān)聯(lián)。自動版本化被用來隔離并發(fā)修改,Session
通常不允許自動flush,而是明確flush。
session-per-request-with-detached-objects 和 session-per-conversation 各有優(yōu)缺點,我們在本章后面樂觀并發(fā) 控制那部分再進行討論。
Spring IoC:IoC容器負責容納此前所描述的bean,并對bean進行管理。
職責包括:實例化、定位、配置應(yīng)用程序中的對象及建立這些對象間的依賴。
===================常用========================
Ctrl+J : 列出成員 智能感知
Ctrl+F: 查找
Ctrl+I: 漸進式搜索
Ctrl+Shift+I: 反向漸進式搜索
Ctrl+H: 替換
Ctrl+Shift+H: 在文件中替換
Ctrl+Shift+L: 刪除當前行
Ctrl+E,D ----格式化全部代碼
Ctrl+E,F ----格式化選中的代碼
Ctrl+W,P: 屬性窗口
Ctrl+Shift+U: 全部變?yōu)榇髮?
Ctrl+U: 全部變?yōu)樾?br /> Ctrl+K+Crtr+C: 注釋選定內(nèi)容
Ctrl+K+Crtr+U: 取消選定注釋內(nèi)容
===================全部========================
Ctrl+M+Crtr+P: 停止大綱顯示
Ctrl+K+Crtr+C: 注釋選定內(nèi)容
Ctrl+K+Crtr+U: 取消選定注釋內(nèi)容
Ctrl+J : 列出成員 智能感知
Ctrl+B,T / Ctrl+K,K: 切換書簽開關(guān)
Ctrl+B,N / Ctrl+K,N: 移動到下一書簽
Ctrl+B,P: 移動到上一書簽
Ctrl+B,C: 清除全部標簽
Ctrl+I: 漸進式搜索
Ctrl+Shift+I: 反向漸進式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一個
Shift+F3: 查找上一個
Ctrl+H: 替換
Ctrl+Shift+H: 在文件中替換
Alt+F12: 查找符號(列出所有查找結(jié)果)
Ctrl+Shift+V: 剪貼板循環(huán)
Ctrl+左右箭頭鍵: 一次可以移動一個單詞
Ctrl+上下箭頭鍵: 滾動代碼屏幕,但不移動光標位置。
Ctrl+Shift+L: 刪除當前行
Ctrl+M,M: 隱藏或展開當前嵌套的折疊狀態(tài)
Ctrl+M,L: 將所有過程設(shè)置為相同的隱藏或展開狀態(tài)
Ctrl+E,S: 查看空白
Ctrl+E,W: 自動換行
Ctrl+G: 轉(zhuǎn)到指定行
Shift+Alt+箭頭鍵: 選擇矩形文本
Alt+鼠標左按鈕: 選擇矩形文本
Ctrl+Shift+U: 全部變?yōu)榇髮?
Ctrl+U: 全部變?yōu)樾?/div>
Ctrl+Shift+空格鍵 / Ctrl+K,P: 參數(shù)信息
Ctrl+K,I: 快速信息
Ctrl+K,M: 生成方法存根
Ctrl+K,X: 插入代碼段
Ctrl+K,S: 插入外側(cè)代碼
F12: 轉(zhuǎn)到所調(diào)用過程或變量的定義
Ctrl+W,S: 解決方案管理器
Ctrl+W,C: 類視圖
Ctrl+W,E: 錯誤列表
Ctrl+W,O: 輸出視圖
trl+W,P: 屬性窗口
Ctrl+W,T: 任務(wù)列表
Ctrl+W,X: 工具箱
Ctrl+W,B: 書簽窗口
Ctrl+W,U: 文檔大綱
Ctrl+D,B: 斷點窗口
Ctrl+D,I: 即時窗口
Ctrl+Tab: 活動窗體切換
Ctrl+Shift+N: 新建項目
Ctrl+Shift+O: 打開項目
Ctrl+Shift+S: 全部保存
Shift+Alt+C: 新建類
Ctrl+Shift+A: 新建項
Shift+Alt+Enter: 切換全屏編輯
Ctrl+B,T / Ctrl+K,K: 切換書簽開關(guān)
Ctrl+B,N / Ctrl+K,N: 移動到下一書簽
Ctrl+B,P: 移動到上一書簽
Ctrl+B,C: 清除全部標簽
Ctrl+I: 漸進式搜索
Ctrl+Shift+I: 反向漸進式搜索
Ctrl+F: 查找
Ctrl+Shift+F: 在文件中查找
F3: 查找下一個
Shift+F3: 查找上一個
Ctrl+H: 替換
Ctrl+Shift+H: 在文件中替換
Alt+F12: 查找符號(列出所有查找結(jié)果)
Ctrl+Shift+V: 剪貼板循環(huán)
Ctrl+左右箭頭鍵: 一次可以移動一個單詞
Ctrl+上下箭頭鍵: 滾動代碼屏幕,但不移動光標位置。
Ctrl+Shift+L: 刪除當前行
Ctrl+M,M: 隱藏或展開當前嵌套的折疊狀態(tài)
Ctrl+M,L: 將所有過程設(shè)置為相同的隱藏或展開狀態(tài)
Ctrl+M,P: 停止大綱顯示
Ctrl+E,S: 查看空白
Ctrl+E,W: 自動換行
Ctrl+G: 轉(zhuǎn)到指定行
Shift+Alt+箭頭鍵: 選擇矩形文本
Alt+鼠標左按鈕: 選擇矩形文本
Ctrl+Shift+U: 全部變?yōu)榇髮?
Ctrl+U: 全部變?yōu)樾?
control userpasswords2--------用戶帳戶設(shè)置
cleanmgr-------垃圾整理
CMD--------------命令提示符可以當作是 Windows 的一個附件,Ping,Convert 這些不能在圖形環(huán)境下 使用的功能要借助它來完成。
cmd------jview察看Java虛擬機版本。
command.com------調(diào)用的則是系統(tǒng)內(nèi)置的 NTVDM,一個 DOS虛擬機。它完全是一個類似 Virtual PC 的 虛擬環(huán)境,和系統(tǒng)本身聯(lián)系不大。當我們在命令提示符下運行 DOS 程序時,實際上也 是自動轉(zhuǎn)移到 NTVDM虛擬機下,和 CMD 本身沒什么關(guān)系。
calc-----------啟動計算器
chkdsk.exe-----Chkdsk磁盤檢查
compmgmt.msc---計算機管理
conf-----------啟動 netmeeting
control userpasswords2-----User Account 權(quán)限設(shè)置
devmgmt.msc--- 設(shè)備管理器
diskmgmt.msc---磁盤管理實用程序
dfrg.msc-------磁盤碎片整理程序
drwtsn32------ 系統(tǒng)醫(yī)生
dvdplay--------啟動Media Player
dxdiag-----------DirectX Diagnostic Tool
gpedit.msc-------組策略編輯器
gpupdate /target:computer /force 強制刷新組策略
eventvwr.exe-----事件查看器
explorer-------打開資源管理器
logoff---------注銷命令
lusrmgr.msc----本機用戶和組
msinfo32---------系統(tǒng)信息
msconfig---------系統(tǒng)配置實用程序
net start (servicename)----啟動該服務(wù)
net stop (servicename)-----停止該服務(wù)
notepad--------打開記事本
nusrmgr.cpl-------同control userpasswords,打開用戶帳戶控制面板
Nslookup-------IP地址偵測器
oobe/msoobe /a----檢查XP是否激活
perfmon.msc----計算機性能監(jiān)測程序
progman--------程序管理器
regedit----------注冊表編輯器
regedt32-------注冊表編輯器
regsvr32 /u *.dll----停止dll文件運行
route print------查看路由表
rononce -p ----15秒關(guān)機
rsop.msc-------組策略結(jié)果集
rundll32.exe rundll32.exe %Systemroot%System32shimgvw.dll,ImageView_Fullscreen----啟動一個空白的Windows 圖片和傳真查看器
secpol.msc--------本地安全策略
services.msc---本地服務(wù)設(shè)置
sfc /scannow-----啟動系統(tǒng)文件檢查器
sndrec32-------錄音機
taskmgr-----任務(wù)管理器(適用于2000/xp/2003)
tsshutdn-------60秒倒計時關(guān)機命令
winchat--------XP自帶局域網(wǎng)聊天
winmsd---------系統(tǒng)信息
winver-----顯示About Windows 窗口
wupdmgr-----------Windows Update
winver---------檢查Windows版本
wmimgmt.msc----打開windows管理體系結(jié)構(gòu)(WMI)
wupdmgr--------windows更新程序
wscript--------windows腳本宿主設(shè)置
write----------寫字板
winmsd---------系統(tǒng)信息
wiaacmgr-------掃描儀和照相機向?qū)?nbsp;
winchat--------XP自帶局域網(wǎng)聊天
mem.exe--------顯示內(nèi)存使用情況
Msconfig.exe---系統(tǒng)配置實用程序
mplayer2-------簡易widnows media player
mspaint--------畫圖板
mstsc----------遠程桌面連接
mplayer2-------媒體播放機
magnify--------放大鏡實用程序
mmc------------打開控制臺
mobsync--------同步命令
dxdiag---------檢查DirectX信息
drwtsn32------ 系統(tǒng)醫(yī)生
devmgmt.msc--- 設(shè)備管理器
dfrg.msc-------磁盤碎片整理程序
diskmgmt.msc---磁盤管理實用程序
dcomcnfg-------打開系統(tǒng)組件服務(wù)
ddeshare-------打開DDE共享設(shè)置
dvdplay--------DVD播放器
net stop messenger-----停止信使服務(wù)
net start messenger----開始信使服務(wù)
notepad--------打開記事本
nslookup-------網(wǎng)絡(luò)管理的工具向?qū)?nbsp;
ntbackup-------系統(tǒng)備份和還原
narrator-------屏幕“講述人”
ntmsmgr.msc----移動存儲管理器
ntmsoprq.msc---移動存儲管理員操作請求
netstat -an----(TC)命令檢查接口
syncapp--------創(chuàng)建一個公文包
sysedit--------系統(tǒng)配置編輯器
sigverif-------文件簽名驗證程序
sndrec32-------錄音機
shrpubw--------創(chuàng)建共享文件夾
secpol.msc-----本地安全策略
syskey---------系統(tǒng)加密,一旦加密就不能解開,保護windows xp系統(tǒng)的雙重密碼
services.msc---本地服務(wù)設(shè)置
Sndvol32-------音量控制程序
sfc.exe--------系統(tǒng)文件檢查器
sfc /scannow---windows文件保護
tsshutdn-------60秒倒計時關(guān)機命令
tourstart------xp簡介(安裝完成后出現(xiàn)的漫游xp程序)
taskmgr--------任務(wù)管理器
eventvwr-------事件查看器
eudcedit-------造字程序
explorer-------打開資源管理器
packager-------對象包裝程序
perfmon.msc----計算機性能監(jiān)測程序
progman--------程序管理器
regedit.exe----注冊表
rsop.msc-------組策略結(jié)果集
regedt32-------注冊表編輯器
rononce -p ----15秒關(guān)機
regsvr32 /u *.dll----停止dll文件運行
regsvr32 /u zipfldr.dll------取消ZIP支持
cmd.exe--------CMD命令提示符
chkdsk.exe-----Chkdsk磁盤檢查
certmgr.msc----證書管理實用程序
calc-----------啟動計算器
charmap--------啟動字符映射表
cliconfg-------SQL SERVER 客戶端網(wǎng)絡(luò)實用程序
Clipbrd--------剪貼板查看器
conf-----------啟動netmeeting
compmgmt.msc---計算機管理
cleanmgr-------垃圾整理
ciadv.msc------索引服務(wù)程序
osk------------打開屏幕鍵盤
odbcad32-------ODBC數(shù)據(jù)源管理器
oobe/msoobe /a----檢查XP是否激活
lusrmgr.msc----本機用戶和組
logoff---------注銷命令
iexpress-------木馬捆綁工具,系統(tǒng)自帶
Nslookup-------IP地址偵測器
fsmgmt.msc-----共享文件夾管理器
utilman--------輔助工具管理器
gpedit.msc-----組策略
你可以打開兩個頁面
http://kerphi.zeitoun.net/articles/comet_and_php/comet-ajax/
http://kerphi.zeitoun.net/articles/comet_and_php/comet-ajax/
發(fā)個信息試試。呵呵。奇怪吧?看看它的原理 。
http://www.ibm.com/developerworks/cn/web/wa-lo-comet/
實踐指南:http://www.ibm.com/developerworks/cn/web/wa-lo-w2fpak-comet/
Delft科技大學的EnginBozdag、AliMesbah和ArievanDeursen一起討論了下面這些可以實現(xiàn)基于web的實時事件通知的方法:
1.HTTP拉取方式:在這種傳統(tǒng)的方法中,客戶端以用戶可定義的時間間隔去檢查服務(wù)器上的最新數(shù)據(jù)。這種拉取方式的頻率要足夠高才能保證很高的數(shù)據(jù)精確度,但高頻率可能會導致多余的檢查,從而導致較高的網(wǎng)絡(luò)流量。而另一方面,低頻率則會導致錯過更新的數(shù)據(jù)。理想地,拉取的時間間隔應(yīng)該等于服務(wù)器狀態(tài)改變的速度。
2.HTTP流:這種方法由存在于不間斷的HTTP連接響應(yīng)中或某個XMLHttpRequest連接中的服務(wù)器數(shù)據(jù)流所組成。
3.反轉(zhuǎn)AJAX:服務(wù)流應(yīng)用到AJAX,就是所謂的反轉(zhuǎn)AJAX或者COMET。它使得服務(wù)器在某事件發(fā)生時可以發(fā)送消息給客戶端,而不需要客戶端顯式的請求。目標在于達到狀態(tài)變化的實時更新。COMET使用了HTTP/1.1中的持續(xù)連接的特性。通過HTTP/1.1,除非另作說明,服務(wù)器和瀏覽器之間的TCP連接會一直保持連接狀態(tài),直到其中一方發(fā)送了一條明顯的“關(guān)閉連接”的消息,或者有超時以及網(wǎng)絡(luò)錯誤發(fā)生。
4.長時間輪詢:也就是所謂的異步輪詢,這種方式是純服務(wù)器端推送方式和客戶端拉取方式的混合。它是基于BAYEUX協(xié)議的。這個協(xié)議遵循基于主題的發(fā)布——訂閱機制。在訂閱了某個頻道后,客戶端和服務(wù)器間的連接會保持打開狀態(tài),并保持一段事先定義好的時間。如果服務(wù)器端沒有事件發(fā)生,而發(fā)生了超時,服務(wù)器端就會請求客戶端進行異步重新連接。如果有事件發(fā)生,服務(wù)器端會發(fā)送數(shù)據(jù)到客戶端,然后客戶端重新連接。