㈠ 急求一java script腳本,最簡單最簡單那種!~
<script language="JavaScript">
<!--
function test(){
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
if(a == 'ADMIN' && a == b)
window.open("ww.htm", "test");
else
alert("Access denied!");
}
-->
</script>
<body>
<input type="text" id="a">
<input type="text" id="b">
<input type="button" value="ok" onClick="test();">
</body>
㈡ 需要關於MIS系統開發的JAVA語言的一個關於工程的程序.
基於動態Web頁面上的MIS系統
引 言
隨著Internet的日益普及,越來越多的企業著手組建公司Intranet網,以提高企業效率,增加企業競爭能力.然而,目前國內大多數企業的MIS系統仍只是局限於公司內部網,因而存在如下不足:①無法充分利用Internet上的豐富資源;②不能建立企業與合作夥伴或有業務來往公司的信息互訪;③對於在外企業人員,無法做到即時交互信息;④對於分公司或下屬企業,無法做到統一的信息管理.開發企業基於Web頁面上的MIS系統,可以:①減少日常開銷,節約辦公室經費,實現無紙化辦公;②加快單位內部的信息流動,提高工作效率;③加強部門與員工之間、領導與部門之間的聯系和溝通;④增強企業的凝聚力,樹立團隊精神;⑤加強本單位與外部相關單位和人員的聯系;⑥為企業提供跨計算機平台的信息訪問能力,方便連入Internet.本文針對建立基於Web頁面上的MIS系統過程中主要存在大量動態數據訪問和顯示效率等問題,在開發設計深圳市給排水工程建設指揮部MIS系統的過程中,利用MIIS(Microsoft Internet Information Server4.0)中的ASP(Active Server Pages)技術把MIS系統建立在Web頁面上,並採用MTS(Microsoft Transaction Server 1.0)作為中間伺服器,構成3層結構,通過創建Web動態數據頁面,簡化連接和訪問資料庫的過程,提高了數據管理的訪問事務,從而在Internet網上建立了可行的MIS系統.
1 基於Web的3層結構和基於Web的工作流
構造一個實用的基於Web的MIS系統,首先必須實現動態Web站點,創建Web動態數據頁面,簡化連接和訪問資料庫的過程,提高資料庫訪問事務,建立高效的業務應用對象和部件,從而加快網上傳輸效率,使基於Web的MIS系統實現遠程傳輸成為可能,其中最關鍵的是3層伺服器結構及合理的工作流方式.
1.1 三層客戶端/伺服器體系
傳統的(或兩層)客戶端/伺服器計算機一般只涉及到一台伺服器,該伺服器連接了無數客戶端.它允許一台機器來控制對一個資源(如一個SQL資料庫)的訪問,但是每個網路連接都增加一定量的開銷.伺服器在管理這些開銷時很快會陷於停頓,涉及到許多客戶端連接時尤其如此.一個超負載的伺服器只有很少的資源可用於完成各種任務如管理對資料庫的訪問.如圖1中用於管理網路連接的開銷消耗CPU總能力的大部分(黑色部分),而只有小部分的CPU處理能力可用於處理對SQL(Structured Query Language)資料庫的訪問(白色部分).
圖1 兩層客戶端/伺服器結構體系圖
Fig.1 The fig.of two layers structure of users/server
為了減少一些網路通信開銷,可在客戶端和伺服器之間安放一個中間層即中間伺服器.這種體系結構為三層客戶端/伺服器結構,如圖2.三層結構中,中間伺服器處理網路請求的開銷,然後將客戶端請求復用到SQL伺服器的網路連接上,由於該SQL伺服器只管理一個網路連接,因此減少了用於網路訪問的CPU資源數量,從而釋放了SQL伺服器的CPU資源,並使它以更快的速度為請求服務.本系統中,以MIIS作為Web伺服器,以MTS作為中間伺服器,以SQL Server 7.0實現資料庫.由於MIS是一個基於組件的事務處理系統,用於開發、配置以及管理高性能的、可測的和可靠的企業、Internet及Intranet伺服器應用程序,它定義了一個編程模型來開發分布式、基於組件的應用程序,還提供了一個運行時基礎環境和一個圖形工具來配置和管理這些應用程序.MTS與MIIS緊密地集成在一起,為Web上的事務應用程序創建了最好的平台.系統層次如圖3.
圖2 三層客戶端/伺服器結構體系圖
Fig.2 The fig.of triple layers structure of users/server
圖3 系統層次圖
Fig.3 The fig. of system arrangement
1.2 基於Web的工作流理論及其實現
任一基於Web的程序模塊由4部分構成:①是處於資料庫伺服器端的「Data Liberay」,它負責整個系統的資料庫管理工作;②是通過VB創建的ActiveX控制項,它通過ADO(ActiveX Data Object)技術與資料庫相連,是模塊的主要設計和編程部分;③是數據源部分,它是利用DCOM或ADO Recordset模式與ActiveX建立連接,它在VB中表現為ADO控制項或ADO代碼編程等;④是直接面向客戶端的用戶,本系統主要是採用DHTML方式在Web頁上發布.
基於Web的程序模塊示意如圖4.
圖4 基於Web的程序模塊示意圖
Fig.4 The sketch map of programme mole on Web
目前,訪問資料庫有以下5種模式:①以VBSQL為介面界面,通過DB-Library訪問微軟的SQL Server;②以DAO/JET為介面界面,訪問本地的JET/Access.MDB,順序索引資料庫(ISAM)和任何ODBC數據源;③以DAO/ODBC Dircet為介面界面,訪問任一ODBC數據源(經過RDO);④以RDO2.0為介面界面,訪問任一ODBC數據源(Level 1,2);⑤以ADO為介面界面,訪問任一ODBC數據源和任何經過OLE DB界面介面的數據源.但只有ADO是唯一為基於Web的數據訪問設計的,它提供Web上基於對象的數據訪問方法,資料庫與任何ODBC數據源的連接可以通過ActiveX腳本很容易地建立起來,且組件中提供了一組強有力的資料庫操作命令操縱數據和產生數據驅動的Web主頁.
採用Visual Basic和Visual InterDev作為系統開發工具,是一個集應用程序開發、測試和調試等功能於一體的集成式開發系統,可以建立動態Web頁面,在客戶機的瀏覽器窗口中顯示;可以建立Web伺服器上運行的應用程序,與Internet上帶MIIS信息伺服器的客戶相交互.Visual InterDev在一個簡單、完整的開發環境下包含了一系列不同的可視化工具,使用者可以生成和管理Web共享事件,自動公布為Web伺服器開發的內容,且為Web站點提供更高層的站點管理能力.Visual InterDev包含了可視化資料庫開發工具,創建和管理數據驅動的Web站點,在這些站點上,Web頁面根據資料庫中的數據被動態地創建.此外,Visual InterDev基於一個強有力的Web應用開發框架,支持Active Server Script的Active Server Framework.Active Server Script是內置於Web頁面但在Web伺服器而不是瀏覽器上執行的腳本語言.Active Server Script可用來創建帶有高級伺服器端進程的Web應用,包括含有用VB、VC+ +和VJ+ +語言開發的組件的多層Web應用.使用伺服器端組件可容易地將Internet或Intranet中的原有系統結合起來,並保存Web技術的優點,即開放標准、高效率的開發、跨平台的瀏覽和低頻帶訪問通道.最後,Visual InterDev含有完整的客戶腳本工具,它可被第3方組件擴展,如Java進程和ActiveX控制項這些可被加入Web頁面並完整地應用腳本工具的組件.
採用ASP技術處理Web頁面,可以創建為任何瀏覽器使用的巨大的獨立平台內容.從本質上講,ASP是一種在伺服器上的Web頁腳本製作,當發生頁面請求時,系統動態地判別這種腳本製作代碼,且將結果傳送到調用的瀏覽器,這使ASP成為在Internet上運行的應用程序的理想選擇,因為所有的瀏覽器都能瀏覽它,同時ASP沒有最小的特性的限制,因而可以為ASP的輸出隨意添加客戶腳本、ActiveX控制項和動態HTML(超文本標記語言),Web頁也因此可以實現非常靈活的編程要求.
ASP處理Web頁面過程如圖5.當發生遠程頁面請求時,ASP把請求結果以DHTML的方式發送給請求者,而無需把控制項、腳本語言代碼傳送給用戶,這就大大加快了網上傳輸效率,使基於Web的MIS系統實現遠程傳輸成為可能。
圖5 ASP處理Web頁面過程
Fig.5 The process for ASP treating with Web
Active Server最基本的單元是Active Server頁面(ASP)文件.每個ASP文件中的3個表格都有一個是ASCII文件:①文本;②DHTML;③腳本(如VBScript).ASP Web頁面是包含伺服器端的腳本的HTML頁面,圖6解釋了Active Server如何處理ASP文件的工作流進程.
圖6 Active Server 處理ASP文件的工程流進程
Fig.6 The working current for Active Server treating with ASP file
2 系統簡介
根據上述關於建立基於Web的MIS系統中關鍵技術的考慮,結合深圳市給排水工程建設指揮部的具體業務運作情況,系統設計如下:
1.採用Microsoft Windows NT Server 4.0中文版作為伺服器平台
Microsoft Windows NT Server 4.0中文版是一個區域網絡的伺服器操作系統,它提供了一個功能強大、容易使用、高效率、中文信息、集中管理、保密措施完善、自動修復、不斷電系統、Internet等理想的網路操作系統所必備的環境.Microsoft Windows NT Server 4.0支持多種操作系統的工作站端,內置良好的安全措施與先進的容錯能力及Internet與Intranet功能,集中式的遠程管理、網路活動的記錄與追蹤、效率監視與管理,大大減少了網路管理的時間與費用,是目前最為理想的Web伺服器平台.
2.採用MIIS作為Web伺服器
MIIS是Windows NT Server的一個擴充部分,兩者緊密結合,保證了相同的安全(支持如數字證明、身份驗證、防火牆安全等等)、網路和管理功能,使用MIIS可以創建Web站點、改變站點的默認設置、向伺服器操作者分配任務、啟動和停止站點、管理事務、查看統計資料、本地或遠程管理任務等.MIIS使用ASP技術將腳本代碼(VBScript、Jscript)、HTML和訪問數據的組件集中,使Web實現商業、資料庫訪問、個性化和動態內容等特性.
3.採用MTS作為事務伺服器(中間伺服器)
MTS定義了一個編程模型來開發分布式的、基於組件的應用程序.MTS還提供了一個運行時基礎環境和一個圖形工具來配置和管理這些應用程序.MTS與MIIS緊密地集成在一起,為Web上的事務應用程序創建了最好的平台.
4.採用Microsoft SQL Server作為資料庫伺服器
Microsoft SQL Server正是在成熟和強大的關系模型中建立的.對於資料庫開發者、管理者和用戶,Microsoft SQL Server是一個操作方便、功能龐大的系統,它採用SQL來實現、維護和訪問資料庫,可通過諸如開放式數據連接(Open Database Connecivity,ODBC)的中介組件,使不同客戶機相互連接,而對伺服器及其它現存客戶應用程序不要求變更,它有多種實用程序允許用戶訪問它的服務,用戶可以用這些實用程序對Microsoft SQL Server進行本地和遠程管理.
5.在Web頁面和ActiveX控制項中採用ADO技術訪問資料庫
6.以Visual Basic及Visual InterDev作為應用程序的開發工具
Visual Basic及Visual InterDev具有功能強大的Intranet/Internet信息系統可視化開發功能,它提供了一套完整的Intranet/Internet資料庫應用解決方案和開發工具,為設計人員創建Web動態數據頁面提供了有效的支持手段,使得連接和訪問資料庫的過程大大簡化,減少客戶對系統維護和系統管理的工作量,提高工作效率.
Visual Basic提供了ADO等數據連接方式,多數的ActiveX控制項,強有力且高靈活性的編程能力等,可以利用Visual Basic建立Web站點的大部分應用程序.開發人員還可以使用Visual Basic的ActiveX工具(ActiveX DLL)來開發MTS應用程序.
Visual InterDev可進行Web站點的管理、開發設置.它使用動態HTML、VBScript、Jscript、ActiveX控制項,Java進程生成客戶端/伺服器腳本,是一種實用的Web應用開發工具.
應用Visual Basic和Visual InterDev兩種開發工具來開發應用程序,能夠很好地滿足系統必須具備數據輸入、設備的查詢及統計等功能.
7.採用ASP技術處理Web頁面
8.客戶端全部採用Windows 98/95加IE瀏覽器操作
以上設計方案,既符合深圳市給排水工程建設指揮部的具體業務運作情況,又滿足瘦客戶端、肥伺服器、Web動態數據頁面等新興技術.其主要優點如下:
①優化了動態Web的資料庫訪問,使得連接和訪問資料庫的過程大大簡化,用戶在客戶端/伺服器實現中能夠獲得明顯的速度優勢;
②減少開發費用.由於應用程序是基於伺服器的,訪問通道是無縫的,使用者可以直接訪問站點且不用帶附加的安裝就可使用應用程序.如果應用程序的功能需要改變,只要在伺服器上進行升級便可;
③跨平台的應用程序.應用程序被預設地表示為HTML頁面和跨平台的,可確保所有的用戶都能使用應用程序;
④底頻應用.由於大多數進程是在伺服器上完成的且只有HTML頁面被傳送給客戶(有時帶有一些小的、內置組件和腳本碼信息),Web應用程序自動地與低頻連接相符;
⑤方便的外部連接.只要通過代理伺服器(Proxy Server)就可以方便地與Internet連接.
http://www.ieee.org.cn/dispbbs.asp?boardID=41&ID=11660
㈢ VB VB6.0 Recordset對象
這個問題不是VB的問題,建議看下 sql的資料
屬性 描述
AbsolutePage 設置或返回一個可指定 Recordset 對象中頁碼的值。
AbsolutePosition 設置或返回一個值,此值可指定 Recordset 對象中當前記錄的順序位置(序號位置)。
ActiveCommand 返回與 Recordset 對象相關聯的 Command 對象。
ActiveConnection 如果連接被關閉,設置或返回連接的定義,如果連接打開,設置或返回當前的 Connection 對象。
BOF 如果當前的記錄位置在第一條記錄之前,則返回 true,否則返回 fasle。
Bookmark 設置或返回一個書簽。此書簽保存當前記錄的位置。
CacheSize 設置或返回能夠被緩存的記錄的數目。
CursorLocation 設置或返回遊標服務的位置。
CursorType 設置或返回一個 Recordset 對象的游標類型。
DataMember 設置或返回要從 DataSource 屬性所引用的對象中檢索的數據成員的名稱。
DataSource 指定一個包含要被表示為 Recordset 對象的數據的對象。
EditMode 返回當前記錄的編輯狀態。
EOF 如果當前記錄的位置在最後的記錄之後,則返回 true,否則返回 fasle。
Filter 返回一個針對 Recordset 對象中數據的過濾器。
Index 設置或返回 Recordset 對象的當前索引的名稱。
LockType 設置或返回當編輯 Recordset 中的一條記錄時,可指定鎖定類型的值。
MarshalOptions 設置或返回一個值,此值指定哪些記錄被返回伺服器。
MaxRecords 設置或返回從一個查詢返回 Recordset 對象的的最大記錄數目。
PageCount 返回一個 Recordset 對象中的數據頁數。
PageSize 設置或返回 Recordset 對象的一個單一頁面上所允許的最大記錄數。
RecordCount 返回一個 Recordset 對象中的記錄數目。
Sort 設置或返回一個或多個作為 Recordset 排序基準的欄位名。
Source 設置一個字元串值,或一個 Command 對象引用,或返回一個字元串值,此值可指示 Recordset 對象的數據源。
State 返回一個值,此值可描述是否 Recordset 對象是打開、關閉、正在連接、正在執行或正在取回數據。
Status 返回有關批更新或其他大量操作的當前記錄的狀態。
StayInSync 設置或返回當父記錄位置改變時對子記錄的引用是否改變。
方法
方法 描述
AddNew 創建一條新記錄。
Cancel 撤銷一次執行。
CancelBatch 撤銷一次批更新。
CancelUpdate 撤銷對 Recordset 對象的一條記錄所做的更改。
Clone 創建一個已有 Recordset 的副本。
Close 關閉一個 Recordset。
CompareBookmarks 比較兩個書簽。
Delete 刪除一條記錄或一組記錄。
Find 搜索一個 Recordset 中滿足指定某個條件的一條記錄。
GetRows 把多條記錄從一個 Recordset 對象中拷貝到一個二維數組中。
GetString 將 Recordset 作為字元串返回。
Move 在 Recordset 對象中移動記錄指針。
MoveFirst 把記錄指針移動到第一條記錄。
MoveLast 把記錄指針移動到最後一條記錄。
MoveNext 把記錄指針移動到下一條記錄。
?NextRecordset ?通過執行一系列命令清除當前 Recordset 對象並返回下一個 Recordset
MovePrevious 把記錄指針移動到上一條記錄。
Open 打開一個資料庫元素,此元素可提供對表的記錄、查詢的結果或保存的 Recordset 的訪問。
Requery 通過重新執行對象所基於的查詢來更新 Recordset 對象中的數據。
Resync 從原始資料庫刷新當前 Recordset 中的數據。
Save 把 Recordset 對象保存到 file 或 Stream 對象中。
Seek 搜索 Recordset 的索引以快速定位與指定的值相匹配的行,並使其成為當前行。
Supports 返回一個布爾值,此值可定義 Recordset 對象是否支持特定類型的功能。
Update 保存所有對 Recordset 對象中的一條單一記錄所做的更改。
UpdateBatch 把所有 Recordset 中的更改存入資料庫。請在批更新模式中使用。
事件
Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual C++, and Visual J++ languages can handle events).事件 描述
EndOfRecordset 當試圖移動到超過 Recordset 結尾的行時被觸發。
FetchComplete 當非同步操作中的所有記錄均被讀取後被觸發。
FetchProgress 在非同步操作期間被定期地觸發,報告已讀取多少記錄。
FieldChangeComplete Field 對象的值更改被觸發。
MoveComplete Recordset 中的當前位置更改後被觸發。
RecordChangeComplete 一條記錄更改之後被觸發。
?WillChangeField ?在 Field 對象的值更改之前被觸發
RecordsetChangeComplete 在 Recordset 更改之後被觸發。
WillChangeRecord 在一條記錄更改之前被觸發。
WillChangeRecordset 在 Recordset 更改之前被觸發。
WillMove 在 Recordset 中的當前位置更改之前被觸發。
集合
集合 描述
Fields 指示在此 Recordset 對象中 Field 對象的數目。
Properties 包含所有 Recordset 對象中的 Property 對象。
㈣ vb的Adodc1.Recordset.Filter怎麼用
區別當然大了,兩個都是位元組轉換,第一個是位元組轉換過濾器,第二個是查找一種位元組碼的數據,這是我的理解
㈤ 如何使用jsp將在javabean中取得的recordset顯示出來
簡單的說吧,
ResultSet rs;
讓你的rs不為空,然後
如果要顯示的內容是String類型的就用
System.out.print(rs.getString(1));
如果是int類型的就用
System.out.print(rs.getInt(2));
就是這樣的方式,其他類型的你可以自己推理了。
後邊括弧里的數字是欄位所在的位置,從1開始。
如果不知道是第幾個用名字也可以,例如一個String類型的,欄位名叫NAME就可以是
System.out.print(rs.getString("NAME"));
別忘記了引號。
㈥ 關於ASP網站XSS漏洞,請幫忙過濾一下,謝謝
FunctionCheckxss(byValChkStr)
DimStr
Str=ChkStr
IfIsNull(Str)Then
CheckStr=""
ExitFunction
EndIf
Str=Replace(Str,"&","&")
Str=Replace(Str,"'","´")
Str=Replace(Str,"""",""")
Str=Replace(Str,"<","<")
Str=Replace(Str,">",">")
Str=Replace(Str,"/","/")
Str=Replace(Str,"*","*")
Dimre
Setre=NewRegExp
re.IgnoreCase=True
re.Global=True
re.Pattern="(w)(here)"
Str=re.Replace(Str,"$1here")
re.Pattern="(s)(elect)"
Str=re.Replace(Str,"$1elect")
re.Pattern="(i)(nsert)"
Str=re.Replace(Str,"$1nsert")
re.Pattern="(c)(reate)"
Str=re.Replace(Str,"$1reate")
re.Pattern="(d)(rop)"
Str=re.Replace(Str,"$1rop")
re.Pattern="(a)(lter)"
Str=re.Replace(Str,"$1lter")
re.Pattern="(d)(elete)"
Str=re.Replace(Str,"$1elete")
re.Pattern="(u)(pdate)"
Str=re.Replace(Str,"$1pdate")
re.Pattern="(s)(or)"
Str=re.Replace(Str,"$1or")
re.Pattern="( )"
Str=re.Replace(Str,"$1or")
'----------------------------------
re.Pattern="(java)(script)"
Str=re.Replace(Str,"$1script")
re.Pattern="(j)(script)"
Str=re.Replace(Str,"$1script")
re.Pattern="(vb)(script)"
Str=re.Replace(Str,"$1script")
'----------------------------------
IfInstr(Str,"expression")>0Then
Str=Replace(Str,"expression","expression",1,-1,0)'防止xss注入
EndIf
Setre=Nothing
Checkxss=Str
EndFunction
使用方法:Checkxss(request.QueryString("變數")),或者(request.form("表單名"))
㈦ 100分!!!!!java與.net,編程的請進
1.Java 是 簡 單 的
Java 與 C++ 極 為 相 似, 但 卻 簡 單 得 多。 高 級 編 程 語 言 的 所 有 特 性 中,
不 是 絕 對 需 要 的 都 已 刪 去 了。 例 如, Java 沒 有 算 符 過 載、 標 題 文 件、
預 處 理、 指 針 運 算、 結 構、 聯 合、 多 維 數 組、 模 板 及 隱 式 類 型 變 換。 如
果 你 知 道 一 點 C、 C++ 或 Pascal, 你 很 快 就 會 駕 馭 Java。 這 里 是 一 個 簡 單 的 Java Hello World 程 序:
public class HelloInternet {
public static void main(String argv[]) {
System.out.println(「Hello In-ternet!」)
}
}
2.Java 是 面 向 對 象 的
Java 是 一 種 面 向 對 象 的 編 程 語 言。 除 了 簡 單 的 類 型, 如 數 字 和 布 爾 算
子 之 外, Java 中 的 大 部 分 都 是 對 象。
正 如 任 何 面 向 對 象 的 語 言 一 樣, Java 代 碼 也 按 類 組 織。 每 個 類 定 義 一
組 規 定 對 象 行 為 的 方 法。 一 個 類 可 以 繼 承 另 一 個 類 的 行 為。 在 類 的
根 層 次 上, 通 常 是 類 對 象。
Java 支 持 單 繼 承 類 層 次 結 構。 這 就 是 說, 每 個 類 一 次 只 能 繼 承 一 個 別
的 類。 有 些 語 言 允 許 多 繼 承 性, 但 這 可 能 造 成 混 亂, 使 語 言 不 必 要 地
復 雜 化。 例 如, 難 以 想 像, 一 個 對 象 會 繼 承 兩 個 完 全 不 同 的 類 的 行
為。
Java 還 支 持 摘 要 類 的 接 口。 這 允 許 編 程 人 員 先 定 義 接 口 的 方 法, 而 不
必 急 於 馬 上 確 定 方 法 的 實 現。 一 個 類 可 以 施 行 多 個 接 口, 從 而 具 有
真 正 多 繼 承 性 的 許 多 優 點。 一 個 對 象 也 可 實 施 任 意 數 量 的 接 口。 Java
接 口 與 IDL 接 口 極 其 相 似。 很 容 易 建 立 IDLJ 編 譯 器。 這 就 是 說, Java 可
用 於 CORBA 對 象 系 統 來 建 立 分 布 式 對 象 系 統。 鑒 於 在 許 多 計 算 機 系 統
中 都 采 用 IDL 接 口 和 CORBA 對 象 系 統, 這 種 兼 容 性 是 重 要 的。
3.Java 是 靜 態 類 型 的
在 一 個 Java 程 序 中, 必 須 定 義 所 用 對 象 (數 字、 字 符、 數 組 等) 的 類 型。
這 有 助 於 編 程 人 員 很 快 發 現 問 題, 因 為 當 程 序 編 譯 時 可 以 檢 測 類 型
錯 誤。
不 過, Java 系 統 中 的 對 象 也 有 動 態 類 型。 要 求 一 個 對 象 為 動 態 類 型 往
往 是 可 能 的, 所 以 編 程 人 員 寫 的 程 序 可 以 對 不 同 類 型 的 對 象 做 不 同
的 事。
4.Java 是 編 譯 型 的
當 運 行 Java 程 序 時, 它 首 先 被 編 譯 成 字 節 代 碼。 字 節 代 碼 非 常 類 似 於
機 器 指 令, 所 以 Java 程 序 非 常 高 效。 然 而, 字 節 代 碼 並 不 專 對 一 種 特
定 的 機 器, 所 以 Java 程 序 無 需 重 新 編 譯 便 可 在 眾 多 不 同 的 計 算 機 上
執 行。
Java 源 程 序 被 編 譯 成 類 文 件, 它 相 當 於 程 序 的 字 節 代 碼 表 現。 在 一 個
Java 類 文 件 中, 所 有 對 方 法 及 實 例 變 量 的 參 照 均 按 名 進 行, 並 在 第 一
次 執 行 代 碼 時 加 以 分 辨。 這 使 得 代 碼 更 通 用, 更 不 易 受 修 改 的 影 響,
而 仍 具 高 效。
5.Java 是 體 系 結 構 中 立 的
Java 語 言 對 每 種 計 算 機 都 一 樣。 比 如, 簡 單 的 類 型 都 是 不 變 的: 整 數
總 是 32 位, 長 整 數 總 是 64 位。 令 人 奇 怪 的 是, 諸 如 C 及 C++ 等 時 髦 的
編 程 語 言 卻 不 是 這 樣。 由 於 這 些 語 言 定 義 如 此 自 由, 每 種 編 譯 器 及
開 發 環 境 便 各 有 不 同 了, 這 使 程 序 的 移 植 成 為 討 厭 的 問 題。 Java 程 序
的 移 植 卻 很 容 易, 而 且 不 需 要 進 行 重 新 編 譯。
6.Java 是 健 全 的
Java 程 序 不 可 能 造 成 計 算 機 崩 潰。 Java 系 統 仔 細 檢 測 對 內 存 的 每 次
訪 問, 確 認 它 是 合 法 的, 而 且 不 致 引 起 任 何 問 題。
不 過, 即 使 Java 程 序 也 可 能 有 錯 誤。 如 果 出 現 某 種 出 乎 意 料 之 事, 程
序 不 會 崩 潰, 而 把 該 例 外 拋 棄。 程 序 會 發 現 這 類 例 外, 並 加 以 處 理。
傳 統 的 程 序 可 以 訪 問 計 算 機 的 全 部 內 存。 程 序 可 能 (無 意 識 地) 修 改
內 存 中 的 任 何 值, 這 就 會 造 成 問 題。 Java 程 序 只 能 訪 問 內 存 中 允 許 它
們 訪 問 的 那 些 部 分, 所 以 Java 程 序 不 可 能 修 改 不 擬 修 改 的 值。
7.Java 是 小 巧 的
由 於 Java 的 設 計 是 要 在 小 的 計 算 機 上 運 行, 作 為 一 種 編 程 語 言 來 說
其 系 統 是 相 對 較 小 的。 它 能 有 效 地 在 4MB 以 上 RAM 的 PC 機 上 運 行。 Java
翻 譯 器 只 占 用 幾 百 KB。 這 種 翻 譯 器 對 Java 的 平 台 無 關 性 和 可 移 植 性
是 可 靠 的。
由 於 Java 很 小, 它 對 內 存 很 小 的 計 算 機, 如 基 於 Java 的 PC 機, 以 及 電
視 機、 烤 箱、 電 話 機 及 家 用 計 算 機 等, 是 很 理 想 的。
8.Java 是 多 線 程 的
Java 程 序 可 以 執 行 一 個 以 上 的 線 程。 比 如, 它 可 以 在 一 個 線 程 中 完 成
某 一 耗 時 的 計 算, 而 其 它 線 程 與 用 戶 進 行 交 互 對 話。 所 以 用 戶 不 必
停 止 工 作, 等 待 Java 程 序 完 成 耗 時 的 計 算。
在 多 線 程 環 境 中 的 編 程 通 常 是 困 難 的, 因 為 許 多 東 西 可 能 同 時 出
現。 但 是, Java 提 供 了 易 於 使 用 的 同 步 特 性, 使 編 程 更 為 方 便。
Java 線 程 通 常 被 映 射 為 實 際 的 操 作 系 統 線 程, 只 要 底 層 操 作 系 統 支
持 這 種 映 射。 因 此, 用 Java 寫 的 應 用 程 序 可 說 是 「MP 熱」。 這 就 是 說,
如 果 它 們 在 多 處 理 器 機 器 上 運 行, 它 們 更 將 表 現 不 凡。
9.Java 是 可 收 集 無 用 的 存 儲 單 元 的
用 C 及 C++ 寫 軟 件 的 編 程 人 員 必 須 仔 細 跟 蹤 所 用 的 內 存 塊。 當 一 個 塊
不 再 使 用 時, 他 們 務 必 讓 程 序 釋 放 它, 從 而 方 可 再 用。 在 大 的 項 目
中, 這 可 能 很 困 難, 並 往 往 成 為 出 錯 和 內 存 不 足 的 根 源。
在 Java 的 情 況 下, 編 程 人 員 不 必 為 內 存 管 理 操 心。 Java 系 統 有 一 個 叫
做 「無 用 單 元 收 集 器」 的 內 置 程 序, 它 掃 描 內 存, 並 自 動 釋 放 那 些 不
再 使 用 的 內 存 塊。
10.Java 是 快 速 的
Java 比 典 型 的 腳 本 語 言 大 為 有 效, 但 它 比 C 慢 20 倍。 這 對 大 多 數 應 用
是 可 接 受 的。
不 久 的 將 來, 代 碼 生 成 器 就 可 供 利 用 了, 這 將 使 Java 程 序 幾 近 於 用 C
或 C++ 編 寫 的 程 序 那 么 快。
11.Java 是 安 全 的
Java 程 序 沒 有 指 針, 而 且 象 這 樣 的 字 節 代 碼 程 序 強 在 類 型 上, 所 以 在
執 行 之 前 它 可 能 驗 證 Java 程 序。 被 驗 證 的 Java 程 序 得 以 保 證 不 突 破
Java 語 言 的 任 何 限 制, 而 且 可 以 安 全 地 執 行。 Java 字 節 代 碼 驗 證 被
Web 瀏 覽 器 用 來 確 保 小 程 序 不 含 病 毒。
12.Java 是 可 擴 展 的
Java 程 序 可 與 用 其 它 語 言 編 寫 的 現 存 程 序 庫 連 接。 由 於 Java 數 據 結
構 與 C 的 數 據 結 構 的 類 型 極 為 相 似, 這 是 相 當 方 便 的。 最 大 的 問 題 在
於, 現 有 多 線 程 程 序 庫 為 數 不 多。
Java 程 序 可 以 聲 明 某 些 方 法 是 內 部 的, 然 後, 把 這 些 內 部 方 法 映 射 成
軟 件 庫 所 定 義 的 功 能, 從 而 動 態 地 鏈 接 到 虛 擬 機
--------------------------------------------------------------------
1.標准集成:XML、SOAP及其它
過去,微軟的體系結構建立在COM/DCOM基礎上,COM/DCOM是進程間通信的二進制標准。雖然這個標准本身沒有什麼失誤,但是它與微軟以外的領域格格不入。也就是說,這個標准成了實現與其它軟體平台互操作的瓶頸。
除此之外,數據也是一個問題。雖然ADO簡化了數據訪問,但是把數據從一個地方傳送到另外一個地方就成了問題。ADO Recordset(記錄集)對象是一個存儲了數據的二進制結構,而這種二進制格式對於非微軟的平台沒有任何意義。
.Net彌補了這些缺陷,因為它完全基於標准。比如,數據用XML的格式通過進程邊界,而這個數據有一個到XSD的連接,所以任何客戶端都可以正確地轉化數據。
SOAP基於XML,用於與Web服務的通信。集成SOAP以後,不管客戶端運行的是不是微軟的操作系統,都可以實現簡單的可編程訪問。
2.簡化應用
COM所面臨的一個頭痛的問題就是應用。COM利用Windows注冊表來定位機器上的組件。這個想法是不錯的:每個注冊的組件只有一個實例,所有的應用程序都使用相同的版本。COM具有向後兼容性,也就是說新版本兼容老版本,但是開發人員可能會破壞這種兼容性。
.Net則採用了不同的方法:它根本就沒有使用注冊表。相反,微軟的建議是每個應用程序使用自己局部的組件(在.Net稱為「assembly」)。利用這種方法,用於應用程序Foo的Assembly X如果發生變化,Assembly X的Application Bar不會受到任何影響。這種方法聽起來好象以前一台機器上同一個DLL的多個拷貝,的確是這樣。不過你不會遇到應用程序查找Windows\System32目錄的問題。
由於.Net不使用注冊表,很多應用都可以用簡單的拷貝命令來完成,通常沒有必要開發安裝程序。此外,應用程序不會瑣定assembly,所以升級DLL的時候不必關閉應用程序。
3.Web服務支持
在流行的Web服務方面,微軟發揮著重要的作用,而.Net為開發Web服務帶來了前所未有的便利。用Notepad就可以建立簡單的Web服務,甚至不必利用編譯器,只要對它們進行簡單的調用即可,因為.Net會對它們進行編譯,甚至提供一個測試頁供用戶檢驗其功能。.Net 擁有所有必需的渠道,可以生成用戶所需的所有文件,比如WSDL文件。
.Net也是一個聰明的Web服務使用者:只要設置了指向某個Web服務的索引,你就可以把它當作本地的assembly。你可以獲得完整的Intel許可和功能實現幫助。
Web服務對於發送數據是非常重要的,感謝ADO.Net,Web服務可以利用簡單或者復雜的數據,並以XML格式把它們發送到任何客戶端,最後設置一個鏈接,指回到一個描述數據模式的XSD。
4.用於所有.Net語言的標准工具集
最終,你會擁有一個適用於所有語言的集成工具集。你會擁有一個統一的IDE、調試工具以及其它類似的工具。因此,其它公司可以把他們的語言嵌入IDE環境,並獲得.Net工具所有的支持。比如富士通開發了netCOBOL .Net,它已經直接集成到IDE中,因此可以用 COBOL編寫Web服務和Windows應用並獲得微軟提供的調試和profiling(監管)工具。
.Net是個開放的架構,所以其它廠商也可以提供自己的工具。比如Borland,該公司已經宣布其下一版Delphi將具有建立.Net應用的功能,同時它也保證,Delphi會擁有自己的IDE,不會嵌入Visual Studio .Net。
5.對移動設備的支持
Visual Studio .Net發布不久,微軟就推出了移動Internet工具包(Microsoft Mobile Internet Toolkit ,MMIT),以便用.Net構建移動應用。該工具包提供了可視化功能,你可以直觀地拖動和下拉麵向移動設備的窗體和控制項。該工具包有利於正確書寫標記語言(比如WML、WAP等等)。
.Net簡化架構(.Net Compact Framework)不久就會面市,它是.Net架構的縮略版,設計用於Pocket PC設備。有了這個架構,開發人員就可以開發出豐富的Pocket PC計算機應用。你可以編寫一個運行於小型設備上的應用,比如用於Pocket PC設備或者具有Web功能的手機。事實上,MMIT包含了很多模擬程序,它們使用了真正為這類設備編寫的ROM代碼,所以在你的應用程序投入使用之前,可以首先測試其用於此類設備時的性能。
6.代碼管理
.Net管理用戶的代碼,從很多方面看,這一點都是很重要的,比如減少bug以及構建更多可擴展的應用。.Net可以處理以下操作:內存分配和回收,進程及線程的創建和終止,以及運行代碼的訪問許可。
VB開發人員先前面臨的問題——比如內存管理、線程和進程創建——現在都可以由.Net來處理。而C++程序員可以轉向C#,.Net代替他們處理這些操作後,內存泄露和其它bug出現的可能性將大大減少。擁有了被管理的代碼,你可以訪問.Net所有跨語言的能力。
7.平台獨立
雖然.Net是為微軟的操作系統創建的,但是微軟的確為ECMA標准委員會發布了一部分框架和C#。比如,Mono project實現了Linux的.Net,包括架構和C#編譯器。這意味著很多應用(特別是基於Web的應用)一次編寫完成後就可以運行於多種平台上。
8.充足的學習資源
.Net的學習曲線非常重要,可能.Net的方面的書要比其它所有編程技術的書都多。此外,微軟和第三方團體開設了很多課程,可以讓開發人員很快就上手。最後,很多網站為開發人員員學習.Net提供了技術和指導。
9.現代化語言
VB.Net和C#都是現代化的語言。它們完全是面向對象的,設計的時候消除了很多VB 和C++的矛盾。這兩種語言使用了多層式架構 (n-tier),這是一種基於組件的方法。
比如,C#取消了指針和其它一些結構,它們曾經給C++程序員(特別是新手)帶來很多嚴重的問題。代碼由.Net架構管理後,VB.Net 和C#都從中受益。這個架構還包括一些基礎的對象,它們是開發多線程、支持XML等應用所必須的。
10.跨語言標准基本類型
VB開發人員曾經面臨一個致命的問題:VB中的字元串與C++中的字元串不同,所以調用Windows API函數的時候會出現一些問題。.Net確定了所有類型的標準定義,所以VB中的字元串和C#中的字元串相同,也和netCOBOL .Net中的字元串相同。這意味著你再也不必擔心語言A中的整型數據是32位而語言B中只有16位。你可以確信不同語言的數據類型都相同,可以更好地進行跨語言集成。
優點多於缺點
.Net具有很多明顯的優點,可以提高開發人員的效率,減少bug,加快應用開發並簡化使用。IT人員對.Net保持了應有的警惕,因為它畢竟還是個新事物,需要有一個比較艱難的學習曲線。但是對於大多數組織而言,其優點遠遠多於缺點。有了.Net,你可以在未來的開發項目中贏得更高的生產力。
㈧ jsp修改access資料庫
結果被我自己解決了。。。 。。。直接用MM_Username傳值就好了。。。 。。。
㈨ Java中實現分頁效果的詳細代碼
<head>
<%
const MaxPerPage=20
dim sql
dim rs
dim totalPut
dim CurrentPage
dim TotalPages
dim i,j
%>
</head>
<body>
<%
conn = "DBQ=" + server.mappath("wj028.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
sql = "SELECT * FROM USER order by id desc"
set rs=server.createobject("adodb.recordset")
rs.open SQL,conn,1,1
rs.MoveFirst
rs.pagesize=MaxPerPage
howmanyfields=rs.Fields.Count-1
If trim(Request("Page"))<>"" then
CurrentPage= CLng(request("Page"))
If CurrentPage> rs.PageCount then
CurrentPage = rs.PageCount
End If
Else
CurrentPage= 1
End If
if rs.eof then
response.write "<p align='center'>沒有記錄!</p>"
else
totalPut=rs.recordcount
if CurrentPage<>1 then
if (currentPage-1)*MaxPerPage<totalPut then
rs.move(currentPage-1)*MaxPerPage
dim bookmark
bookmark=rs.bookmark
end if
end if
dim n,k
if (totalPut mod MaxPerPage)=0 then
n= totalPut \ MaxPerPage
else
n= totalPut \ MaxPerPage + 1
end if%>
<% i=0
do while not rs.EOF and i<maxperpage
%>
<%
rs.movenext
i=i+1
loop
%>
第<%=currentpage%>頁
共<%=n%>頁
<%
k=currentpage
if k<>1 then
response.write "[<b>"+"<a href='list.asp?page=1'>首頁</a></b>]"
response.write "[<b>"+"<a href='list.asp?page="+cstr(k-1)+"'>上一頁</a></b>]"
else
Response.Write "[首頁][上一頁]"
end if
if k<>n then
response.write "[<b>"+"<a href='list.asp?page="+cstr(k+1)+"'>下一頁</a></b>] "
response.write "[<b>"+"<a href='list.asp?page="+cstr(n)+"'>尾頁</a></b>] "
else
Response.Write "[下一頁][尾頁]"
end if
%>
<%
end if
set rs=nothing
set conn=nothing
%>
</body>