《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第4章Javabean技術(shù)_第1頁
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第4章Javabean技術(shù)_第2頁
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第4章Javabean技術(shù)_第3頁
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第4章Javabean技術(shù)_第4頁
《Java Web 應(yīng)用程序設(shè)計(jì)立體化教程》第4章Javabean技術(shù)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

4JavaBean技術(shù)學(xué)習(xí)目標(biāo)了解JavaBean的組成、屬性類型和開發(fā)要求。掌握J(rèn)SP頁面中JavaBean相關(guān)標(biāo)簽的使用。理解JavaWeb設(shè)計(jì)模式的思想。學(xué)會(huì)JSP+JavaBean設(shè)計(jì)模式開發(fā)Web項(xiàng)目。4.1JavaBean簡(jiǎn)介

一個(gè)基本的JavaWeb頁面是由普通的HTML標(biāo)簽和Java程序片段組成,一旦頁面中包含有大量的Java程序片段,就使得頁面混雜,不易維護(hù),也不利于頁面設(shè)計(jì)人員和Java程序員的分工協(xié)作。

為此,Sun公司提倡將有關(guān)業(yè)務(wù)處理和持久數(shù)據(jù)操作的有關(guān)Java代碼封裝到一個(gè)或多個(gè)特定的Java類即JavaBean中來完成,當(dāng)在頁面要使用時(shí),只要調(diào)用JavaBean組件來執(zhí)行用戶所要的功能。4.1.1什么是JavaBeanJavaBean是一種Java語言寫成的可重用組件。JavaBean分為兩類:可視化JavaBean,能接收用戶的鍵入或點(diǎn)擊并響應(yīng)用戶事件非可視化JavaBean,主要是負(fù)責(zé)處理事務(wù)的JavaBeanJavaBean更多地應(yīng)用在非可視化領(lǐng)域,用來封裝應(yīng)用系統(tǒng)中業(yè)務(wù)邏輯、數(shù)據(jù)處理、數(shù)據(jù)庫(kù)訪問和其他任何可以用Java代碼創(chuàng)建的對(duì)象。4.1.2JavaBean的優(yōu)點(diǎn)可移植性強(qiáng),能夠一次編寫、多次使用以其他部件的模式進(jìn)行工作,如在MVC模式中可實(shí)現(xiàn)較高的模塊獨(dú)立性,易于維護(hù)、使用、編寫提高了代碼的可復(fù)用性支持分布式運(yùn)用,不限于本地還是網(wǎng)絡(luò)4.1.3JavaBean的開發(fā)要求所有的類必須放在一個(gè)包中,不允許空包(default)存放類;所有的類必須聲明為public,這樣才能夠被外部所訪問;類中所有的屬性都必須封裝,使用private聲明;封裝的屬性如需被外部操作,必須編寫setter、getter方法;一個(gè)JavaBean中至少存在一個(gè)無參構(gòu)造方法。例題4-1,創(chuàng)建一個(gè)JavaBean類,封裝學(xué)生類public

classStudent{

long

num;

String

name;

int

age;

Stringsex;

public

longgetNum(){

return

num; }

public

voidsetNum(longnum){

this.num=num; }……num屬性num屬性的get方法num屬性的set方法4.1.4JavaBean的組成屬性(properties)JavaBean提供了高層次的屬性概念,屬性不只是傳統(tǒng)的面向?qū)ο蟾拍罾锏膶傩?,它同時(shí)還得到了屬性讀取和屬性寫入的API的支持。事件(event)事件為JavaBean組件提供了一種發(fā)送通知給其他組件的方法。當(dāng)事件源檢測(cè)到發(fā)生了某種事件時(shí),它將調(diào)用事件監(jiān)聽器對(duì)象中的一個(gè)適當(dāng)?shù)氖录幚矸椒▉硖幚磉@個(gè)事件。方法(method)JavaBean中的方法就是通常的Java方法,嚴(yán)格遵守面向?qū)ο蟮念愒O(shè)計(jì)邏輯,不讓外部世界訪問其任何屬性,方法調(diào)用是接觸屬性的唯一途徑。例題4-2,一個(gè)圓的JavaBean定義學(xué)一學(xué)4.1.5JavaBean的屬性類型一個(gè)簡(jiǎn)單屬性就是非集合類型的屬性,屬性的數(shù)據(jù)類型可以是任何合法的Java類型。一個(gè)簡(jiǎn)單屬性通常表示一個(gè)伴隨有g(shù)etter和setter方法的字段。簡(jiǎn)單屬性(Simple)索引屬性就是獲取和設(shè)置數(shù)組(或集合)時(shí)的屬性。索引屬性一般具有g(shù)etter和setter方法。索引屬性(Indexed)也稱關(guān)聯(lián)屬性,當(dāng)該種屬性的值發(fā)生變化時(shí),要通知其它的對(duì)象。這種事件被傳遞到其它的JavaBean,并且由接收事件的JavaBean決定所要執(zhí)行的動(dòng)作,當(dāng)修改一個(gè)關(guān)聯(lián)屬性時(shí),可以在相關(guān)的監(jiān)聽器上觸發(fā)屬性修改事件。綁定屬性(Bound)約束屬性是指當(dāng)這個(gè)屬性的值要發(fā)生變化時(shí),與這個(gè)屬性已建立了某種連接的其它Java對(duì)象可否決屬性值的改變。約束屬性(Constrained)4.2在Web頁面中使用JavaBeanJavaBean作為組件不僅被廣泛地應(yīng)用在服務(wù)器的編程中,也可以在JavaWeb頁面中使用。使用JavavBean有兩種方法:1.在頁面中通過page指令導(dǎo)入JavaBean所在包,使用new操作符顯示地創(chuàng)建JavaBean對(duì)象,和使用普通的Java類一樣調(diào)用方法;2.利用<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>動(dòng)作標(biāo)簽訪問JavaBean。4.2.1<jsp:useBean>標(biāo)簽訪問JavaBean<jsp:useBeanid=“bean引用名”class=“bean的全類名”scope=“域范圍”/>id屬性:用作在指定域范圍內(nèi)保存的屬性名,并且也是JavaBean實(shí)例對(duì)象的變量名。class屬性:用于指定JavaBean的完整類名,JSP引擎將使用這個(gè)類名來創(chuàng)建JavaBean的實(shí)例對(duì)象。scope屬性:用于指定JavaBean實(shí)例對(duì)象所存儲(chǔ)的域范圍,其可選定范圍是:page、request、session、application,默認(rèn)為page。page、request、session、application含義及作用取值含義和作用page表示將JavaBean實(shí)例對(duì)象存儲(chǔ)在PageContext對(duì)象中,該JavaBean對(duì)象僅能被當(dāng)前包含<jsp:useBean>標(biāo)簽的JSP頁面的當(dāng)前請(qǐng)求的響應(yīng)過程中調(diào)用的各個(gè)組件訪問。request表示將JavaBean實(shí)例對(duì)象存儲(chǔ)在ServletRequest對(duì)象中,該bean對(duì)象可以被屬于同一個(gè)請(qǐng)求的所有JSP頁面和Servlet訪問。session表示將JavaBean實(shí)例對(duì)象存儲(chǔ)在HttpSession對(duì)象中,該bean對(duì)象可以被屬于同一個(gè)會(huì)話的所有JSP頁面和Servlet訪問。此設(shè)置要求當(dāng)前JSP頁面必須支持Session,即在JSP頁面的<%@page%>指令中不能將session設(shè)為false(即session=true)。application表示將JavaBean實(shí)例對(duì)象存儲(chǔ)在ServletContext對(duì)象中,該bean對(duì)象可以被同一個(gè)Web應(yīng)用程序中的所有JSP頁面和Servlet訪問。例題4-4,input.html頁面中輸入學(xué)生信息<html><head><title>input.html</title><meta

http-equiv="Content-Type"

content="text/html;charset=gbk"></head><body>

<form

action="show.jsp"method="post">

學(xué)號(hào):<input

type="text"

name="num"><br>

姓名:<input

type="text"

name="name"><br>

年齡:<input

type="text"

name="age"><br>

性別:<input

type="text"

name="sex"><br>

<input

type="submit"

value="提交">

</form></body></html>例題4-4,在show.jsp頁面得到學(xué)生信息并顯示<%@

page

language="java"

import="java.util.*"

pageEncoding="gbk"%><html><body><jsp:useBean

id="stu"

class="com.chapter4.Student"

scope="page"

/>

<%request.setCharacterEncoding("GBK");

Stringnum=(String)request.getParameter("num");stu.setNum(Long.parseLong(num));

Stringname=(String)request.getParameter("name");stu.setName(name);

Stringage=(String)request.getParameter("age");stu.setAge(Integer.parseInt(age));

Stringsex=(String)request.getParameter("sex");stu.setSex(sex);

%>

<h2>學(xué)號(hào):<%=stu.getNum()%></h2><h2>姓名:<%=stu.getName()%></h2>

<h2>密碼:<%=stu.getAge()%></h2><h2>年齡:<%=stu.getSex()%></h2></body></html>

nput.html輸入學(xué)生信息和show.jsp顯示輸出結(jié)果瀏覽器中輸入:http://localhost:8080/JavaBeanProject/javabean/input.html輸入學(xué)生信息單擊提交后,show.jsp輸出學(xué)生信息內(nèi)容。

show.jsp頁面所生成的Servlet源文件com.chapter4.Studentstu=null;stu=(com.chapter4.Student)_jspx_page_context.getAttribute("stu",javax.servlet.jsp.PageContext.PAGE_SCOPE);if(stu==null){stu=newcom.chapter4.Student();_jspx_page_context.setAttribute("stu",stu,javax.servlet.jsp.PageContext.PAGE_SCOPE);}4.2.2<jsp:setProperty>設(shè)置JavaBean屬性格式1:<jsp:setPropertyname="bean引用名"property="*"/>格式2:<jsp:setPropertyname="bean引用名"property="Bean屬性名"/>格式3:<jsp:setPropertyname="bean引用名"property="Bean屬性名"value="屬性值"/>

name屬性不可省略,用于指定JavaBean實(shí)例對(duì)象的名稱,其值必須與<jsp:useBean>標(biāo)簽的id屬性的值一致;property屬性不可省略,用于指定為JavaBean實(shí)例對(duì)象的特定屬性的屬性名,當(dāng)取值為“*”時(shí),JSP容器會(huì)自動(dòng)將request中與JavaBean中的同名屬性賦值;value屬性可以省略,若使用該屬性則用該屬性的值為JavaBean的屬性賦值;這個(gè)屬性的值可以是字符串,也可以是一個(gè)表達(dá)式。例題4-5,設(shè)計(jì)show.jsp頁面,獲取提交的學(xué)生信息<%@

page

language="java"

import="java.util.*"

pageEncoding="gbk"%><html><body>request.setCharacterEncoding("GBK");

<jsp:useBean

id="stu"

class="com.chapter4.Student"

scope="page">

<jsp:setProperty

name="stu"

property="*"

/>

</jsp:useBean>

<h2>學(xué)號(hào):<%=stu.getNum()%></h2>

<h2>姓名:<%=stu.getName()%></h2>

<h2>密碼:<%=stu.getAge()%></h2>

<h2>年齡:<%=stu.getSex()%></h2></body></html>設(shè)計(jì)show1.jsp頁面,用<jsp:setProperty>標(biāo)簽,獲取提交的學(xué)生信息其中某一內(nèi)容或某幾項(xiàng)內(nèi)容<%@

page

language="java"

import="java.util.*"

pageEncoding="gbk"%><html><body>

<%request.setCharacterEncoding("GBK");%>

<jsp:useBean

id="stu"

class="com.chapter4.Student"

scope="page">

<jsp:setProperty

name="stu"

property="num"

/>

<jsp:setProperty

name="stu"

property="name"

/>

</jsp:useBean>

<h2>學(xué)號(hào):<%=stu.getNum()%></h2>

<h2>姓名:<%=stu.getName()%></h2>

<h2>密碼:<%=stu.getAge()%></h2>

<h2>年齡:<%=stu.getSex()%></h2></body></html>設(shè)計(jì)show2.jsp頁面中,設(shè)定學(xué)生性別為男<%@

page

language="java"

import="java.util.*"

pageEncoding="gbk"%><html><body>

<%

request.setCharacterEncoding("GBK");%>

<jsp:useBean

id="stu"

class="com.chapter4.Student"

scope="page">

<jsp:setProperty

name="stu"

property="num"

/>

<jsp:setProperty

name="stu"

property="name"

/>

<jsp:setProperty

name="stu"

property="age"/>

<jsp:setProperty

name="stu"

property="sex"

value="男"

/></jsp:useBean>

<h2>學(xué)號(hào):<%=stu.getNum()%></h2>

<h2>姓名:<%=stu.getName()%></h2>

<h2>年齡:<%=stu.getAge()%></h2>

<h2>性別:<%=stu.getSex()%></h2></body></html>4.2.3<jsp:getProperty>獲取JavaBean屬性<jsp:getProperty>標(biāo)簽用于讀取JavaBean對(duì)象的屬性值,即調(diào)用JavaBean對(duì)象的getter方法獲取bean的屬性值,然后將bean的屬性值轉(zhuǎn)換成字符串后插入到輸出的正文中。<jsp:getPropertyname="bean引用名"property="bean的屬性名"/>

特別注意:name屬性用于指定JavaBean實(shí)例對(duì)象的名稱,該值也必須與<jsp:useBean>標(biāo)簽中的id屬性值一致。property屬性用于指定要輸出其值的JavaBean屬性名,如果一個(gè)JavaBean實(shí)例對(duì)象的某個(gè)屬性值為null,則該標(biāo)簽的輸出結(jié)果為“null”字符串。例題4-6,設(shè)計(jì)getproperty.jsp頁面,讀取學(xué)生信息<%@

page

language="java"

contentType="text/html;charset=GB18030"%><html><body>

<%request.setCharacterEncoding("GBK");

%>

<jsp:useBean

id="stu"

class="com.chapter4.Student"

scope="page">

<jsp:setProperty

name="stu"

property="*"

/></jsp:useBean>

<h2>學(xué)號(hào):<jsp:getProperty

name="stu"

property="num"

/></h2>

<h2>姓名:<jsp:getProperty

name="stu"

property="name"

/></h2>

<h2>年齡:<jsp:getProperty

name="stu"

property="age"

/></h2>

<h2>性別:<jsp:getProperty

name="stu"

property="sex"

/></h2></body></html>4.2.4使用JavaBean的注意事項(xiàng)JavaBean應(yīng)放置在頁面的類或其父類裝載器所能裝載的目錄中通常放置Web程序的WEB-INF/classes目錄中多個(gè)頁面共享的bean必須是線程安全的JavaBean必須帶有包名,不能使用默認(rèn)包名JavaBean應(yīng)盡量存入較小的作用范圍若request域能滿足需求,則不要將其存入Session域4.3JSP設(shè)計(jì)模式:JSP+JavaBean

4.3.1什么是設(shè)計(jì)模式使開發(fā)人員可以簡(jiǎn)便地重用已有的良好設(shè)計(jì)1提供了一套可供開發(fā)人員交流的語言2提升了人們看待問題的抽象程度3幫助設(shè)計(jì)人員更快更好地完成系統(tǒng)設(shè)計(jì)4具有更好的可靠性和擴(kuò)展性5

設(shè)計(jì)模式是描述了軟件系統(tǒng)設(shè)計(jì)過程中常見問題的解決方案,它從大量成功實(shí)踐中總結(jié)出來并被廣泛公認(rèn)的實(shí)踐和知識(shí)。4.3.2JSPModel1設(shè)計(jì)模式使用純粹JavaWeb技術(shù)實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)站開發(fā),是初學(xué)者經(jīng)常使用的技術(shù)。Web頁面中所有代碼都是在同一個(gè)頁面,如HTML標(biāo)記、CSS標(biāo)記、JavaScript標(biāo)記、邏輯處理和數(shù)據(jù)庫(kù)處理代碼等。將這些代碼混合在一起容易出錯(cuò),出錯(cuò)了又不容易查找問題,而且其可讀性差。為了解決上述問題,sun公司推出推出了應(yīng)用程序的設(shè)計(jì)模式。JSPModel1(JSP+JavaBean)模式很好地解決了頁面靜態(tài)部分和動(dòng)態(tài)部分相互分離的問題,可以使用Web技術(shù)的HTML、CSS等構(gòu)建數(shù)據(jù)顯示頁面,而對(duì)于數(shù)據(jù)處理,則交給JavaBean技術(shù)來完成。4.3.3JSPModel1設(shè)計(jì)模式的基本原理

在JSPModel1模式中,Web頁面負(fù)責(zé)響應(yīng)用戶請(qǐng)求并將處理結(jié)果返回用戶,所有的數(shù)據(jù)通過JavaBean來處理。該模式實(shí)現(xiàn)了頁面的顯示和邏輯處理相分離,Web頁面負(fù)責(zé)業(yè)務(wù)流程控制和提供表示層數(shù)據(jù),同時(shí)充當(dāng)控制器和視圖角色。4.4JSPModel1模式的應(yīng)用開發(fā)實(shí)例

實(shí)例開發(fā)學(xué)生信息管理系統(tǒng),在Web頁面中顯示學(xué)生信息列表,用戶通過單擊“新增”、“修改”或“刪除”超鏈接可以增加新學(xué)生信息、修改或刪除已有學(xué)生信息。1.創(chuàng)建保存一個(gè)學(xué)生的注冊(cè)信息的StudentInfoBean.javapackagecom.chapter4;import

java.io.Serializable;

import

java.sql.Date;public

classStudentInfoBeanimplementsSerializable,Cloneable{

private

static

final

long

serialVersionUID=1L;

private

long

id;

privateStringstudentname=null;

privateStringpassword=null;

private

int

sex=1;

privateDatebirthday=null;

privateStringemail=null;

private

int

work=0;

privateString[]likes=null;

privateStringnote=null;

publicStudentInfoBean(){id

=-1;

}

public

voidsetId(longid){

this.id

=id;

}

public

longgetId(){return

id;

}……2.創(chuàng)建用于保存已有學(xué)生列表StudentlistBean.javapackage

com.chapter4;

importjava.io.Serializable;importjava.util.HashMap;import

java.util.Iterator;public

classStudentListBeanimplementsSerializable{

private

static

final

long

serialVersionUID=1L;

private

long

max_StudentID=0;

privateHashMap<String,StudentInfoBean>StudentList;

publicStudentListBean(){

StudentList

=newHashMap<String,StudentInfoBean>(100,0.85F);

StudentInfoBeanstu=newStudentInfoBean();

stu.setStudentName("張三");

stu.setSex(1);

stu.setStrBirthday("1990-01-23");

stu.setLikes(new

String[]{"aaa","唱歌","跳舞"});

System.out.println("【張三】:"+stu);

this.insertStudent(stu);

stu=newStudentInfoBean();

stu.setStudentName("李四");

stu.setSex(0);

System.out.println("【李四】:"+stu);

this.insertStudent(stu);

stu=newStudentInfoBean();

stu.setStudentName("王五");

stu.setSex(0);

System.out.println("【王五】:"+stu);

this.insertStudent(stu);

}……2.創(chuàng)建用于保存已有學(xué)生列表StudentlistBean.javapublic

synchronized

booleanremoveStudent(StringstuId){ StudentInfoBeanu=StudentList.remove(stuId);

return

u!=null;

}

publicStudentInfoBeanpopStudent(StringstuId){

try{Long.valueOf(stuId);}catch(NumberFormatExceptione){return

null;}

return

this.StudentList.get(stuId);}

publicStudentInfoBeancopyStudent(StringstuId){

try{Long.valueOf(stuId);}catch

(NumberFormatExceptione){return

null;}

return(StudentInfoBean)(StudentList.get(stuId)).copyStudentInfo();}

public

synchronized

longgetStudentNum(){ return

StudentList.size(); }

public

synchronized

booleanisExist(StringstuId){return

StudentList.containsKey(stuId);}

publicIterator<StudentInfoBean>iterator(){return

this.StudentList.values().iterator();}}3.編寫學(xué)生信息列表StudentInfoList.jsp<%@

page

language="java"

import="java.util.*"

pageEncoding="utf-8"%><%request.setCharacterEncoding("utf-8");Stringpath=request.getContextPath();%><%@page

import="com.chapter4.StudentInfoBean"

%><html><body><jsp:useBean

id="uList"

type="com.chapter4.StudentListBean"

scope="session"/><table><tr><th

colspan="4"><font

size="4"

color="blue">學(xué)生信息表</font></th><th><a

href="StudentInfoAction.jsp?mode=add">新增學(xué)生</a></th></tr>

<tr

align="center"><th>學(xué)生名</th><th>性別</th><th>出生日期</th><th>職業(yè)</th><th>操作</th></tr>

<%Iterator<StudentInfoBean>it=uList.iterator();

while(it.hasNext()){StudentInfoBeanuser=(StudentInfoBean)it.next();%>

<tr><td><%=user.getStudentname()%></td><td><%=user.getStrBirthday()%></td>

<td><%=user.getWorkToString()%></td><td

align="center">

<a

href="StudentInfoAction.jsp?mode=che&StudentId=<%=user.getId()%>">修改</a>

<a

href="StudentInfoAction.jsp?mode=del&StudentId=<%=user.getId()%>">刪除</a>

</td></tr><%}%></table></body></html>4.編寫響應(yīng)、處理列表JSP中超鏈接的StudentInfoAction.jsp

根據(jù)超鏈接所傳入的命令模式參數(shù)執(zhí)行相應(yīng)的處理<%@

page

language="java"

import="java.util.*"

pageEncoding="UTF-8"%><%@

page

import="com.chapter4.*"

%><html><body><jsp:useBean

id="uList"

class="com.chapter4.StudentListBean"

scope="session"/>

<%Stringmode=request.getParameter("mode");

if(mode==null){ response.sendRedirect("StudentInfoList.jsp");

}else

if(mode.equals("add")){

%>

<jsp:useBean

id="stu"

class="com.chapter4.StudentInfoBean"

scope="session"/>

<jsp:forward

page="InputStudentInfo.jsp"/>

<%}else

if(mode.equals("che")){

StringStudentId=request.getParameter("StudentId");

StudentInfoBeanStudent=uList.copyStudent(StudentId); request.setAttribute("stu",Student);pageContext.forward("InputStudentInfo.jsp");

}else

if(mode.equals("del")){StringStudentId=request.getParameter("StudentId");

if(uList.removeStudent(StudentId))request.setAttribute("delInfo","學(xué)生信息刪除成功!");

else

request.setAttribute("delInfo","未能刪除指定的學(xué)生信息!");

pageContext.forward("deleStudent.jsp"); }%></body></html>5.編寫用于輸入新增學(xué)生信息、修改學(xué)生信息的頁面InputStudentInfo.jsp<%@

page

language="java"

import="java.util.*"

pageEncoding="utf-8"%><body><jsp:useBean

id="stu"class="com.chapter4.StudentInfoBean"

scope="request"/>

<form

action="saveStudentInfo.jsp"

method="post">

<table><tr><th

colspan="2">請(qǐng)<%=(stu.getId()<1)?"輸入新":"修改老"

%>學(xué)生信息</th></tr>

<tr><th>學(xué)生名</th><td><%if(stu.getId()<1){%><input

type="text"

name="studentname"/>

<%}else{%><%=stu.getStudentname()%>

<input

type="hidden"

name="id"

value="<%=stu.getId()%>"

/>

<%System.out.println(stu.getStudentname());}%></td></tr>

<tr><th>密碼</th><td><input

type="text"

name="password"

value="<%=stu.getPassword()%>"/></td></tr>……運(yùn)行InputStudentInfo.jsp將學(xué)生添加到了學(xué)生信息表

6.編寫用于響應(yīng)用戶學(xué)生信息輸入頁面InputStudentInfo.jsp

保存學(xué)生信息到列表中的頁面saveStudentInfo.jsp<%@

page

language="java"

import="java.util.*"

pageEncoding="utf-8"%><%@

page

import="com.chapter4.*"

%><%request.setCharacterEncoding("UTF-8");%><%Stringpath=request.getContextPath();%><html><body>

<%if(request.getParameter("saveBut")!=null){%>

<jsp:useBean

id="uList"

type="com.chapter4.StudentListBean"

scope="session"/>

<jsp:useBean

id="stu"

class="com.chapter4.StudentInfoBean"scope

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論