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

首頁 > 編程 > JSP > 正文

JSP教程之使用JavaBean完成業務邏輯的方法

2020-07-27 21:31:13
字體:
來源:轉載
供稿:網友

本文實例講述了JSP教程之使用JavaBean完成業務邏輯的方法。分享給大家供大家參考。具體如下:

一、目標:

① 掌握什么是JavaBean;
② 掌握如何編寫JavaBean;
③ 掌握如何在JSP中訪問JavaBean;
④ 理解JSP中對象的4個作用范圍。

二、主要內容:

通過把上一講中login_process.jsp中的驗證過程進行封裝形成JavaBean,然后在JSP頁面中調用這個JavaBean,介紹JavaBean的編寫和訪問。
通過簡單實例介紹JavaBean對象的4個作用范圍。

1、什么是JavaBean

JavaBean是使用Java語言編寫的組件。組件是組成一個大的系統的一部份,通常不同獨立運行。組件能夠完成特定的功能,并且這些功能主要是共享的。
JavaBean是一種特殊的Java類。特殊在:通常要提供無參數的構造方法;外界不需要知道它的具體實現,通常屬性是私有的,需要提供公有的對屬性進行操作的方法;應該有一些業務方法。

2、例:對用戶信息進行驗證

package javabean;public class User{  private String username;  private String userpass;  public String getUsername()  {   return username;  }  public void setUsername(String username)  {   this.username = username;  }  public String getUserpass()  {   return userpass;  }  public void setUserpass(String userpass)  {   this.userpass = userpass;  }  public boolean check()  {   if(username==null || userpass==null)     return false;   if(username.equals("zhangsan") && userpass.equals("lisi"))   {     return true;   }else{     return false;   }  }}

3、在JSP中如何調用JavaBean

首先,在Java中的調用情況:

import javabean;…  User user = new User(); // 定義對象,并且實例化  user.setUsername("zaaaa"); // 對成員變量進行初始化  user.setUserpass("sssss");  // 對用戶口令進行初始化  boolean b = user.check();  // 調用業務方法進行驗證

1) 創建對象

復制代碼 代碼如下:
<jsp:useBean id="" class="" scope=""/>

作用:實例化JavaBean的對象,或者查找到JavaBean的對象。

id屬性表示創建的對象的名字,class是JavaBean的完整類名,scope屬性指出創建的變量的作用范圍。
scope的作用范圍有4個:page request session application
page表示當前頁面,實際上是當前的JSP文件對應的Java類的對象;
request表示一次請求,從我們發送出去請求開始到系統對我們進行響應,這之間就是一次請求。如果一次請求只涉及一個JSP頁面,page和request的效果是相同的。
例如:登錄功能,顯示第一個頁面的時候,這時候page和request的作用范圍是相同的。提交之后,如果登錄成功,這時候涉及兩個文件login_process.jsp和success.jsp,每個文件對應一個page,但是兩個文件屬于一個request。
session,表示會話。對于Web應用的每個客戶端來說都對應一個對象,這個對象就是session,如果JavaBean對象的作用范圍設置為session,相當于把JavaBean對象保存在了session對象中,在客戶端的整個訪問過程中都可以訪問這個對象。
application,表示應用。如果把JavaBean對象的作用范圍設置為application,這個應用的所有的用戶在所有的界面都可以訪問這個對象。

例:<jsp:useBean id="user" class="javabean.User" scope="request"/>
測試(關于4個作用范圍):

編寫page.jsp文件如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><c:set var="pageAttribute" value="pppp" scope="page"/><c:set var="requestAttribute" value="rrrrr" scope="request"/><c:set var="sessionAttribute" value="ssss" scope="session"/><c:set var="applicationAttribute" value="aaaa" scope="application"/><jsp:include page="success.jsp"/>

page.jsp中輸出信息:

${pageScope.pageAttribute}${requestScope.requestAttribute}${sessionScope.sessionAttribute}${applicationScope.applicationAttribute}

其中:<c:set>標簽用于存儲信息,var指出變量的名字,value指出變量的值(可以使用表達式),scope指出變量的存儲范圍。

${pageScope.pageAttribute}用于訪問page范圍內的pageAttribute屬性,${requestScope.requestAttribute}用于訪問request范圍內的requestScope屬性,依次類推。
 
編寫request.jsp文件如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

request.jsp中輸出信息:

${pageScope.pageAttribute}${requestScope.requestAttribute}${sessionScope.sessionAttribute}${applicationScope.applicationAttribute}<br><a href="session.jsp">訪問session</a>

編寫session.jsp文件如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

session.jsp中輸出信息:

${pageScope.pageAttribute}${requestScope.requestAttribute}${sessionScope.sessionAttribute}${applicationScope.applicationAttribute}

編寫application.jsp文件如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

application.jsp中輸出信息:

${pageScope.pageAttribute}${requestScope.requestAttribute}${sessionScope.sessionAttribute}${applicationScope.applicationAttribute}

運行過程:

運行page.jsp,得到如下結果:

request.jsp中輸出信息:rrrr ssss aaaa
page.jsp中輸出信息:pppp rrrr ssss aaaa
分析:因為page.jsp和request.jsp屬于同一次請求,所以共享request對象,session對象和application對象,但是不能顯示page中存儲的信息。

點擊"訪問session"進行session.jsp

session.jsp中輸出信息:ssss aaaa

分析:與前面不屬于同一次請求,所以不能訪問request和page信息,只能訪問session和application。

重新打開一個瀏覽器,訪問application.jsp
application.jsp中輸出信息:aaaa
分析:屬于不同的客戶端,所以只能共享application對象,只能看到application中的信息。

2) 對屬性賦值

<jsp:setProperty name="" property="" value=""/>
name指出JavaBean對象的名字,property指出屬性的名字,value要賦的值。

例:<jsp:setProperty name="user" property="username" value="zhangsan"/>

如果value屬性不指定,這時候會從請求對象查找名字為username的表單元素,如果有救賦值。相當于下面的代碼:

String username = request.getParameter("username");user.setUsername(username);

如果省略了value屬性,同時把property屬性設置為"*",相當于:

String username = request.getParameter("username");user.setUsername(username);String userpass = request.getParameter("usernpass");user.setUsernpass (userpass);

如果表單元素的名字與JavaBean屬性名字不一致的時候,可以通過param屬性指定使用哪個表單元素。

3) 嵌入Java代碼調用方法

<%  boolean b = user.check();%>

4) 獲取JavaBean屬性

復制代碼 代碼如下:
<jsp:getProperty name="" property=""/>

4、 實例:修改login_process.jsp

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><!--創建對象--><jsp:useBean id="user" class="javabean.User" scope="request"/><!--對對象進行初始化--><jsp:setProperty name="user" property="*"/><!-- 調用對象的方法 --><%  boolean b = user.check();  request.setAttribute("b",new Boolean(b));  // 在request中保存信息,第一個參數是名字,第二個參數對象本身%><!-- 根據結果進行判斷 --><c:if test="$">  <jsp:include page="success.jsp"/></c:if><c:if test="${!b}">  <jsp:include page="failure.jsp"/></c:if><br>用戶信息:<jsp:getProperty name="user" property="username"/><jsp:getProperty name="user" property="userpass"/>

運行:編譯之前編寫好的Java文件User.java。然后把編譯好的文件放在工程的WEB-INF目錄的classes子目錄中。

運行之后效果是相同的。

但是分析上面的代碼,我們發現里面還是嵌入了Java代碼,這是因為JSP并沒有提供很好的標簽對JavaBean的訪問進行調用。如果想使用標簽對業務方法調用,需要編寫自定義標簽,比較麻煩。下面介紹一個折中的方法。

5、實例:重構login_process.jsp

在User.java中添加如下方法:

public boolean getResult(){   return check();}

雖然JSP沒有提供訪問業務方法的標簽,但是提供了對屬性進行訪問的方式,所以該方法通過提供result屬性來間接的調用check業務方法。

修改login_process.jsp文件如下:

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><jsp:useBean id="user" class="javabean.User" scope="request"/><jsp:setProperty name="user" property="*"/><c:if test="${user.result}">  <jsp:include page="success.jsp"/></c:if><c:if test="${!user.result}">  <jsp:include page="failure.jsp"/></c:if>

希望本文所述對大家的JSP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品亚洲男同gayvideo网站| 不卡中文字幕av| 久久久久亚洲精品| 国产成人久久精品| 国产精品久久综合av爱欲tv| 国产精品久久久久久中文字| 亚洲桃花岛网站| 久久好看免费视频| 一区二区三区四区视频| 亚洲aⅴ日韩av电影在线观看| 国产精品美女无圣光视频| 午夜精品久久久久久久久久久久久| 欧美精品久久久久| 久久久亚洲国产天美传媒修理工| 亚洲自拍偷拍色图| 理论片在线不卡免费观看| 国产精品色午夜在线观看| 一道本无吗dⅴd在线播放一区| 国产精品视频永久免费播放| 日韩精品中文在线观看| 国外成人在线播放| 久久久久久有精品国产| 在线精品国产成人综合| 亚洲黄色av女优在线观看| 精品成人久久av| 欧美成人免费全部| 国产综合久久久久| 久久91精品国产91久久久| 日韩av在线一区| 亚洲成人久久久| xxxxx成人.com| 青青精品视频播放| 欧美超级免费视 在线| 国产午夜精品全部视频在线播放| 欧美一级片免费在线| 色综合久久中文字幕综合网小说| 精品国产欧美一区二区三区成人| 精品国产老师黑色丝袜高跟鞋| 日韩视频欧美视频| 欧美一区视频在线| 久久久999成人| 91精品国产色综合久久不卡98| 成人高h视频在线| 欧美性猛交xxxxx免费看| 国产日韩欧美在线视频观看| 国内免费精品永久在线视频| 亚洲欧美日韩国产中文专区| 亚洲黄色www网站| 国产亚洲精品久久久久久牛牛| 97人洗澡人人免费公开视频碰碰碰| 国产精品一区二区三区毛片淫片| 96国产粉嫩美女| 欧美在线性视频| 91欧美精品成人综合在线观看| 91精品视频免费| 亚洲精品乱码久久久久久金桔影视| 国产热re99久久6国产精品| 精品国产91久久久久久老师| 国产亚洲精品成人av久久ww| 精品久久久久久亚洲精品| 最近2019中文免费高清视频观看www99| 久久久免费在线观看| 午夜精品一区二区三区在线视频| 久久69精品久久久久久国产越南| 日韩精品在线观看一区二区| 日韩中文字幕精品| 亚洲一区二区精品| 久久精品视频在线观看| 欧美怡春院一区二区三区| 国内精品小视频在线观看| 亚洲最大中文字幕| 国产精品视频久久| 亚洲精品久久久久中文字幕欢迎你| 中文字幕日本欧美| 精品视频久久久久久久| 久久精品视频一| 7777kkkk成人观看| 亚洲第一福利视频| 久久久999精品视频| 91精品国产亚洲| 久久久久北条麻妃免费看| 九色精品美女在线| 欧美精品xxx| 91国产视频在线播放| 亚洲成人精品视频| 国产欧美精品一区二区三区介绍| 精品福利免费观看| 国产成人精品久久二区二区| 国产日韩欧美一二三区| 伊人一区二区三区久久精品| 亚洲欧美中文日韩在线v日本| 91综合免费在线| 亚洲午夜小视频| 91亚洲精品久久久久久久久久久久| 中文字幕亚洲一区二区三区五十路| 久久偷看各类女兵18女厕嘘嘘| 1769国产精品| 亚洲美女www午夜| 欧美成人精品在线视频| 中文字幕视频一区二区在线有码| 国产精品久久久久久久久久新婚| 国产成人精品一区二区三区| 超碰日本道色综合久久综合| 久久国产精品免费视频| 国产色婷婷国产综合在线理论片a| 亚洲天堂成人在线| 午夜免费在线观看精品视频| 91久久综合亚洲鲁鲁五月天| 色久欧美在线视频观看| 91精品国产综合久久香蕉的用户体验| 精品亚洲男同gayvideo网站| 成人午夜黄色影院| 亚洲美女中文字幕| 91精品久久久久久久久久入口| 欧美高清视频一区二区| 国产精品久久色| 国产精品久久久久久久久男| 亚洲第一免费播放区| 激情亚洲一区二区三区四区| 中文字幕久久精品| 欧美激情亚洲一区| x99av成人免费| 97av在线影院| 欧美老少配视频| 亚洲精品720p| 亚洲国产成人精品一区二区| 国产精品久久久久77777| 日韩激情片免费| 欧美日韩国产综合视频在线观看中文| 欧美日韩国产综合视频在线观看中文| 性色av一区二区三区红粉影视| 欧美在线影院在线视频| 国产成人精品一区二区| 国产精品国产三级国产专播精品人| 国内精品视频在线| 成人久久久久久久| 欧美高清视频免费观看| 欧美大尺度激情区在线播放| 亚洲一区二区福利| 国产精品91视频| 中文字幕欧美日韩| 久久久久久久久爱| 欧美激情二区三区| 久久高清视频免费| 95av在线视频| 欧美精品videos另类日本| 亚洲精品成人久久电影| 亚洲mm色国产网站| 国产精品香蕉av| 欧美综合激情网| 日韩免费中文字幕| 精品视频在线播放色网色视频| 国产精品丝袜白浆摸在线| 精品久久久久久亚洲精品| 成人a级免费视频| 久久综合久久88| 久久久电影免费观看完整版| 国产精品久久久久aaaa九色| 亚洲人成77777在线观看网| 中国日韩欧美久久久久久久久| 国产这里只有精品| 日韩欧美国产黄色| 91tv亚洲精品香蕉国产一区7ujn| 欧美电影免费观看高清|