彭登云+徐洪位
摘 要 JSP技術有點類似ASP技術,它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)上運行,在網(wǎng)站設計中得到了廣泛的應用。
關鍵詞 JSP;表單;連接
中圖分類號:TP311 文獻標識碼:A 文章編號:1671-7597(2014)03-0050-02
1 問題的提出
JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。
在網(wǎng)上,有關很多表單驗證的實現(xiàn)方法,但JSP服務器端和客戶端對用戶提交的數(shù)據(jù)進行驗證時,它們處理的方法應遵循各自的腳本語言的語法規(guī)則,下面說明如何在JSP程序設計中表單的驗證實現(xiàn)方法。
2 客戶端表單驗證的基本原理
2.1 客戶端表單驗證的基本原理
表單是實現(xiàn)用戶和瀏覽器之間信息交換的重要工具,無論是登陸界面還是用戶注冊界面,都通過表單來提取用戶信息??蛻舳说臑g覽器運行時采用JavaScriPt作為腳本語言,主要實現(xiàn)用戶在客戶端輸入數(shù)據(jù)時,數(shù)據(jù)的合法性驗證,即數(shù)據(jù)是否滿足常規(guī)要求,如是否輸入了數(shù)據(jù),電子郵件格式是否正確等。在進行驗證時主要通過在表單添加Onsubmit()事件函數(shù)和在“提交”按鈕上添加onclick動作驗證函數(shù)實現(xiàn),當函數(shù)的返回值為“True”時,通過驗證,頁面轉移到提交程序執(zhí)行,當函數(shù)返回值為“False”時,頁面中止提交程序的運行。
2.2 客戶端表單驗證時的主要過程
首先建立客戶端的表單,如下所示:
。
注意onsubmit事件的寫法,表示執(zhí)行提交程序前先進行驗證,并返回一個值,或下面的方法進行:
…表單對象…
該方法通過添加onclick動作實現(xiàn)。
3 JSP服務器端表單數(shù)據(jù)驗證的基本方法
3.1 通過瀏覽器端驗證
表單數(shù)據(jù)通過瀏覽器端的Javascript函數(shù)進行驗證。由于驗證數(shù)據(jù)不需要提交給服務器,瀏覽器端的驗證速度快,若有不符合要求的輸入,響應信息快速的返回給用戶。一個瀏覽器端驗證的過程如圖1所示,表單提交,若通過驗證則提交服務器處理,不成功則回饋給用戶。
圖1 瀏覽器端驗證原理圖
以對用戶在客戶端輸入的用戶名和密碼進行合法性驗證,其主要代碼如下:
function check_form(thisForm)
{
error_string = “”;
if((message=checkusername(thisForm.username))!=””)
{
error_string=”UserName:”
error_string += message;
alert(error_string);
return false;
}
if((message = checkpassword(thisForm.pass))!=””)
{
error_string=”Password:”
error_string += message;
alert(error_string);
return false;
}
return true;
}
其中,返回true,表示輸入數(shù)據(jù)合法,通過驗證;返回false,則數(shù)據(jù)為非法輸入,程序中斷運行,返回重新輸入,驗證未能通過。
3.2 服務器端驗證
表單數(shù)據(jù)通過服務器端驗證方法中,客戶端的數(shù)據(jù)需提交到服務器上的應用程序進行驗證,其過程與圖1類似,只是驗證的位置在服務器上,在進行JSP服務器端表單數(shù)據(jù)驗證的主要過程如下。
1)接受客戶端用戶提供的表單數(shù)據(jù),主要代碼如下:
<%
String user_name=request.getParameter(“name”) //接受提交的用戶名;
String user_name=request.getParameter(“pass”) //接受提交的密碼;
%>
2)讀出保存在數(shù)據(jù)庫中的、系統(tǒng)設置的數(shù)據(jù):
①加載JDBC數(shù)據(jù)庫驅動程序;
②在JSP頁面中建立與數(shù)據(jù)庫中表相應對應的記錄集:
ResultSet rs=st.executeQuery(“SQL查詢字符串”);
Admin_name=rs.getString(“name”);
Admin_name=rs.getString(“pass”);
③將用戶提交的數(shù)據(jù)同記錄集中的數(shù)據(jù)進行比較,以便驗證數(shù)據(jù)的正確性;
If(admin_name.equals(user_name) && admin_pass.equals(user_pass)),當值為True時,表示提交的數(shù)據(jù)正確,為“False”表示提交的數(shù)據(jù)不正確。
4 注意事項
在進行數(shù)據(jù)比較時,要注意數(shù)據(jù)比較運算符的選取,關系運算符用于比較兩個數(shù)值之間的大小,不能用于兩個字符串變量的比較,兩個字符串變量的比較只能采用方法equals實現(xiàn),其原因在于值類型是存儲在內(nèi)存中的堆棧(以后簡稱棧),而引用類型的變量在棧中僅僅是存儲引用類型變量的地址,而其本身則存儲在堆中。==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同。==比較的是2個對象的地址,而equals比較的是2個對象的內(nèi)容。顯然,當equals為true時,==不一定為true。
參考文獻
[1]龔永罡.Java Web應用開發(fā)實用教程[M].北京:機械工業(yè)出版社,2010.
作者簡介
彭登云(1971-),女,重慶銅梁人,本科,重慶財經(jīng)職業(yè)學院實踐教學中心實驗師,研究方向:機房管理維護、網(wǎng)頁設計。
徐洪位(1971-),男,重慶永川人,本科,碩士,重慶財經(jīng)職業(yè)學院應用設計系高級講師,研究方向:程序設計。endprint
摘 要 JSP技術有點類似ASP技術,它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)上運行,在網(wǎng)站設計中得到了廣泛的應用。
關鍵詞 JSP;表單;連接
中圖分類號:TP311 文獻標識碼:A 文章編號:1671-7597(2014)03-0050-02
1 問題的提出
JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。
在網(wǎng)上,有關很多表單驗證的實現(xiàn)方法,但JSP服務器端和客戶端對用戶提交的數(shù)據(jù)進行驗證時,它們處理的方法應遵循各自的腳本語言的語法規(guī)則,下面說明如何在JSP程序設計中表單的驗證實現(xiàn)方法。
2 客戶端表單驗證的基本原理
2.1 客戶端表單驗證的基本原理
表單是實現(xiàn)用戶和瀏覽器之間信息交換的重要工具,無論是登陸界面還是用戶注冊界面,都通過表單來提取用戶信息??蛻舳说臑g覽器運行時采用JavaScriPt作為腳本語言,主要實現(xiàn)用戶在客戶端輸入數(shù)據(jù)時,數(shù)據(jù)的合法性驗證,即數(shù)據(jù)是否滿足常規(guī)要求,如是否輸入了數(shù)據(jù),電子郵件格式是否正確等。在進行驗證時主要通過在表單添加Onsubmit()事件函數(shù)和在“提交”按鈕上添加onclick動作驗證函數(shù)實現(xiàn),當函數(shù)的返回值為“True”時,通過驗證,頁面轉移到提交程序執(zhí)行,當函數(shù)返回值為“False”時,頁面中止提交程序的運行。
2.2 客戶端表單驗證時的主要過程
首先建立客戶端的表單,如下所示:
。
注意onsubmit事件的寫法,表示執(zhí)行提交程序前先進行驗證,并返回一個值,或下面的方法進行:
…表單對象…
該方法通過添加onclick動作實現(xiàn)。
3 JSP服務器端表單數(shù)據(jù)驗證的基本方法
3.1 通過瀏覽器端驗證
表單數(shù)據(jù)通過瀏覽器端的Javascript函數(shù)進行驗證。由于驗證數(shù)據(jù)不需要提交給服務器,瀏覽器端的驗證速度快,若有不符合要求的輸入,響應信息快速的返回給用戶。一個瀏覽器端驗證的過程如圖1所示,表單提交,若通過驗證則提交服務器處理,不成功則回饋給用戶。
圖1 瀏覽器端驗證原理圖
以對用戶在客戶端輸入的用戶名和密碼進行合法性驗證,其主要代碼如下:
function check_form(thisForm)
{
error_string = “”;
if((message=checkusername(thisForm.username))!=””)
{
error_string=”UserName:”
error_string += message;
alert(error_string);
return false;
}
if((message = checkpassword(thisForm.pass))!=””)
{
error_string=”Password:”
error_string += message;
alert(error_string);
return false;
}
return true;
}
其中,返回true,表示輸入數(shù)據(jù)合法,通過驗證;返回false,則數(shù)據(jù)為非法輸入,程序中斷運行,返回重新輸入,驗證未能通過。
3.2 服務器端驗證
表單數(shù)據(jù)通過服務器端驗證方法中,客戶端的數(shù)據(jù)需提交到服務器上的應用程序進行驗證,其過程與圖1類似,只是驗證的位置在服務器上,在進行JSP服務器端表單數(shù)據(jù)驗證的主要過程如下。
1)接受客戶端用戶提供的表單數(shù)據(jù),主要代碼如下:
<%
String user_name=request.getParameter(“name”) //接受提交的用戶名;
String user_name=request.getParameter(“pass”) //接受提交的密碼;
%>
2)讀出保存在數(shù)據(jù)庫中的、系統(tǒng)設置的數(shù)據(jù):
①加載JDBC數(shù)據(jù)庫驅動程序;
②在JSP頁面中建立與數(shù)據(jù)庫中表相應對應的記錄集:
ResultSet rs=st.executeQuery(“SQL查詢字符串”);
Admin_name=rs.getString(“name”);
Admin_name=rs.getString(“pass”);
③將用戶提交的數(shù)據(jù)同記錄集中的數(shù)據(jù)進行比較,以便驗證數(shù)據(jù)的正確性;
If(admin_name.equals(user_name) && admin_pass.equals(user_pass)),當值為True時,表示提交的數(shù)據(jù)正確,為“False”表示提交的數(shù)據(jù)不正確。
4 注意事項
在進行數(shù)據(jù)比較時,要注意數(shù)據(jù)比較運算符的選取,關系運算符用于比較兩個數(shù)值之間的大小,不能用于兩個字符串變量的比較,兩個字符串變量的比較只能采用方法equals實現(xiàn),其原因在于值類型是存儲在內(nèi)存中的堆棧(以后簡稱棧),而引用類型的變量在棧中僅僅是存儲引用類型變量的地址,而其本身則存儲在堆中。==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同。==比較的是2個對象的地址,而equals比較的是2個對象的內(nèi)容。顯然,當equals為true時,==不一定為true。
參考文獻
[1]龔永罡.Java Web應用開發(fā)實用教程[M].北京:機械工業(yè)出版社,2010.
作者簡介
彭登云(1971-),女,重慶銅梁人,本科,重慶財經(jīng)職業(yè)學院實踐教學中心實驗師,研究方向:機房管理維護、網(wǎng)頁設計。
徐洪位(1971-),男,重慶永川人,本科,碩士,重慶財經(jīng)職業(yè)學院應用設計系高級講師,研究方向:程序設計。endprint
摘 要 JSP技術有點類似ASP技術,它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應用是跨平臺的,既能在Linux下運行,也能在其他操作系統(tǒng)上運行,在網(wǎng)站設計中得到了廣泛的應用。
關鍵詞 JSP;表單;連接
中圖分類號:TP311 文獻標識碼:A 文章編號:1671-7597(2014)03-0050-02
1 問題的提出
JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務端的資源的應用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設計和顯示分離,支持可重用的基于組件的設計,使基于Web的應用程序的開發(fā)變得迅速和容易。
在網(wǎng)上,有關很多表單驗證的實現(xiàn)方法,但JSP服務器端和客戶端對用戶提交的數(shù)據(jù)進行驗證時,它們處理的方法應遵循各自的腳本語言的語法規(guī)則,下面說明如何在JSP程序設計中表單的驗證實現(xiàn)方法。
2 客戶端表單驗證的基本原理
2.1 客戶端表單驗證的基本原理
表單是實現(xiàn)用戶和瀏覽器之間信息交換的重要工具,無論是登陸界面還是用戶注冊界面,都通過表單來提取用戶信息??蛻舳说臑g覽器運行時采用JavaScriPt作為腳本語言,主要實現(xiàn)用戶在客戶端輸入數(shù)據(jù)時,數(shù)據(jù)的合法性驗證,即數(shù)據(jù)是否滿足常規(guī)要求,如是否輸入了數(shù)據(jù),電子郵件格式是否正確等。在進行驗證時主要通過在表單添加Onsubmit()事件函數(shù)和在“提交”按鈕上添加onclick動作驗證函數(shù)實現(xiàn),當函數(shù)的返回值為“True”時,通過驗證,頁面轉移到提交程序執(zhí)行,當函數(shù)返回值為“False”時,頁面中止提交程序的運行。
2.2 客戶端表單驗證時的主要過程
首先建立客戶端的表單,如下所示:
。
注意onsubmit事件的寫法,表示執(zhí)行提交程序前先進行驗證,并返回一個值,或下面的方法進行:
…表單對象…
該方法通過添加onclick動作實現(xiàn)。
3 JSP服務器端表單數(shù)據(jù)驗證的基本方法
3.1 通過瀏覽器端驗證
表單數(shù)據(jù)通過瀏覽器端的Javascript函數(shù)進行驗證。由于驗證數(shù)據(jù)不需要提交給服務器,瀏覽器端的驗證速度快,若有不符合要求的輸入,響應信息快速的返回給用戶。一個瀏覽器端驗證的過程如圖1所示,表單提交,若通過驗證則提交服務器處理,不成功則回饋給用戶。
圖1 瀏覽器端驗證原理圖
以對用戶在客戶端輸入的用戶名和密碼進行合法性驗證,其主要代碼如下:
function check_form(thisForm)
{
error_string = “”;
if((message=checkusername(thisForm.username))!=””)
{
error_string=”UserName:”
error_string += message;
alert(error_string);
return false;
}
if((message = checkpassword(thisForm.pass))!=””)
{
error_string=”Password:”
error_string += message;
alert(error_string);
return false;
}
return true;
}
其中,返回true,表示輸入數(shù)據(jù)合法,通過驗證;返回false,則數(shù)據(jù)為非法輸入,程序中斷運行,返回重新輸入,驗證未能通過。
3.2 服務器端驗證
表單數(shù)據(jù)通過服務器端驗證方法中,客戶端的數(shù)據(jù)需提交到服務器上的應用程序進行驗證,其過程與圖1類似,只是驗證的位置在服務器上,在進行JSP服務器端表單數(shù)據(jù)驗證的主要過程如下。
1)接受客戶端用戶提供的表單數(shù)據(jù),主要代碼如下:
<%
String user_name=request.getParameter(“name”) //接受提交的用戶名;
String user_name=request.getParameter(“pass”) //接受提交的密碼;
%>
2)讀出保存在數(shù)據(jù)庫中的、系統(tǒng)設置的數(shù)據(jù):
①加載JDBC數(shù)據(jù)庫驅動程序;
②在JSP頁面中建立與數(shù)據(jù)庫中表相應對應的記錄集:
ResultSet rs=st.executeQuery(“SQL查詢字符串”);
Admin_name=rs.getString(“name”);
Admin_name=rs.getString(“pass”);
③將用戶提交的數(shù)據(jù)同記錄集中的數(shù)據(jù)進行比較,以便驗證數(shù)據(jù)的正確性;
If(admin_name.equals(user_name) && admin_pass.equals(user_pass)),當值為True時,表示提交的數(shù)據(jù)正確,為“False”表示提交的數(shù)據(jù)不正確。
4 注意事項
在進行數(shù)據(jù)比較時,要注意數(shù)據(jù)比較運算符的選取,關系運算符用于比較兩個數(shù)值之間的大小,不能用于兩個字符串變量的比較,兩個字符串變量的比較只能采用方法equals實現(xiàn),其原因在于值類型是存儲在內(nèi)存中的堆棧(以后簡稱棧),而引用類型的變量在棧中僅僅是存儲引用類型變量的地址,而其本身則存儲在堆中。==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同。==比較的是2個對象的地址,而equals比較的是2個對象的內(nèi)容。顯然,當equals為true時,==不一定為true。
參考文獻
[1]龔永罡.Java Web應用開發(fā)實用教程[M].北京:機械工業(yè)出版社,2010.
作者簡介
彭登云(1971-),女,重慶銅梁人,本科,重慶財經(jīng)職業(yè)學院實踐教學中心實驗師,研究方向:機房管理維護、網(wǎng)頁設計。
徐洪位(1971-),男,重慶永川人,本科,碩士,重慶財經(jīng)職業(yè)學院應用設計系高級講師,研究方向:程序設計。endprint