校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > JBuilder2005實戰(zhàn)JSP之切換控制 圖文步驟

JBuilder2005實戰(zhàn)JSP之切換控制 圖文步驟

熱門標簽:智能電話機器人銷售話術 汝南縣地圖標注app 地圖標注專業(yè)和非專業(yè) 四川正規(guī)外呼系統(tǒng)軟件 山東ai外呼電銷機器人好用嗎 湖北地圖標注公司 福建電銷貓機器人收費 甘肅銷售電銷機器人公司 外呼直播語音系統(tǒng)
表單中用戶名和密碼兩組件的數(shù)據(jù)將通過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個以上的數(shù)據(jù)組件,則在switch.jsp中必須通過相應數(shù)目的request.getParameter()方法獲取其值。此外,如果這些數(shù)據(jù)不是字段串類型,而是整數(shù)或浮點數(shù),由于request.getParameter()方法返回的值都是String,還必須進行類型的轉(zhuǎn)換,這種工作不但單調(diào)乏味,還容易出錯。

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

  編寫User.java

  我們先來編寫這個User.java的Bean,在工程中創(chuàng)建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的表單接收的,當用戶名密碼驗證正確后,從數(shù)據(jù)表T_USER表中獲取用戶名保存在這個屬性中,以便其他地方引用,保存并編譯這個類。

  提示:

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


  編寫頁面程序

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

  通過File->New..->W(wǎng)eb->雙擊JSP圖標啟動創(chuàng)建JSP向?qū)А?

1.指定swith.jsp名字


圖 10 指定switch.jsp的名字

  一直按Next到向?qū)У牡?步。

  2.引用User.java Bean


圖 11 指定JSP中引用Bean

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


圖 12 選擇類作為Bean

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


圖 13 引用一個Bean

  我們?yōu)閁ser的Bean取名為userBean,將其作用域設置為page域。page域即為頁面作用域,在當前頁面范圍作用域內(nèi)可用,當JSP返回響應,或請求轉(zhuǎn)到其他的JSP頁面中時,都不可用了,其他3個作用域說明如下:

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

  ·session作用域:在用戶會話的周期內(nèi)都是可用的,會話周期為用戶登錄系統(tǒng)直到其退出系統(tǒng)為此。

  ·application作用域:這個作用域最長,表示W(wǎng)eb容器啟動直到關閉都是有效的。

  按Next到下一步。

  3.設置運行配置項

  在向?qū)У淖詈笠徊剑憧梢詾閯?chuàng)建的JSP產(chǎn)生一個運行配置項,雖然向?qū)?chuàng)建一個運行配置項設置為默認選項,但筆者認為這并不是一個合理的默認值,建議取消create a runtime configuration設置項,不要創(chuàng)建JSP的運行配置項,如下圖所示:


  按Finish按鈕創(chuàng)建switch.jsp文件,其代碼如下所示:

  代碼清單 8 向?qū)?chuàng)建的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行用表單的數(shù)據(jù)填充Bean的屬性值,即以名字匹配的方式將request的參數(shù)填充到Bean的屬性中,同時完成類型轉(zhuǎn)換(只有基本數(shù)據(jù)類型或構(gòu)造函數(shù)支持的才可以完成轉(zhuǎn)換)。在執(zhí)行完第9行后,userBean中的userId和password屬性將被設置為login.jsp頁面中所發(fā)送過來的用戶名和密碼的值。

  因為switch.jsp只是用于控制,并不需要顯示內(nèi)容到客戶端,所以我們?nèi)コ齭witch.jsp中的HTML代碼,將switch.jsp調(diào)整為:

  代碼清單 9 去除靜態(tài)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發(fā)送到數(shù)據(jù)庫和T_USER表中的用戶比較看是否是合法的用戶,根據(jù)驗證的結(jié)果轉(zhuǎn)向不同的頁面。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行代碼向數(shù)據(jù)庫發(fā)送查詢SQL語句并返回結(jié)果。

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

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

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

  ·第22~24行的代碼用于關閉數(shù)據(jù)庫的連接。

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

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

圖 14 可怕的錯誤處理頁面

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

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

巨人網(wǎng)絡通訊聲明:本文標題《JBuilder2005實戰(zhàn)JSP之切換控制 圖文步驟》,本文關鍵詞  JBuilder2005,實戰(zhàn),JSP,之,切換,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關。
  • 相關文章
  • 下面列出與本文章《JBuilder2005實戰(zhàn)JSP之切換控制 圖文步驟》相關的同類信息!
  • 本頁收集關于JBuilder2005實戰(zhàn)JSP之切換控制 圖文步驟的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日本在线不卡视频| 91精品国产一区二区| 成人av电影在线| 国产999精品久久| 丁香六月综合激情| www.亚洲精品| www.亚洲激情.com| 91在线小视频| 91高清在线观看| 欧美亚洲动漫制服丝袜| 在线国产亚洲欧美| 91成人免费电影| 欧美日韩国产小视频| 8v天堂国产在线一区二区| 欧美精品在线一区二区| 91精品国产免费| 久久久久久久久蜜桃| 中文无字幕一区二区三区| 国产精品乱人伦中文| 亚洲三级在线免费| 亚洲国产精品久久不卡毛片| 午夜国产精品一区| 久久国产精品99久久久久久老狼| 精品一区二区三区视频| 国产精品1区2区3区在线观看| eeuss鲁片一区二区三区在线观看| 色综合久久久久网| 91精品国产综合久久久久久| 日韩你懂的在线观看| 国产亚洲成aⅴ人片在线观看 | 91精品国产综合久久久久| 日韩午夜在线影院| 亚洲国产高清在线观看视频| 亚洲精品久久久蜜桃| 轻轻草成人在线| 国产a级毛片一区| 在线看国产一区二区| 欧美一区二区成人6969| 中文成人综合网| 亚洲一区二区三区视频在线播放| 美国十次综合导航| 不卡欧美aaaaa| 91精品婷婷国产综合久久竹菊| 久久蜜桃av一区二区天堂| 亚洲情趣在线观看| 久久99久久99小草精品免视看| 懂色av一区二区三区蜜臀 | 久久久一区二区三区捆绑**| 国产精品对白交换视频| 日本免费在线视频不卡一不卡二| 成人动漫一区二区在线| 91精品国产一区二区人妖| 国产精品美女久久福利网站| 日韩国产欧美视频| 成人av网址在线| 日韩免费观看2025年上映的电影| 中文字幕在线一区免费| 免费观看日韩av| 91福利国产精品| 久久精品人人爽人人爽| 午夜久久久久久久久| 成人午夜视频在线观看| 欧美成人一区二区三区片免费| 中文字幕综合网| 国产毛片精品国产一区二区三区| 欧美视频中文一区二区三区在线观看 | 欧美福利视频一区| 综合久久久久久久| 国产主播一区二区| 欧美日本在线视频| 亚洲丝袜精品丝袜在线| 国产一区二区中文字幕| 欧美精品v日韩精品v韩国精品v| 亚洲欧美综合色| 大美女一区二区三区| 日韩欧美中文字幕公布| 亚洲一区二区三区三| 不卡在线视频中文字幕| 久久久午夜精品理论片中文字幕| 青青国产91久久久久久| 欧美日本视频在线| 亚洲国产成人av网| 欧美中文字幕一区二区三区| 国产精品久久久久久久久搜平片 | 成人免费黄色大片| 精品国产乱码久久久久久牛牛| 亚洲丶国产丶欧美一区二区三区| 色欧美片视频在线观看 | 国产精品99久久久| 日韩欧美亚洲国产精品字幕久久久 | 一区二区三区高清在线| 成人在线综合网站| 国产夜色精品一区二区av| 国产麻豆视频一区| 久久久综合网站| 国产成人免费在线| 2021中文字幕一区亚洲| 国产一区二区福利视频| www国产成人免费观看视频 深夜成人网 | 秋霞国产午夜精品免费视频| 欧美日韩一区二区三区在线| 亚洲国产裸拍裸体视频在线观看乱了| 91丨porny丨首页| 一区二区三区在线不卡| 91黄色免费版| 一区二区三区电影在线播| 欧美色电影在线| 日韩在线播放一区二区| 91精品婷婷国产综合久久性色| 日本少妇一区二区| 日韩你懂的在线观看| 国产一区二区在线视频| 欧美高清在线视频| 99国产精品一区| 亚洲中国最大av网站| 欧美日韩亚洲国产综合| 三级成人在线视频| 日韩美女天天操| 国产二区国产一区在线观看| 久久精品夜色噜噜亚洲a∨| 成人性生交大合| 一区二区三区在线播| 欧美另类高清zo欧美| 久久99精品国产91久久来源| 久久久99精品久久| aaa国产一区| 亚洲一区影音先锋| 精品久久久久久久久久久久包黑料 | 丁香六月综合激情| 亚洲美女偷拍久久| 91精品国产福利| 韩国欧美国产1区| 成人免费在线视频观看| 欧美日韩亚州综合| 国产九九视频一区二区三区| 亚洲视频一区在线| 欧美挠脚心视频网站| 国产真实乱偷精品视频免| 中文字幕一区二区三区在线不卡 | 久久综合久久久久88| 成人app下载| 丝袜诱惑制服诱惑色一区在线观看| 精品久久国产老人久久综合| www.在线欧美| 免费成人你懂的| 日韩伦理av电影| 欧美成人午夜电影| 一本在线高清不卡dvd| 蜜桃视频一区二区三区在线观看| 欧美日韩免费电影| 成人激情免费视频| 欧美a级一区二区| 综合久久给合久久狠狠狠97色| 欧美丰满高潮xxxx喷水动漫| 夫妻av一区二区| 青青草一区二区三区| 亚洲欧美激情在线| 2020国产精品自拍| 在线看日韩精品电影| 成人中文字幕电影| 久久超碰97中文字幕| 亚洲一二三区不卡| 中文字幕乱码日本亚洲一区二区| 制服视频三区第一页精品| 成人福利视频网站| 久久99最新地址| 五月激情综合色| 亚洲日本在线天堂| 久久综合久久99| 欧美一区二区三区啪啪| 色婷婷一区二区| fc2成人免费人成在线观看播放| 黄色资源网久久资源365| 亚洲国产精品久久久久婷婷884| 国产精品久久夜| 精品国产乱码久久久久久1区2区| 欧美日韩国产在线观看| 91麻豆精东视频| 成人午夜在线视频| 国产一区二区三区免费看| 日韩国产在线观看| 亚洲国产你懂的| 一区二区三区**美女毛片| 中文字幕不卡在线播放| 久久人人超碰精品| 欧美成人性战久久| 欧美一级一级性生活免费录像| 欧美色综合影院| 色婷婷综合久久久久中文一区二区| 风间由美一区二区三区在线观看 | ...xxx性欧美| 中文字幕精品一区二区三区精品| 欧美成人猛片aaaaaaa| 欧美精品777| 欧美人妖巨大在线| 欧美日本韩国一区二区三区视频| 欧美系列一区二区| 在线观看日产精品| 日本久久一区二区| 在线精品视频免费播放|