亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > JBuilder2005實戰JSP之切換控制 圖文步驟

JBuilder2005實戰JSP之切換控制 圖文步驟

熱門標簽:智能電話機器人銷售話術 汝南縣地圖標注app 地圖標注專業和非專業 四川正規外呼系統軟件 山東ai外呼電銷機器人好用嗎 湖北地圖標注公司 福建電銷貓機器人收費 甘肅銷售電銷機器人公司 外呼直播語音系統
表單中用戶名和密碼兩組件的數據將通過HTTP請求傳給服務器的switch.jsp,服務器將這些信息封裝在request對象中傳給switch.jsp,所以switch.jsp可通過request.getParameter(String paraName)來獲取這兩個值。
復制代碼 代碼如下:

String userId = request.getParameter("userId");
String password = request.getParameter("password");

  試想如果login.jsp的表單有10個以上的數據組件,則在switch.jsp中必須通過相應數目的request.getParameter()方法獲取其值。此外,如果這些數據不是字段串類型,而是整數或浮點數,由于request.getParameter()方法返回的值都是String,還必須進行類型的轉換,這種工作不但單調乏味,還容易出錯。

  JSP允許你通過Bean以映射的方式接收網頁表單的數據,Bean以這個規則映射表單的數據:Bean屬性名=表單數據組件名,也即所有和Bean屬性名相同的表單數據域被自動填充到Bean中,并且完成數據類型的轉換。如login.jsp的表單中有兩個數據組件,一個名為userId,另一個是password,定義一個擁有相同名的userId和password屬性的User.java Bean,這個Bean將可以自動接收表單中的兩個數據組件值。

  編寫User.java

  我們先來編寫這個User.java的Bean,在工程中創建User.java,其代碼如下所示:

  代碼清單 7 User.java
復制代碼 代碼如下:

package bookstore;

public class User
{
private String userId;//用戶Id
private String password;//密碼
private String userName;//用戶名
public String getPassword() {
return password;
}
public String getUserId() {
return userId;
}
public String getUserName() {
return userName;
}
public void setPassword(String password) {
this.password = password;
}
public void setUserId(String userId) {
this.userId = userId;
}
public void setUserName(String userName) {
this.userName = userName;
}
}

  除userId和password兩屬性名,還有一個用戶名屬性userName,這個屬性的值不是從login.jsp的表單接收的,當用戶名密碼驗證正確后,從數據表T_USER表中獲取用戶名保存在這個屬性中,以便其他地方引用,保存并編譯這個類。

  提示:

  你可以通過JBuilder的Bean Express工具快速創建User.java的代碼,在一般情況下,你應該通過Bean Express來創建Bean的屬性,這樣不但自動產生get/set的屬性訪問方法,還保證了Bean命名規范。


  編寫頁面程序

  在創建User.java 的Bean后,我們著手創建switch.jsp,在switch.jsp中引用這個Bean。

  通過File->New..->Web->雙擊JSP圖標啟動創建JSP向導。

1.指定swith.jsp名字


圖 10 指定switch.jsp的名字

  一直按Next到向導的第3步。

  2.引用User.java Bean


圖 11 指定JSP中引用Bean

  點擊Add Bean...按鈕,彈出Select a Class對話框,在對話框中選擇bookstore.User類,如下圖所示:


圖 12 選擇類作為Bean

  按OK后,返回到向導第3步的對話框,此時對話框的Bean列表中多了一行記錄,可以在ID欄中為Bean指定一個名字,在Scope中指定Bean的作用域,如下圖所示:


圖 13 引用一個Bean

  我們為User的Bean取名為userBean,將其作用域設置為page域。page域即為頁面作用域,在當前頁面范圍作用域內可用,當JSP返回響應,或請求轉到其他的JSP頁面中時,都不可用了,其他3個作用域說明如下:

  ·request作用域:當一個請求產生直到返回響應的范圍內都是有效的,如a.jsp中聲明為request作用域的Bean,當a.jsp通過<jsp:forward>轉移請求到b .jsp頁面中時還是可用的。

  ·session作用域:在用戶會話的周期內都是可用的,會話周期為用戶登錄系統直到其退出系統為此。

  ·application作用域:這個作用域最長,表示Web容器啟動直到關閉都是有效的。

  按Next到下一步。

  3.設置運行配置項

  在向導的最后一步,你可以為創建的JSP產生一個運行配置項,雖然向導將創建一個運行配置項設置為默認選項,但筆者認為這并不是一個合理的默認值,建議取消create a runtime configuration設置項,不要創建JSP的運行配置項,如下圖所示:


  按Finish按鈕創建switch.jsp文件,其代碼如下所示:

  代碼清單 8 向導創建的switch.jsp
復制代碼 代碼如下:

%@ page contentType="text/html; charset=GBK" %>
html>
head>
 title>
  switch
 /title>
/head>
jsp:useBean id="userBean" scope="page" class="bookstore.User" />
jsp:setProperty name="userBean" property="*" />
body bgcolor="#ffffff">
 h1>
  JBuilder Generated JSP
 /h1>
/body>
/html>

  第8行是引用Bean的JSP標簽,第9行用表單的數據填充Bean的屬性值,即以名字匹配的方式將request的參數填充到Bean的屬性中,同時完成類型轉換(只有基本數據類型或構造函數支持的才可以完成轉換)。在執行完第9行后,userBean中的userId和password屬性將被設置為login.jsp頁面中所發送過來的用戶名和密碼的值。

  因為switch.jsp只是用于控制,并不需要顯示內容到客戶端,所以我們去除switch.jsp中的HTML代碼,將switch.jsp調整為:

  代碼清單 9 去除靜態HTML代碼后的switch.jsp
復制代碼 代碼如下:

%@ page contentType="text/html; charset=GBK" %>
jsp:useBean id="userBean" scope="page" class="bookstore.User" />
jsp:setProperty name="userBean" property="*" />

  在switch.jsp中提供一段Scriptlet,將userId和password發送到數據庫和T_USER表中的用戶比較看是否是合法的用戶,根據驗證的結果轉向不同的頁面。switch.jsp的最終代碼如下所示:

  代碼清單 10 最終的switch.jsp
復制代碼 代碼如下:

%@page contentType="text/html; charset=GBK"%>
%@page import="bookstore.*"%>
%@page import="java.sql.*"%>
jsp:useBean id="userBean" scope="session" class="bookstore.User"/>
jsp:setProperty name="userBean" property="*"/>
%
Connection conn = null;
try {
 conn = DBConnection.getConnection();
 PreparedStatement pStat = conn.prepareStatement(
  "select USER_NAME from T_USER where USER_ID=? and password = ?");
 pStat.setString(1, userBean.getUserId());
 pStat.setString(2, userBean.getPassword());
 ResultSet rs = pStat.executeQuery();
 if (rs.next()) { //密碼正確
  userBean.setUserName(rs.getString(1));//設置用戶名
  session.setAttribute("ses_userBean", userBean);//將userBean放入Session對象中
%>jsp:forward page=" welcome.jsp ">/jsp:forward>
%} else { //密碼錯誤%>
jsp:forward page="fail.jsp">/jsp:forward>
%
  }} finally {
   if(conn != null) conn.close();
  }
%>

  ·在第2~3行中引入Scriptlet代碼中需要的類。

  ·第7~14行代碼向數據庫發送查詢SQL語句并返回結果。

  ·第15行通過檢查結果集的記錄數間接判斷用戶密碼是否正確。

  ·第16~18行是用戶密碼正確的響應代碼,首先用結果集的USER_NAME屬性填充userBean的userName屬性值,然后將userBean對象放入Session中,最后轉向welcome.jsp頁面。

  ·當用戶輸入密碼不正確時,結果集中將沒有記錄,此時rs.next()返回false,程序轉向第20行,第20行的代碼將頁面轉向到密碼輸入錯誤的處理頁面fail.jsp。

  ·第22~24行的代碼用于關閉數據庫的連接。

  也許大家已經發現雖然第9~21行會拋出SQLException異常,但我們并沒有相應的異常捕獲塊,在標準的Java程序中將導致一個編譯期的錯誤,但在JSP中卻可以順序通過編譯,這是因為JSP頁面本身會捕獲頁面中拋出的所有異常。

  假設第11行的SQL查詢語句發生有錯誤,如將用戶表名誤寫為User(正確為T_USER),當switch.jsp被調用后,第14行將拋出SQLException異常,此時switch.jsp將顯示出異常堆棧跡的跟蹤信息頁面,如下圖如示:

圖 14 可怕的錯誤處理頁面

  上圖所示的錯誤處理頁面可謂青面獠牙,面目猙獰,非常不友好,對于開發人員來說這種報錯頁面也許是適合的,因為它提供了許多錯誤跟蹤信息,但最終用戶是不可能接受這種粗野的出錯頁面的。JSP允許你通過<%@ page errorPage%>為頁面指定一個專門處理錯誤的JSP頁面,以便用一種友好、直觀的形式展現錯誤。在下一節里,我們將創建一個用于處理錯誤的JSP頁面,在創建之后,我們再來為switch.jsp指定錯誤處理JSP頁面。

標簽:梅州 南充 黔東 白銀 昌都 臨沂 肇慶 吳忠

巨人網絡通訊聲明:本文標題《JBuilder2005實戰JSP之切換控制 圖文步驟》,本文關鍵詞  JBuilder2005,實戰,JSP,之,切換,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JBuilder2005實戰JSP之切換控制 圖文步驟》相關的同類信息!
  • 本頁收集關于JBuilder2005實戰JSP之切換控制 圖文步驟的相關信息資訊供網民參考!
  • 推薦文章
    欧美日本韩国| 美女免费精品视频在线观看| 精品国产香蕉伊思人在线又爽又黄| 日本伦理黄色大片在线观看网站| 黄视频网站免费看| 高清一级毛片一本到免费观看| 亚洲第一视频在线播放| 成人免费高清视频| 精品视频在线看| 欧美另类videosbestsex视频| 国产一区免费观看| 四虎论坛| 91麻豆精品国产自产在线观看一区| 四虎影视精品永久免费网站| 国产不卡在线观看| 91麻豆精品国产片在线观看| 欧美另类videosbestsex久久| 成人免费高清视频| 国产精品自拍在线观看| 亚洲爆爽| 国产福利免费观看| 日本在线不卡免费视频一区| 日韩中文字幕在线观看视频| 一级女性大黄生活片免费| 四虎影视久久久| 九九热精品免费观看| 久久精品大片| 精品视频一区二区三区| 精品视频一区二区三区免费| 欧美激情一区二区三区在线| 精品国产亚洲一区二区三区| 国产亚洲免费观看| 青草国产在线| 四虎影视库| 国产伦精品一区三区视频| 久久福利影视| 久久国产影视免费精品| 亚洲精品久久久中文字| 日本特黄特色aaa大片免费| 欧美一级视| 国产不卡在线看| 91麻豆tv| 日韩专区一区| 日韩一级黄色| 国产成人精品综合久久久| 精品毛片视频| 久久久久久久久综合影视网| 久久福利影视| 午夜欧美成人久久久久久| 亚洲精品中文一区不卡| 日韩免费片| 青青久久精品| 天天做人人爱夜夜爽2020毛片| 四虎影视久久| 国产一区国产二区国产三区| 欧美激情一区二区三区在线播放| 国产欧美精品| 欧美激情一区二区三区视频高清| 日日夜人人澡人人澡人人看免| 国产激情一区二区三区| 午夜激情视频在线播放| 国产麻豆精品视频| 午夜在线观看视频免费 成人| 国产成人欧美一区二区三区的| 成人影视在线播放| 国产91视频网| 九九九在线视频| 亚洲精品中文字幕久久久久久| 日韩中文字幕一区| 日韩av成人| 国产成+人+综合+亚洲不卡| 麻豆网站在线免费观看| 久久精品人人做人人爽97| 毛片电影网| 你懂的在线观看视频| 亚久久伊人精品青青草原2020| 欧美电影免费| 九九久久国产精品| 国产一区国产二区国产三区| 欧美1区| 韩国三级视频在线观看| 超级乱淫伦动漫| 麻豆系列国产剧在线观看| 欧美1区| 韩国毛片 免费| 欧美爱色| 精品视频免费观看| 国产一区二区精品| 日韩欧美一及在线播放| 久久久成人影院| 青青久久精品国产免费看| 国产网站免费在线观看| 天天做日日干| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日日日夜夜操| 国产伦精品一区三区视频| 精品国产三级a∨在线观看| 国产成人女人在线视频观看| 免费一级片在线观看| 欧美激情在线精品video| 日本在线www| 国产成人精品影视| 国产福利免费视频| 国产精品自拍亚洲| 91麻豆tv| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 天天做人人爱夜夜爽2020| 国产成+人+综合+亚洲不卡| 久久国产一久久高清| 成人高清视频免费观看| 国产美女在线观看| 国产精品12| 美女免费毛片| 国产激情一区二区三区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 91麻豆精品国产自产在线| 久久国产精品只做精品| 日韩在线观看视频黄| 成人av在线播放| 精品美女| 日韩中文字幕在线观看视频| 青青久久精品| 国产综合成人观看在线| 日韩中文字幕在线观看视频| 国产一区精品| 欧美激情在线精品video| 国产不卡在线看| 色综合久久天天综合绕观看| 黄视频网站免费观看| a级精品九九九大片免费看| 亚洲天堂一区二区三区四区| 日韩一级黄色片| 日韩一级黄色| 九九热精品免费观看| 精品国产一区二区三区精东影业| 免费毛片播放| 91麻豆爱豆果冻天美星空| 日本乱中文字幕系列| 精品视频在线看| 九九精品久久久久久久久| 国产a免费观看| 日韩avdvd| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品视频一区二区三区免费| 欧美激情一区二区三区视频高清| 国产韩国精品一区二区三区| 黄视频网站免费观看| 日韩专区一区| 国产成人啪精品视频免费软件| 久久99爰这里有精品国产| 日本免费区| 日韩免费在线观看视频| 成人免费观看网欧美片| 国产伦久视频免费观看 视频 | 欧美a级片视频| 999精品视频在线| 日日日夜夜操| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 四虎影视久久| 国产欧美精品| 国产91精品系列在线观看| 台湾毛片| 国产成人精品一区二区视频| 亚洲第一色在线| 99久久精品国产国产毛片| 日本在线www| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 午夜久久网| 99久久精品国产片| 欧美激情一区二区三区在线| 你懂的福利视频| 久久精品免视看国产成人2021| 成人在激情在线视频| 日日日夜夜操| 国产91视频网| 欧美另类videosbestsex| 色综合久久天天综合观看| 国产网站免费| 可以免费看毛片的网站| 午夜欧美成人久久久久久| 精品国产亚洲人成在线| 欧美激情影院| 日韩专区亚洲综合久久| 青青久在线视频| 成人高清免费| 欧美大片a一级毛片视频| 一级毛片视频在线观看| 韩国妈妈的朋友在线播放| 午夜在线观看视频免费 成人| 尤物视频网站在线观看| 精品视频在线看| 国产91丝袜在线播放0| 欧美a免费| 中文字幕一区二区三区 精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产一区二区高清视频| 国产亚洲精品成人a在线| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 成人高清视频免费观看| 国产伦久视频免费观看视频|