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

首頁 > 編程 > JSP > 正文

JBuilder2005實戰JSP之登錄頁面

2024-09-05 00:20:23
字體:
來源:轉載
供稿:網友
  通過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.    <option value="" selected>--登錄用戶--</option>
10.   ?。?=userlist.getuserlisthtml()%>
11.  ?。?select>
12.   密 碼:<input name="password" type="password">
13.   <input 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選項。在確實需要的時候再勾選這個選項,并在編譯后及時取消這個選項。通過這樣的設置將可以為你的開發贏得不少寶貴的時間。
  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    亚洲最大的免费| 这里精品视频免费| 91亚洲精品视频| 7777免费精品视频| 不用播放器成人网| 亚洲电影在线观看| 亚洲国模精品私拍| 57pao国产精品一区| 97婷婷涩涩精品一区| 午夜精品福利视频| 成人性教育视频在线观看| 一区二区成人精品| 亚洲国产一区二区三区在线观看| 久久综合久久美利坚合众国| 这里只有精品丝袜| 亚洲美女性生活视频| 懂色aⅴ精品一区二区三区蜜月| 亚洲在线第一页| 亚洲成年人在线| 日韩经典第一页| 亚洲三级黄色在线观看| 欧美激情图片区| 色偷偷88888欧美精品久久久| 日韩美女在线观看一区| 精品美女久久久久久免费| 久久久久久久久久婷婷| 国产在线观看精品一区二区三区| 亚洲男人天堂2023| 国产成人高潮免费观看精品| 国产精品综合网站| 欧美精品亚州精品| 欧美成人激情在线| 日本老师69xxx| 成人激情综合网| 国内精品久久影院| 亚洲欧美国产va在线影院| 欧美丰满少妇xxxxx做受| 亚洲无av在线中文字幕| 国产精品久久久久久久av电影| 91精品久久久久久久久久入口| 欧美大胆在线视频| 国产精品人成电影在线观看| 国产精品欧美在线| 一本大道亚洲视频| 欧美日韩国产激情| 97精品国产97久久久久久免费| 亚洲成人av中文字幕| 国产日韩在线免费| 精品动漫一区二区三区| 黑人狂躁日本妞一区二区三区| 伊人一区二区三区久久精品| 亚洲已满18点击进入在线看片| 亚洲精品美女免费| 精品女同一区二区三区在线播放| 久久综合国产精品台湾中文娱乐网| 中文字幕亚洲无线码在线一区| 亚洲国产精品资源| 亚洲免费电影一区| 日韩在线观看免费全| 精品国产电影一区| 国产手机视频精品| 亚洲激情视频网站| 91精品在线看| 欧美日韩国产一区中文午夜| 国产精品久久久久久久久久ktv| 欧美有码在线观看| 亚洲香蕉成视频在线观看| 久久久久久久色| 国产一区二区三区丝袜| 国产精品久久久久久久久免费| 亚洲精品理论电影| 欧美黄网免费在线观看| 成人www视频在线观看| 欧美亚洲一级片| 日韩国产高清污视频在线观看| 欧美裸体xxxx极品少妇| 另类图片亚洲另类| 亚洲最新在线视频| 91中文在线视频| 国产性猛交xxxx免费看久久| 91中文在线观看| 亚洲国模精品一区| 亚洲欧美激情四射在线日| 国产精品99一区| 日韩美女视频免费在线观看| 91极品女神在线| 国产z一区二区三区| 国产精品久久久久久久电影| 久久精品国产精品亚洲| 欧美成人精品不卡视频在线观看| 日韩中文字幕久久| 亚洲乱码av中文一区二区| 亚洲片av在线| 在线国产精品播放| 亚洲精品福利在线观看| 亚洲天堂免费视频| 国产成人精品免高潮在线观看| 日韩精品视频在线观看网址| 欧美中文字幕视频在线观看| 欧美激情手机在线视频| 欧美日韩中文字幕在线视频| 精品一区二区三区四区在线| 91美女片黄在线观看游戏| 精品福利在线看| 欧美日韩国产在线播放| 少妇久久久久久| 日韩av电影中文字幕| 中文字幕亚洲欧美日韩在线不卡| 中文字幕免费国产精品| 久久成人国产精品| 欧美日韩国产成人高清视频| 在线电影欧美日韩一区二区私密| 精品国产一区二区三区久久久狼| 国内成人精品视频| 亚洲欧美成人一区二区在线电影| 久久久亚洲网站| 欧洲精品毛片网站| 国产精品日日做人人爱| 久久精品99无色码中文字幕| 精品亚洲va在线va天堂资源站| 成人激情视频免费在线| 亚洲欧洲高清在线| 日韩在线视频线视频免费网站| 岛国视频午夜一区免费在线观看| 国产精品成人一区| 最近2019中文字幕一页二页| 欧美成人久久久| 91免费欧美精品| 亚洲色图日韩av| xxxx性欧美| 欧美精品情趣视频| 日韩精品在线私人| 亚洲精品第一页| 久久精品91久久久久久再现| 日韩电影中文 亚洲精品乱码| 亚洲欧美成人在线| 欧美电影院免费观看| 91亚洲精品一区二区| 97超视频免费观看| 国产一区二区三区毛片| 亚洲最新av网址| 中文字幕亚洲综合| 北条麻妃久久精品| 亚洲精品日韩av| 久久久免费精品| 亚洲色图50p| 日韩电影在线观看永久视频免费网站| 日韩中文字幕免费看| 91久久久久久国产精品| 日韩在线视频观看正片免费网站| 日本三级久久久| 欧美一区在线直播| 国产精品一区二区av影院萌芽| 亚洲精品国产美女| 久久韩剧网电视剧| 国产成人精品优优av| 精品视频www| 伦伦影院午夜日韩欧美限制| 日韩欧美在线观看视频| 国产精品观看在线亚洲人成网| 日韩精品欧美激情| 最新国产成人av网站网址麻豆| 久久久久久久久久久免费精品| 亚洲国产精品久久久|