這一節涉及到兩個頁面,一個donewuser.jsp文件用來實現記錄添加操作,另一個文件listuser.jsp文件用來顯示所有的已經注冊的用戶信息。這兩個頁面都涉及到了JavaBean的具體調用,還是來看看文件吧,對于文件中關鍵代碼,都會添加上注釋,以方便大家理解。
donewuser.jsp文件
說明:用戶注冊操作頁面,并根據用戶注冊成功否顯示相應的反饋信息,這個頁面主要的特點就是使用了lyf.adduser這個JavaBean的addNewUser()方法來進行記錄的添加。
$#@60;%@ page contentType="text/html;charset=gb2312"%$#@62; $#@60;% response.setHeader("Expires","0"); %$#@62; $#@60;!--生成一個JavaBean:lyf.adduser的實例,id為adduser,生存范圍為page--$#@62; $#@60;jsp:useBean id="adduser" class="lyf.adduser" scope="page"/$#@62;
$#@60;!--設置JavaBean中各個屬性的值,這會調用JavaBean中各個屬性的set方法,以便JavaBean得到正確的屬性值,”*”代表進行所有屬性的匹配--$#@62;
$#@60;jsp:setProperty name="adduser" property="*"/$#@62; $#@60;html$#@62; $#@60;head$#@62; $#@60;meta http-equiv="Content-Language" content="zh-cn"$#@62; $#@60;meta http-equiv="Content-Type" content="text/html; charset=gb2312"$#@62; $#@60;meta name="GENERATOR" content="Microsoft FrontPage 3.0"$#@62; $#@60;meta name="ProgId" content="FrontPage.Editor.Document"$#@62; $#@60;title$#@62;用戶添加$#@60;/title$#@62; $#@60;/head$#@62; $#@60;body bgcolor="#FFEBBD"$#@62; $#@60;div align="center"$#@62;$#@60;center$#@62; $#@60;%
//調用lyf.adduser的checkUser()方法檢查是否有重復的用戶名
//如果有重復就顯示對應的信息
if(!adduser.checkUser()) {
//頁面文字輸出信息,使用jsp內置對象out的println方法,相當于asp中的response.write方法
out.println("對不起,這個用戶名"+adduser.getUsername()+"已經被申請了,請重新選擇!");
//return代表返回,運行時候碰到return就不會進行下面的處理了,功能相當于asp中的response.end
return; } %$#@62; $#@60;%
//如果沒有用戶名重復的問題,調用lyf.adduser的addNewUser()方法來將用戶數據添加到數據庫中,并根據數據添加成功否來顯示對應的信息
if(adduser.addNewUser()){ %$#@62; $#@60;H2$#@62;添加用戶成功!$#@60;/P$#@62; $#@60;%}else{%$#@62; $#@60;H2$#@62;添加用戶失敗,請和管理員聯系!$#@60;/P$#@62; $#@60;%}%$#@62; $#@60;/BODY$#@62; $#@60;/HTML$#@62;
listuser.jsp文件
說明:用戶信息列表頁面,用于顯示注冊的所有用戶信息,對數據進行了分頁顯示。
為了方便大家使用,采用了通用的分頁代碼,如果是JDBC2.0以上或者其他支持TYPE_SCROLL_INSENSITIVE游標的數據庫驅動程序,可以有更簡潔的分頁方法。
和前面jsp頁面類似的語句就不講解了,$#@60;%@ page import="java.sql.ResultSet" %$#@62;代表在這個頁面中導入java.sql.ResultSet的這個類庫,因為Jsp頁面中間要聲明ResultSet;oracle.jdbc.driver.*類庫是Oracle專用的Jdbc驅動程序,讓Jsp頁面可以用來進行Oracle的數據庫操作。
$#@60;%@ page contentType="text/html;charset=gb2312"%$#@62; $#@60;% response.setHeader("Expires","0"); %$#@62; $#@60;%@ page import="java.sql.ResultSet" %$#@62; $#@60;%@ page import="oracle.jdbc.driver.*" %$#@62; $#@60;!--生成一個JavaBean:lyf.db的實例--$#@62; $#@60;jsp:useBean id="db" class="lyf.db" scope="request"/$#@62; $#@60;jsp:setProperty name="db" property="*"/$#@62; $#@60;%
java.lang.String strSQL; //SQL語句
int intPageSize; //一頁顯示的記錄數 int intRowCount; //記錄總數 int intPageCount; //總頁數 int intPage; //待顯示頁碼 java.lang.String strPage; int i,j,k; //設置一頁顯示的記錄數 intPageSize = 15; //取得待顯示頁碼 strPage = request.getParameter("page"); if(strPage==null){//表明在QueryString中沒有page這一個參數,此時顯示第一頁數據 intPage = 1; } else{//將字符串轉換成整型 intPage = java.lang.Integer.parseInt(strPage); if(intPage$#@60;1) intPage = 1; }
//獲取記錄總數 strSQL = "select count(*) from user"; ResultSet result = db.executeQuery(strSQL); //執行SQL語句并取得結果集 result.next(); //記錄集剛打開的時候,指針位于第一條記錄之前 intRowCount = result.getInt(1); result.close(); //關閉結果集 //記算總頁數 intPageCount = (intRowCount+intPageSize-1) / intPageSize; //調整待顯示的頁碼 if(intPage$#@62;intPageCount) intPage = intPageCount; strSQL="select * from user order by id desc"; //執行SQL語句并取得結果集 result = db.executeQuery(strSQL); //將記錄指針定位到待顯示頁的第一條記錄上 i = (intPage-1) * intPageSize; for(j=0;j$#@60;i;j++) result.next(); %$#@62; $#@60;html$#@62; $#@60;head$#@62; $#@60;meta http-equiv="Content-Language" content="zh-cn"$#@62; $#@60;meta http-equiv="Content-Type" content="text/html; charset=gb2312"$#@62; $#@60;meta name="GENERATOR" content="Microsoft FrontPage 3.0"$#@62; $#@60;meta name="ProgId" content="FrontPage.Editor.Document"$#@62; $#@60;title$#@62;用戶列表$#@60;/title$#@62; $#@60;/head$#@62; $#@60;body bgcolor="#FFEBBD"$#@62; $#@60;div align="center"$#@62;$#@60;center$#@62; $#@60;table border="1" borderColorDark="#FFFFFF" borderColorLight="#000000" cellspacing="0" height="22" width="100%"$#@62; $#@60;tr bgcolor="#FFEBAD"$#@62; $#@60;td height="1" width="691" class="main"$#@62; 第$#@60;%=intPage%$#@62;頁 共$#@60;%=intPageCount%$#@62;頁 $#@60;a href="listuser.jsp?page=0"$#@62;首頁$#@60;/a$#@62; $#@60;%if(intPage$#@62;1){%$#@62;$#@60;a href="listuser.jsp?page=$#@60;%=intPage-1%$#@62;"$#@62;上一頁$#@60;/a$#@62;$#@60;%}%$#@62; $#@60;%if(intPage$#@60;=1){%$#@62;上一頁$#@60;%}%$#@62; $#@60;%if(intPage$#@60;intPageCount){%$#@62;$#@60;a href="listuser.jsp?page=$#@60;%=intPage+1%$#@62;"$#@62;下一頁$#@60;/a$#@62;$#@60;%}%$#@62; $#@60;%if(intPage$#@62;=intPageCount){%$#@62;下一頁$#@60;%}%$#@62; $#@60;a href="listuser.jsp?page=$#@60;%=intPageCount%$#@62;"$#@62;尾頁$#@60;/a$#@62; 第$#@60;input type="text" class="main" name="page" size="3" value="$#@60;%=intPage%$#@62;" tabindex="1"$#@62;頁$#@60;input type="submit" class="main" value="go" name="B1" tabindex="2"$#@62;$#@60;class="main"$#@62; $#@60;/td$#@62;$#@60;/tr$#@62;$#@60;/table$#@62;$#@60;/form$#@62;
$#@60;table border="1" width="100%" cellspacing="0" bordercolorlight="#000000" bordercolordark="#FFFFFF" class="main"$#@62; $#@60;tr bgcolor="#FFEBAD"$#@62; $#@60;td $#@62; $#@60;div align="left"$#@62;用戶名$#@60;/div$#@62; $#@60;/td$#@62; $#@60;td $#@62; $#@60;p align="center"$#@62;Email $#@60;/td$#@62; $#@60;td $#@62; $#@60;p align="center"$#@62;主頁 $#@60;/td$#@62; $#@60;td$#@62; $#@60;p align="center"$#@62;登記時間 $#@60;/td$#@62; $#@60;td$#@62; $#@60;p align="center"$#@62;說明 $#@60;/td$#@62; $#@60;/tr$#@62; $#@60;% //顯示數據 i = 0; while(i$#@60;intPageSize && result.next()){ %$#@62; $#@60;tr bgcolor="#FFEBAD"$#@62; $#@60;td$#@62; $#@60;div align="left"$#@62;$#@60;%=result.getString("username") %$#@62;$#@60;/div$#@62;$#@60;/td$#@62; $#@60;td$#@62;$#@60;div align="center"$#@62;$#@60;%=result.getString("email") %$#@62;$#@60;/a$#@62;$#@60;/div$#@62;$#@60;/td$#@62; $#@60;td$#@62;$#@60;div align="center"$#@62;$#@60;font color="#0000CC"$#@62;$#@60;%=result.getString("homepage") %$#@62;$#@60;/font$#@62;$#@60;/div$#@62;$#@60;/td$#@62; $#@60;td$#@62;$#@60;div align="center"$#@62;$#@60;font color="#FF6666"$#@62;$#@60;%=result.getDate("regtime") %$#@62;$#@60;/font$#@62;$#@60;/div$#@62;$#@60;/td$#@62; $#@60;td$#@62;$#@60;div align="center"$#@62;$#@60;font color="#0000FF"$#@62;$#@60;%=result.getString("signs") %$#@62;$#@60;/font$#@62;$#@60;/div$#@62;$#@60;/td$#@62;$#@60;/tr$#@62; $#@60;% i++; } %$#@62; $#@60;/table$#@62; $#@60;% result.close(); //關閉結果集%$#@62; $#@60;/body$#@62; $#@60;/html$#@62; 先運行程序newuser.jsp文件,進行用戶注冊操作,然后運行listuser.jsp文件,看看是否已經添加到數據庫中。對于具體jsp文件和class文件放在什么目錄下的問題,請看具體jsp服務器軟件的參考,一個最簡單的方法就是用Jbuilder4.0直接運行,因為它自帶了Tomcat服務器軟件。
好了,到這里Jsp+JavaBean的介紹就基本上結束了,通過上面的學習,大家應該對JavaBean如何應用于JSP程序中有了一個基本的了解,剩下的就是在具體程序中去應用和發揮了。
后說一點的是,為了方便大家,上面的所有程序代碼可以在我的網站“JSP愛好者http://jspbbs.yeah.net”下載。
|