亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JBuilder2005實戰JSP之登錄頁面(2)

2019-11-18 19:19:16
字體:
來源:轉載
供稿:網友
  通過File->New...->Web->雙擊jsp圖標,彈出創建JSP向導的對話框,如下圖所示:


圖 3 通過向導創建login.jsp

  ·Web module:如果一個工程下有多個Web模塊,你可以通過這兒指定JSP所要加入到的Web模塊,因為我們的工程中只有一個webModule,所以是向導將默認設置為webModule。

  ·Name :鍵入JSP文件名,你可以鍵入.jsp后綴,也可以不寫后綴,直接鍵入login就可以了。

  Generate sample bean選項勾選后JBuilder將生成一個示例的Bean并在JSP中引入這個Bean。對于初學者來說,可以通過該選項查看JSP如何引用一個Bean,而Generate error page選項將自動為JSP創建一個配套的錯誤處理JSP文件,這里,我們不勾選它們。

  直接點擊Finish創建login.jsp,login.jsp文件出現在內容窗格的編譯器中,如下圖所示:


圖 4 向導創建的JSP文件

  JSP編譯窗口的左右兩邊都有一個可以通過 按鈕控制的豎欄,左邊欄為放置JSP標簽和HTML標簽的面板,可以像可視化UI設計器中一樣用拖拽方式往JSP文件中放置各種標簽,如上圖中,我們從面板中選擇表單的HTML標簽放置到login.jsp文件中。

  而右邊豎欄中是JSP文件中當前光標所在標簽的屬性編譯器,如下圖所示:


圖 5 設置JSP標簽屬性編輯器

  屬性編輯器是動態的,光標移到不同的標簽上,屬性編輯器就顯示這個標簽所有可設置的屬性。如上圖中對應的是HTML 表單標簽的屬性編輯器,我們將其action屬性設置為switch.jsp,指定用POST方式發送請求數據。

  我們在login.jsp中提供一個用戶名下拉框、一個密碼輸入框以及一個登錄提交按鈕,其代碼如下:

  代碼清單 4 login.jsp

1. <%@page contentType="text/html; charset=GBK" %>
2. <html>
3. <head>
4. <title>login</title>
5. </head>
6. <body bgcolor="#ffffff">
7. <表單 name="表單1" method="post" action="switch.jsp">
8. 用戶名: <select name="userId">
9. <option value="" selected>--登錄用戶--</option>
10. <option value="100000">姜子牙</option>
11. <option value="100001">鮑叔牙</option>
12. <option value="100002">豎牙</option>
13. </select>
14. 密 碼:<input name="passWord" type="password">
15. <input type="submit" name="Submit" value="登錄">
16. </表單>

17. </body>
18. </html>

  表單標簽代表網頁中的一個表單,表單可以包含多個組件,這些組件的數據在網頁表單提交后,以HTTP協議發送給action屬性所指定的JSP文件處理。表單的數據一般以POST發送,POST發送方式對數據量的大小沒有限制,且保密性更強。

  login.jsp的效果頁面如下圖所示:


圖 6 login.jsp錄入頁面

  實戰經驗:

  JSP文件代碼包含靜態和動態兩部分,即一部分是HTML代碼,而另一部分為JSP標簽和Scriptlet代碼。JSP一般是動態邏輯的網頁,JBuilder對JSP標簽及Scriptlet這些動態代碼部分支持得非常好,你可以使用CodeInsight和TagInsight等工具快速而正確地完成編碼,同時還可以對JSP進行編譯調試。在JSP靜態HTML代碼編寫及可視化設計方面,JBuilder卻顯得力不從心,Dreamweaver在靜態代碼和可視化設計方面明顯優于JBuilder。

  事情的復雜促進了分工,分工的精細促進了專業的發展,在編寫JSP時,并不是一旦擁有JBuilder就別無所求了。韓信善兵、蕭何善謀,如果能夠將Dreamweaver和JBuilder結合起來,用Dreamweaver開發JSP的可視化部分,用JBuilder開發JSP的動態代碼部分,兩者互補有無,相得益彰,JSP開發工作將變得更加行云流水。

  將用戶列表改為動態

  目前創建的login.jsp有一個缺陷,假設在數據庫后臺T_USER表中添加其他的用戶時,因為用戶名下拉框是靜態的代碼,新創建的用戶并不會出現在頁面中,因此有必要將用戶名列表改為動態的代碼,用數據庫表T_USER的記錄動態產生下拉框的數據。

  我們通過UserList.ava類來完成這個工作,在工程中創建UserList.java,其代碼如下:

  代碼清單 5 UserList.java

1. package bookstore;
2. import java.sql.*;
3.
4. public class UserList
5. {
6.  //獲取HTML下拉框的用戶列表代碼
7.  public static String getUserListHTML() {
8.   Connection conn = null;
9.   StringBuffer sBuf = new StringBuffer();
10.  try {
11.   conn = DBConnection.getConnection();
12.   PReparedStatement pStat = conn.prepareStatement(
13.     "select USER_ID,USER_NAME from T_USER");
14.   ResultSet rs = pStat.executeQuery();
15.   while (rs.next()) {
16.    sBuf.append("<option value='" + rs.getString("USER_ID") + "'>" +
17.    rs.getString("USER_NAME") + "</option>/n");
18.   }
19.   return sBuf.toString();
20.  } catch (SQLException ex) {
21.   ex.printStackTrace();
22.   return "";
23.  } finally {
24.   try {
25.    if (conn != null) {
26.     conn.close();
27.     conn = null;
28.    }
29.   } catch (SQLException ex1) {
30.  }
31. }
32. }
33. }

  UserList.java只提供了一個靜態的getUserListHTML()方法,這個方法從后臺數據庫的T_USER表中獲取用戶記錄,并生成HTML的select組件的選項代碼,如第16~17行所示。

  在創建這個類后,我們引用該類調整login.jsp的代碼,首先在page指令標簽中通過import屬性引用UserList類,然后將select選項中的內容調整為getUserListHTML()方法返回的值,如下圖所示:


圖 7 通過CodeInsight編寫代碼

  通過表達式標簽替換原靜態的HTML代碼,值得提起的是,在JSP中也可以象在編寫一般的Java類中一樣使用CodeInsight輸入代碼。調整后的login.jsp的代碼如下所示,用粗體表示:

  代碼清單 6 調整后的login.jsp代碼

1. <%@page contentType="text/html; charset=GBK" import="bookstore.UserList"%>
2. <html>
3. <head>
4. <title>login</title>
5. </head>
6. <body bgcolor="#ffffff">
7.  <表單 name="表單1" method="post" action="switch.jsp">用戶名:
8.  ?。約elect name="userId">
9.   ?。紀ption value="" selected>--登錄用戶--</option>
10.   ?。?=UserList.getUserListHTML()%>
11.  ?。?select>
12.   密 碼:<input name="password" type="password">
13.  ?。糹nput type="submit" name="Submit" value="登錄">
14. </表單>
15. </body>
16. </html>

  保存login.jsp后,在內容窗格login.jsp文件標簽中點擊右鍵,選擇Web Run using Defaults,JBuilder 將啟動Tomcat 5.0應用服務器,運行于8080端口上,編譯并運行login.jsp文件,如下圖所示:


圖 8 在JBuilder中運行login.jsp

  JBuilder自動切換到Web View視圖頁中,顯示頁面的運行效果。但JBuilder的瀏覽器對網頁的支持效果很弱,也不支持Javascript腳本。所以在運行login.jsp后,最好通過IE來查看網頁的效果,你只需要打開IE,并將JBuilder中的訪問login.jsp的地址拷貝到IE的地址欄中就可以了,如下圖所示:


圖 9 用IE訪問JBuilder中運行的login.jsp

  此時用戶名的下拉框中的用戶已經是動態的用戶列表中,當T_USER表中添加、刪除用戶時下拉框的用戶也會相應地改變。

  在運行JSP前最好先單獨編譯一個這個JSP文件:在內容窗格的JSP文件標簽上點擊右鍵,在彈出的菜單中選擇make "xxx.jsp",即可完成對JSP文件的編譯,及時發現錯誤。JSP文件和Java文件在編輯時,最大的區別是Java程序文件一有錯誤就會在編輯器和結構窗格中列出,但JSP文件的有些錯誤需要通過編譯才能發現。

  提示:

  由于編譯JSP文件需要先將其轉換為Servlet文件,然后再編譯這個中間Servlet文件,發生錯誤后轉定向到JSP文件中,所以編譯一個JSP文件是比較耗時的,往往比編譯一個Java文件要花好幾倍的時間。在默認的情況下,編譯一個工程時,會編譯整個工程中所有的JSP,需要消耗大量的時間。所以最好取消在編譯工程連帶編譯JSP文件的設置:通過Project->Project Properties...->Build-> 在Build設置頁中取消Check JSPs for errors at build-time選項。在確實需要的時候再勾選這個選項,并在編譯后及時取消這個選項。通過這樣的設置將可以為你的開發贏得不少寶貴的時間。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产午夜精品理论片a级探花| 成人性教育视频在线观看| 欧美激情亚洲另类| 国产视频丨精品|在线观看| 欧美男插女视频| 精品美女国产在线| 欧美美女15p| 亚洲一区二区久久久| 亚洲欧美日韩天堂一区二区| 日韩在线免费视频| 不卡av日日日| 91精品国产91久久久久| 久久久久久亚洲精品不卡| 久久成人在线视频| 国产精品美女午夜av| 精品久久久久久久久久国产| 91成人在线视频| 日韩专区在线观看| 91精品视频在线免费观看| 日韩高清有码在线| 欧美与欧洲交xxxx免费观看| 亚洲天堂视频在线观看| 成人精品一区二区三区电影黑人| 亚洲国产另类久久精品| 亚洲跨种族黑人xxx| 亚洲综合色激情五月| 亚洲精品动漫久久久久| 国模叶桐国产精品一区| 成人欧美一区二区三区黑人| 不卡毛片在线看| 欧美日韩美女在线| 亚洲伊人一本大道中文字幕| 久久影视电视剧凤归四时歌| 亚洲视频在线观看免费| 精品亚洲va在线va天堂资源站| 最新日韩中文字幕| 日韩在线观看网址| 精品久久久久久久久久久| 91沈先生作品| 欧美激情国产日韩精品一区18| 日韩国产一区三区| 国产成人综合精品| 国产精品18久久久久久首页狼| 国模视频一区二区| 亚洲国产日韩欧美在线动漫| 北条麻妃99精品青青久久| 亚洲美女精品久久| 亚洲第一男人av| 综合欧美国产视频二区| 91麻豆国产语对白在线观看| 视频在线一区二区| 黑人与娇小精品av专区| 欧美激情videoshd| 久久久精品影院| 亚洲午夜国产成人av电影男同| 国产精品成人播放| 在线精品高清中文字幕| 精品久久久国产| 日本一区二区在线免费播放| 亚洲欧美变态国产另类| 国产精品一区二区在线| 4p变态网欧美系列| 国产噜噜噜噜噜久久久久久久久| 久久久久久久久久久免费精品| 欧美日韩中国免费专区在线看| 欧美亚洲日本黄色| 欧美日韩性视频在线| 亚洲综合在线做性| 日韩成人在线视频| 久久99精品国产99久久6尤物| 91精品视频专区| 亚洲最大成人网色| 欧美性资源免费| 亚洲精品久久7777777| 亚洲第一级黄色片| 国产精品wwwwww| 久久亚洲春色中文字幕| 国产精品免费视频久久久| 欧日韩不卡在线视频| 亚洲一区二区三区在线免费观看| 九九精品在线观看| 国产中文字幕日韩| 九九九热精品免费视频观看网站| 国产不卡av在线免费观看| 欧美日韩午夜剧场| 欧美日韩午夜激情| 岛国av在线不卡| 啊v视频在线一区二区三区| www.亚洲一区| 欧美日韩一区免费| 亚洲第一区中文99精品| 亚洲www永久成人夜色| 1769国内精品视频在线播放| 亚洲午夜精品视频| 国产69精品久久久| 久久久久久免费精品| 成人在线视频福利| 欧美中文字幕在线观看| 97在线视频观看| 亚洲男人天堂2024| 日韩欧美国产中文字幕| 亚洲欧洲黄色网| 色妞色视频一区二区三区四区| 中文字幕综合一区| 91免费看片网站| 国产精品成人一区二区三区吃奶| 亚洲人成77777在线观看网| 欧美另类极品videosbest最新版本| 亚洲国产精品人久久电影| 欧美日韩国产第一页| 91豆花精品一区| 国产精品激情av在线播放| 成人免费福利在线| 正在播放亚洲1区| 亚洲国产精品久久精品怡红院| 久久69精品久久久久久国产越南| 日韩精品在线观看一区| 国产精品三级在线| 中文字幕亚洲国产| 国产精品久久久久久婷婷天堂| 色一情一乱一区二区| 亚洲综合小说区| 91精品国产色综合| 18久久久久久| 午夜欧美大片免费观看| 日韩av免费在线播放| 一区二区三区回区在观看免费视频| 精品国产一区二区在线| 国产精品久久久久久av下载红粉| 欧美日韩亚洲激情| 欧美日韩视频免费播放| 国产日本欧美一区二区三区在线| 国产精品中文在线| 欧美激情乱人伦一区| 亚洲风情亚aⅴ在线发布| 92看片淫黄大片看国产片| www.xxxx欧美| 欧美日韩中文在线| 日韩欧美有码在线| 日韩中文字幕精品| 动漫精品一区二区| 久久97精品久久久久久久不卡| 久久久久999| 欧美丝袜一区二区| 亚洲天堂日韩电影| 日韩av电影在线网| 国产精品视频网| 亚洲一区美女视频在线观看免费| 欧美国产日产韩国视频| 国产一区二区三区在线播放免费观看| 久久久之久亚州精品露出| 精品亚洲一区二区三区在线播放| 国产精品稀缺呦系列在线| 国产精品一区二区三| 欧美一级成年大片在线观看| 成人情趣片在线观看免费| 国产午夜精品麻豆| 91国产在线精品| 米奇精品一区二区三区在线观看| 国产视频精品va久久久久久| 韩国日本不卡在线| 亚洲图片在线综合| 日韩av在线播放资源| 91中文精品字幕在线视频|