桂電javaee實驗報告_第1頁
桂電javaee實驗報告_第2頁
桂電javaee實驗報告_第3頁
桂電javaee實驗報告_第4頁
桂電javaee實驗報告_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

桂林電子科技大學(xué)_____javaee編程技術(shù)______實驗報告實驗名稱_____JAVAEE開發(fā)環(huán)境__________ 鋪導(dǎo)員意見:___計算機科學(xué)與工程_系__計算機科學(xué)與技術(shù)_專業(yè)____________________班第______________實驗小組作者__________學(xué)號____________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握常用的JavaEE集成開發(fā)環(huán)境的使用。2、通過在JavaEE開發(fā)環(huán)境中創(chuàng)建和運行一些實例項目,熟悉JavaEE的基本開發(fā)、部署和運行的過程。為后續(xù)實驗打下基礎(chǔ)。二、實驗類型設(shè)計型。三、實驗內(nèi)容1、因NetBeans針對JavaEE開發(fā)的版本在集成相關(guān)服務(wù)器方面比較齊全,容易安裝部署,并且理論課教材上的實例項目也以NetBeans作為平臺,所以實驗環(huán)境選用NetBeans平臺。但實驗室計算機上也安裝了JavaEE開發(fā)中常用的MyEclipse,大家在有時間的時候也可進行熟悉掌握。打開實驗室計算機上的NetBeans開發(fā)工具,將至少一個源自教材或?qū)嶒炛笇?dǎo)書上的實例項目導(dǎo)入到開發(fā)環(huán)境中編譯、部署和運行。2、自己在開發(fā)環(huán)境中重新創(chuàng)建一個簡單的“WEB項目”,在其中創(chuàng)建至少一個自己的JSP頁面文件,該頁面文件的功能是,通過在頁面文件中嵌入Java代碼,并通過代碼顯示自己的學(xué)號和姓名,將其作為項目首頁,進行部署、運行和演示。桂林電子科技大學(xué)______________________實驗報告實驗名稱___________Servlet基礎(chǔ)_________________ 鋪導(dǎo)員意見:____________________系____________________專業(yè)____________________班第______________實驗小組作者________________學(xué)號_____________________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、理解Servlet的作用、生命周期及相應(yīng)接口所包含的方法。2、掌握通過繼承HttpServlet類來創(chuàng)建Servlet的方法。二、實驗類型設(shè)計型三、實驗內(nèi)容首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后自己編寫Servlet,能夠接收客戶端輸入的兩個整數(shù),并將這兩個數(shù)相加的結(jié)果顯示出來。另外能通過擴充該servlet的功能或創(chuàng)建新的servlet來演示發(fā)送非HTML文檔。四、代碼部分<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"></head><bodybgcolor="#FFFFFF"><h1align="center"><b>加法器</b></h1><formaction="getpostdata"method="post"><p></p><tablewidth="52%"border="2"align="center"><trbgcolor="#FFFFCC"><tdalign="center"width="43%"><divalign="center">第一個數(shù):</div></td><tdwidth="57%"><divalign="left"><inputtype="text"name="one"></div></td></tr><trbgcolor="#CCFF99"><tdalign="center"width="43%"><divalign="center">第二個數(shù):</div></td><tdwidth="57%"><divalign="left"><inputtype="text"name="two"></div></td></tr></table><palign="center"><inputtype="reset"name="Reset"value="重置"><inputtype="submit"name="Submit2"value="提交"></p></form></body></html>然后右鍵單擊項目名,選擇“新建”——>“Servlet”,會彈出“新建Servlet“對話框,“類名”和servlet名稱均設(shè)置為“getpostdata”,對應(yīng)的“URL模式”名設(shè)置為“/getpostdata”。最終生成的servlet代碼為:importjava.io.*;import.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassGetPostDataextendsHttpServlet{protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=gb2312");request.setCharacterEncoding("gb2312");PrintWriterout=response.getWriter();out.println("<BODYBGCOLOR=\"#FDF5E6\">\n"+"<H1ALIGN=CENTER>"+"getpostdata"+"</H1>\n"+"<UL>\n"+"<LI><B>one</B>:"+request.getParameter("username")+"\n"+"<LI><B>two</B>:"+request.getParameter("password")+"\n"+"</UL>\n"+"</BODY></HTML>");out.close();}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}publicStringgetServletInfo(){return"Shortdescription";}}桂林電子科技大學(xué)______________________實驗報告實驗名稱_______Servlet會話及Servlet協(xié)作____ 鋪導(dǎo)員意見:____________________系____________________專業(yè)____________________班第______________實驗小組作者________________學(xué)號_____________________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握會話的概念和作用。2、掌握Cookie、URL重寫和HttpSession對象等常見會話跟蹤技術(shù)。3、會使用RequestDispatcher對象實現(xiàn)Servlet間協(xié)作。二、實驗類型設(shè)計型三、實驗內(nèi)容1、首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后設(shè)計一個進行網(wǎng)絡(luò)購物的訂購頁面,讓用戶選擇自己喜歡的2種商品放入購物車,然后使用一種會話管理方式,將用戶在訂購頁面所選購的商品在購物車頁面中顯示出來,并能返回訂購頁面再次選購其它商品。2、設(shè)計一個進行乘法運算的頁面,生成兩個運算數(shù)讓用戶填寫相乘結(jié)果并提交。當(dāng)用戶填寫和提交的結(jié)果正確時,顯示“計算正確”的提示信息頁面。結(jié)果錯誤時,顯示“計算錯誤”的提示信息頁面,以此演示通過RequestDispatcher對象實現(xiàn)Servlet之間請求的傳遞和協(xié)作。代碼部分乘法:<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"></head><bodybgcolor="#FFFFFF"><h1align="center"><b>乘法器</b></h1><formaction="getpostdata"method="post"><p></p><tablewidth="52%"border="2"align="center"><trbgcolor="#FFFFCC"><tdalign="center"width="43%"><divalign="center">第一個數(shù):</div></td><tdwidth="57%"><divalign="left"><inputtype="text"name="one"></div></td></tr><trbgcolor="#CCFF99"><tdalign="center"width="43%"><divalign="center">第二個數(shù):</div></td><tdwidth="57%"><divalign="left"><inputtype="text"name="two"></div></td></tr></table><palign="center"><inputtype="reset"name="Reset"value="重置"><inputtype="submit"name="Submit2"value="提交"></p></form></body></html>然后右鍵單擊項目名,選擇“新建”——>“Servlet”,會彈出“新建Servlet“對話框,“類名”和servlet名稱均設(shè)置為“getpostdata”,對應(yīng)的“URL模式”名設(shè)置為“/getpostdata”。最終生成的servlet代碼為:importjava.io.*;import.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassGetPostDataextendsHttpServlet{protectedvoidprocessRequest(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=gb2312");request.setCharacterEncoding("gb2312");PrintWriterout=response.getWriter();out.println("<BODYBGCOLOR=\"#FDF5E6\">\n"+"<H1ALIGN=CENTER>"+"getpostdata"+"</H1>\n"+"<UL>\n"+"<LI><B>one</B>:"+request.getParameter("username")+"\n"+"<LI><B>two</B>:"+request.getParameter("password")+"\n"+"</UL>\n"+"</BODY></HTML>");out.close();}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}publicStringgetServletInfo(){return"Shortdescription";}}桂林電子科技大學(xué)______________________實驗報告實驗名稱___JSP腳本元素、指令和動作組件_______________________系____________________專業(yè)____________________班第______________實驗小組作者________________學(xué)號_____________________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握JSP的概念和工作原理。2、掌握表達式、注釋、變量、方法、類等JSP腳本元素。3、掌握JSP中的page指令及其屬性,掌握include指令,了解taglib指令。4、掌握include、forward、param等動作組件。二、實驗類型設(shè)計型三、實驗內(nèi)容首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后自己編寫JSP頁面文件,能夠演示至少JSP腳本元素中的變量、方法和類的使用,能演示JSP中至少2種指令和動作組件的使用。四、代碼部分1、JSP腳本元素——表達式的示例expression.jsp<%@pagelanguage="java"pageEncoding="GB2312"%><%@pagecontentType="text/html;charset=gb2312"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>JSP表達式</title></head><bodybgcolor="#FFFFFF"><%for(inti=1;i<=5;i++){%><H<%=i%>>你好</H<%=i%>><BR><%}%></body></html>3、聲明變量<%@pagelanguage="java"pageEncoding="GB2312"%><%@pagecontentType="text/html;charset=GB2312"%><HTML><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><head><title>聲明變量</title></head><BODY><FONTsize=5><%i++;%><P>您是第<%=i%>個訪問本站的客戶。</p><%!inti=0;%></BODY></HTML>4、聲明方法<%@pagelanguage="java"%><%@pagecontentType="text/html;charset=GB2312"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>聲明方法</title></head><bodybgcolor="#FFFFFF"><%!StringsayHello(){return"Hello";}%><%=sayHello()%></body></html>5、聲明類<%@pagelanguage="java"%><%@pagecontentType="text/html;charset=GB2312"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>聲明類</title></head><bodybgcolor="#FFFFFF"><%!publicclasssayHello{booleancounty;sayHello(booleancounty){this.county=county;}StringHello(){if(county)return"Hello";elsereturn"你好";}}%><%sayHelloa=newsayHello(false);%><%=a.Hello()%></body></html>6、JSP的page指令之language屬性和session屬性<%@pagelanguage="java"%><%@pagesession="true"%><%if(session.getAttribute("name")==null)session.setAttribute("name","GUET");%><%out.println(session.getAttribute("name"));%>7、JSP的page指令之errorPage屬性(1)error.jsp頁面(當(dāng)后面的頁面出錯時被運行的頁面)<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>JSPPage</title></head><body><h1>出錯啦??!</h1></body></html>(2)testError.jsp頁面(首先被運行的頁面,包含數(shù)組下標(biāo)越界的錯誤,然后前面的error.jsp頁面會被運行)<%@pagelanguage="java"%><%@pagecontentType="text/html;charset=GB2312"%><%@pageerrorPage="error.jsp"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>頁面錯誤屬性測試</title></head><bodybgcolor="#FFFFFF"><%!int[]a={1,2,3};%><%=a[3]%></body></html>8、JSP的page指令之include屬性(1)copyright.html頁面<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>HTML</title></head><bodybgcolor="#FFFFFF"><HR><h3>Alltherightsarereserved</h3></body></html>(2)include.jsp頁面<%@pagecontentType="text/html;charset=GB2312"%><html><BODY><h1>include示例</h1><H3><%@includefile="copyright.html"%></H3></BODY></HTML>9、JSP動作組件之include動作組件<%@pagecontentType="text/html;charset=GB2312"%><HTML><BODY><h1>include動作示例</h1><BR><!-copyright.html文件可用前面例子中的-><jsp:includepage="copyright.html"flush="true"/></BODY></HTML>10、JSP動作組件之forward動作組件Forward動作組件用于將瀏覽器顯示的網(wǎng)頁,導(dǎo)向至另一個HTML網(wǎng)頁或JSP網(wǎng)頁,客戶端看到的地址是A頁面的地址,而實際內(nèi)容卻是B頁面的內(nèi)容。catalog1.html頁面代碼如下:<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>forward示例</title></head><bodybgcolor="#FFFFFF">當(dāng)前推薦圖書清單:<ul><li>國畫</li><li>梅次故事</li><li>朝夕之間</li></ul></body></html>catalog2.html頁面代碼如下:<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>forward示例</title></head><bodybgcolor="#FFFFFF">當(dāng)前推薦圖書清單:<ul><li>J2EE編程技術(shù)</li><li>J2EE服務(wù)器端高級編程</li><li>JSP高級編程</li></ul></body></html>通過forward動作組件調(diào)用前面兩個文件的forward.jsp頁面代碼如下:<%@pagecontentType="text/html;charset=GB2312"%><HTML><HEAD><TITLE>forward</TITLE></HEAD><BODY><P>當(dāng)前推薦圖書清單:<%doublei=Math.random();if(i>0.5){%><jsp:forwardpage="catalog1.html"></jsp:forward><%}else{%><jsp:forwardpage="catalog2.html"></jsp:forward><%}%></BODY></html>11、JSP動作組件之param動作組件Param動作組件用于傳遞參數(shù)值,必須配合include或forward動作組件一起使用。下面通過兩個頁面間傳遞參數(shù)的例子來演示如何使用param動作組件。(1)發(fā)送參數(shù)的頁面param1.jsp<%@pagecontentType="text/html;charset=GB2312"%><HTML><title>向加載文件傳遞參數(shù)示例</title><BODY><P>向加載文件傳遞參數(shù)示例:<jsp:includepage="add.jsp"><jsp:paramname="start"value="0"/><jsp:paramname="end"value="100"/></jsp:include></BODY></HTML>(2)接收參數(shù)的頁面add.jsp<%@pagecontentType="text/html;charset=GB2312"%><HTML><BODY><%Stringstart=request.getParameter("start");//獲取值。Stringend=request.getParameter("end");//獲取值。ints=Integer.parseInt(start);inte=Integer.parseInt(end);intsum=0;for(inti=s;i<=e;i++){sum=sum+i;}%><P>從<%=start%>到<%=end%>的連續(xù)和是:<BR><%=sum%></BODY></HTML>11、JSP動作組件之plugin動作組件plugin動作組件用于執(zhí)行一個Applet或者Bean(1)先生成一個Applet,代碼如下Circle.javaimportjava.applet.Applet;importjava.awt.Color;importjava.awt.Graphics;publicclassCircleextendsApplet{publicvoidpaint(Graphicsg){g.setColor(newColor(255,0,255));g.fillArc(0,0,50,50,0,360);}}(2)下面是通過plugin動作組件調(diào)用Applet的JSP頁面<%@pagecontentType="text/html;charset=GB2312"%><HTML><BODY><jsp:plugintype="applet"code="Circle.class"><jsp:fallback>PlugintagOBJECTorEMBEDnotsupportedbybrowser.</jsp:fallback></jsp:plugin></body></html>桂林電子科技大學(xué)______________________實驗報告實驗名稱______JSP內(nèi)置對象__________________ 鋪導(dǎo)員意見:____________________系____________________專業(yè)____________________班第______________實驗小組作者________________學(xué)號_____________________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握request、response、out、session、application、config、pagecontext、page和exception等九種JSP內(nèi)置對象的作用和用法。2、掌握JSP內(nèi)置對象的作用范圍。3、了解表達式語言(EL)。二、實驗類型設(shè)計型三、實驗內(nèi)容1、首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后自己編寫一個或多個不同于例子的JSP頁面文件,能夠演示至少3個內(nèi)置對象的使用。四、代碼部分greeting.jsp頁面如下<%@pagelanguage="java"%><%@pageimport="java.util.*"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>LombozJSP</title></head><bodybgcolor="#FFFFFF"><%Datetoday=newDate();inth=today.getHours();if(h<12)response.sendRedirect("morning.jsp");elseresponse.sendRedirect("afternoon.jsp");%></body></html>(2)morning.jsp頁面如下:<%@pagecontentType="text/html;charset=GB2312"%><%@pagelanguage="java"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>LombozJSP</title></head><bodybgcolor="#FFFFFF">早上好!</body></html>afternoon.jsp頁面如下:<%@pagecontentType="text/html;charset=GB2312"%><%@pagelanguage="java"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>LombozJSP</title></head><bodybgcolor="#FFFFFF">下午好!</body></html>request對象(1)通過表單向服務(wù)器提交信息的input.html如下<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><body><formaction="getParam.jsp">姓名<inputtype="text"name="UserName"><br>選出你喜歡的歌星:<inputtype="checkbox"name="checkbox1"value="謝霆峰">謝霆峰<inputtype="checkbox"name="checkbox1"value="甄子丹">甄子丹<inputtype="checkbox"name="checkbox1"value="劉德華">劉德華<inputtype="checkbox"name="checkbox1"value="李連杰">李連杰<inputtype="submit"value="提交"></form></body></html>(2)獲取客戶端利用前面的(1)中的input.html所提交的信息的頁面getParam.jsp如下<%@pagecontentType="text/html;charset=gb2312"%><HTML><BODY>你好,<%!StringName;%><%Name=request.getParameter("UserName");Stringstars=newString("你喜歡吃的水果有:");String[]paramValues=request.getParameterValues("checkbox1");for(inti=0;i<paramValues.length;i++)stars+=paramValues[i]+"";%><%=Name%><br><%=stars%></BODY></HTML>(3)下面是向后面的(4)中頁面sum.jsp提交信息的頁面select.jsp<HTML><%@pagecontentType="text/html;charset=GB2312"%><BODY><Fontsize=5><FORMaction="sum.jsp"method=postname=form><P>選擇計算方式<Selectname="sum"size=2><OptionSelectedvalue="1">計算1到n的連續(xù)和<Optionvalue="2">計算1到n的平方和<Optionvalue="3">計算1到n的立方和</Select><P>選擇n的值:<Selectname="n"><Optionvalue="10">n=10<Optionvalue="20">n=20<Optionvalue="30">n=30<Optionvalue="40">n=40<Optionvalue="50">n=50<Optionvalue="100">n=100</Select><BR><BR><INPUTTYPE="submit"value="提交"name="submit"></FORM></FONT></BODY></HTML>(4)下面是獲取前面(3)中select.jsp頁面中的下拉列表框所提交信息的頁面sum.jsp<HTML><%@pagecontentType="text/html;charset=GB2312"%><BODY><Fontsize=5><%longsum=0;Strings1=request.getParameter("sum");Strings2=request.getParameter("n");if(s1==null){s1="";}if(s2==null){s2="0";}if(s1.equals("1")){intn=Integer.parseInt(s2);for(inti=1;i<=n;i++){sum=sum+i;}}elseif(s1.equals("2")){intn=Integer.parseInt(s2);for(inti=1;i<=n;i++){sum=sum+i*i;}}elseif(s1.equals("3")){intn=Integer.parseInt(s2);for(inti=1;i<=n;i++){sum=sum+i*i*i;}}%><P>您的求和結(jié)果是<%=sum%></FONT></BODY></HTML>桂林電子科技大學(xué)______________________實驗報告實驗名稱_____JavaBean的使用________________ 鋪導(dǎo)員意見:____________________系____________________專業(yè)____________________班第______________實驗小組作者________________學(xué)號_____________________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握JavaBean的原理和定義。2、掌握與JavaBean相關(guān)的JSP動作組件。3、會在JSP中使用JavaBean。二、實驗類型設(shè)計型三、實驗內(nèi)容首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后自己編寫一個或多個不同于例子的JavaBean和JSP頁面文件等,能夠演示JavaBean與JSP相結(jié)合的使用。四、代碼部分<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><html><head><title>JavaBean測試</title></head><bodybgcolor="#FFFFFF"><jsp:useBeanid="student1"scope="page"class="com.jsp.Student"/>利用標(biāo)記獲取JavaBean屬性:<jsp:getPropertyname="student1"property="name"/><br>利用對象方法獲取JavaBean屬性:<%=student1.getName()%><br>利用標(biāo)記設(shè)置JavaBean屬性name為temp:<jsp:setPropertyname="student1"property="name"value="temp"/><br>獲取新的屬性:<jsp:getPropertyname="student1"property="name"/><br>利用對象方法設(shè)置JavaBean屬性name為zhang:<%student1.setName("zhang");%><br>獲取新的屬性:<%=student1.getName()%></body></html>3、下面演示如何通過請求參數(shù)來給JavaBean的屬性賦值。首先是一個通過表單的形式向request對象中添加參數(shù)的頁面input.html,代碼如(1)中所示。(1)input.html頁面的效果圖和代碼如下:<!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>ParamHTML</title></head><bodybgcolor="#FFFFFF"><formaction="param.jsp">姓名<inputtype="text"name="UserName"><br>年齡<inputtype="text"name="age"><br>專業(yè)<inputtype="text"name="major"><br><inputtype="submit"value="提交"></form></body></html>(2)下面是利用請求中的參數(shù)值給JavaBean的屬性賦值的頁面param.jsp如下:<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><%request.setCharacterEncoding("gb2312");%><html><head><title>利用請求參數(shù)設(shè)置JavaBean屬性</title></head><bodybgcolor="#FFFFFF"><jsp:useBeanid="student2"scope="page"class="com.jsp.Student"/><jsp:setPropertyname="student2"property="name"param="UserName"/><jsp:setPropertyname="student2"property="age"param="age"/><jsp:setPropertyname="student2"property="major"param="major"/><tr><td>姓名</td><td><jsp:getPropertyname="student2"property="name"/></td></tr><tr><td>年齡</td><td><jsp:getPropertyname="student2"property="age"/></td><tr><td>專業(yè)</td><td><jsp:getPropertyname="student2"property="major"/></td></tr></tr></body></html>4、下面是一個通過JSP和JavaBean相結(jié)合來實現(xiàn)網(wǎng)頁計數(shù)器的簡單例子。(1)首先將網(wǎng)頁計數(shù)器以一個JavaBean的形式來封裝實現(xiàn):publicclasscounter{//初始化JavaBean的成員變量intcount=0;//Class構(gòu)造器publiccounter(){}//屬性count的Get方法publicintgetCount(){//獲取計數(shù)器的值,每一次請求都將計數(shù)器加1count++;returnthis.count;}//屬性Count的Set方法publicvoidsetCount(intcount){this.count=count;}}(2)然后是通過引用上述JavaBean來實現(xiàn)網(wǎng)頁計數(shù)的動態(tài)頁面counter.jsp:<%@pagecontentType="text/html"%><%@pagepageEncoding="UTF-8"%><!DOCTYPEHTMLPUBLIC"-//w3c//dtdhtml4.0transitional//en"><html><head><title>網(wǎng)頁計數(shù)器</title></head><bodybgcolor="#FFFFFF"><jsp:useBeanid="counter"scope="application"class="com.jsp.counter"/><center>當(dāng)前頁面訪問次數(shù):<jsp:getPropertyname="counter"property="count"/></center></body></html>桂林電子科技大學(xué)______________________實驗報告實驗名稱_______JDBC數(shù)據(jù)庫編程____________ 鋪導(dǎo)員意見:____________________系____________________專業(yè)____________________班第______________實驗小組作者________________學(xué)號_____________________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握JDBC工作原理。2、掌握JDBC編程中Connection、Statement、ResulSet等幾個主要的類的使用。3、了解連接池的概念和應(yīng)用。二、實驗類型設(shè)計型三、實驗內(nèi)容1、首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后自己設(shè)計一個數(shù)據(jù)庫。通過JDBC來進行數(shù)據(jù)庫的訪問,以Access或SQLServer等為數(shù)據(jù)庫管理系統(tǒng),建立一個用于圖書管理的簡單數(shù)據(jù)庫,書的信息包括索引號、書名、作者、定價、出版社等。要求具有圖書記錄的查詢、添加、修改、刪除和顯示等功能。四、代碼部分對于java而言,數(shù)據(jù)庫的連接有四種方法:類型1:JDBC-ODBC橋作為JDK1.1后的一部分,它是sun.jdbc.odbc包的一部。通過Application>JDBC-ODBCBridge>JDBC-ODBCLibrary>ODBCDriver-->Database的形式實現(xiàn)。適用于快速的原型系統(tǒng),沒有提供JDBC驅(qū)動的數(shù)據(jù)庫如Access。類型2:JAVAtoNativeAPI利用開發(fā)商提供的本地庫來直接與數(shù)據(jù)庫通信。通過Application>JDBCDriver>NativeDatabaselibrary>Database的形式。比類型1性能略好。類型3:Javatonet通過Application>JdbcDriver>javamiddleware>JDBCDriver>Database的形式。具有最大的靈活性,通常由那些非數(shù)據(jù)庫廠商提供,是四種類型中最小的。類型4:JAVAtonativedababase(SUN定義的JDBC標(biāo)準(zhǔn))通過Application>JDBCDriver>DatabaseEngine>Database的形式。具有最高的性能,通過自己的本地協(xié)議直接與數(shù)據(jù)庫引擎通信,具備在Internet裝配的能力。在以上幾種方法中,一般常用兩種方法:使用JDBC-ODBC橋接驅(qū)動或者使用純Java的JDBC驅(qū)動。純Java的JDBC驅(qū)動程序是獨立的連接驅(qū)動程序,不需要中間服務(wù)器,與數(shù)據(jù)庫實現(xiàn)通信的整個過程均由Java語言實現(xiàn)。這種方法效率高使用廣泛,但缺點是需要下載相應(yīng)的驅(qū)動類包,且不同的數(shù)據(jù)庫的連接代碼可能不同。幾種更新數(shù)據(jù)記錄(insert、delete、update)的方法以及PreparedStatement類的應(yīng)用舉例:1、增加數(shù)據(jù)記錄增加數(shù)據(jù)記錄的SQL語法是:insertinto表名(字段名1,字段名2……)values(字段值1,字段值2……)例如:insertintoxsda(classID,name,sex,birthDate,isMember,address,resume)values(12,’張雷’,’男’,’1988-9-8’,1,’北京’,’’)使用Statement對象增加數(shù)據(jù)表記錄對方法:首先創(chuàng)建一個SQL語句,然后調(diào)用Statement對象的executeUpdate()方法。Stmt.executeUpaate(sql);該方法會返回一個整數(shù),表示成功插入的記錄數(shù)。使用ResultSet對象的moveToInsertRow和insertRow方法增加數(shù)據(jù)標(biāo)記錄:Stringsql=”select*fromxsda”;ResultSetrs=stmt.executeQuery(sql);//獲取數(shù)據(jù)表的全部結(jié)果集rs.moveToInsertRow();//將數(shù)據(jù)表指針移到插入記錄位置rs.updateInt(2,13);//向classID字段輸入數(shù)據(jù)rs.updateString(3,’黃紅’);//向name字段輸入數(shù)據(jù)rs.updateString(4,’女’);//向sex字段輸入數(shù)據(jù)rs.updateString(5,’1997-9-8’);//向birthDate字段輸入數(shù)據(jù)rs.updateString(6,’大連’);//向address字段輸入數(shù)據(jù)rs.updateInt(7,1);//向isMember字段輸入數(shù)據(jù)rs.updateString(8,’無’);//向resume字段輸入數(shù)據(jù)try{rs.insertRow();//真正寫入數(shù)據(jù)}catch(Exceptione){}使用PrepareStatement對象增加數(shù)據(jù)表記錄與使用Statement類似,只是創(chuàng)建SQL語句時,可以帶參數(shù)(以“?”表示),插入時通過更改參數(shù)實現(xiàn)記錄的更新。Stringsql=”insertintoxsda(classID,name,sex,birthDate,isMember,address,resume)values(?,?,?,?,?,?,’’)”;PrepareStatementpstmt=ConnectServer.con.prepareStatement(sql);pstmt.setInt(1,14);pstmt.setString(2,’黃少軍’);pstmt.setString(3,’男’);pstmt.setString(4,’1987-8-4’);pstmt.setString(5,’上?!?;pstmt.setInt(6,0);introwCount=pstmt.executeUpdate();if(rowCount>0)System.out.println(“成功插入記錄”);2、數(shù)據(jù)表記錄修改數(shù)據(jù)表記錄修改的SQL語法是:update表名set字段1=字段值1,字段值2……where特定條件例如:updatexsdaname=’黃小華’wherename=’黃少華’使用Statement對象修改數(shù)據(jù)表記錄:首先創(chuàng)建一個SQL語句,然后調(diào)用Statement對象的exexuteUpdate()方法:stmt.executeUpdate(sql);上述方法可以返回一個整數(shù),表示成功修改的記錄數(shù)。使用ResultSet對象修改數(shù)據(jù)記錄:Stringsql=”select*fromxsdawherename=’黃少華’”;ResultSetrs=stmt.executeQuery(sql);//獲取數(shù)據(jù)表的結(jié)果集if(rs.next()){rs.updateString(3,’黃小華’);//修改name字段的數(shù)據(jù)try{rs.updateRow();}catch(Exceptione){}}使用PrepareStatement對象修改數(shù)據(jù)表記錄與使用Statement類似,只是創(chuàng)建SQL語句時,可以帶參數(shù)(以”?”表示),修改時通過更改參數(shù)實現(xiàn)記錄的更新。Stringsql=”updatexsdasetname=?wherename=’黃少華’;PrepareStatementpstmt=ConnectServer.con.prepareStatement(sql);pstmt.setString(1,’黃小華’);introwCount=pstmt.executeUpdate();if(rowCount>0)System.out.println(“成功修改記錄”);3、刪除數(shù)據(jù)表記錄刪除數(shù)據(jù)表記錄的SQL語法:deletefrom表名where特定條件例如:deletefromxsdawherename=’黃小華’;使用Statement對象刪除數(shù)據(jù)表記錄:首先創(chuàng)建一個SQL語句,然后調(diào)用Statement對象的executeUpdate()方法:stmt.executeUpdate(sql);上述方法返回一個整數(shù),表示成功刪除的記錄數(shù)。使用Result對象刪除數(shù)據(jù)表記錄:Stringsql=”select*fromxsdawherename=’黃少華’”;ResultSetrs=stmt.executeQuery(sql);if(rs.next()){rs.de.eteRow();try{rs.updateRow();}catch(Exceptione){}}使用PrepareStatement對象刪除數(shù)據(jù)表記錄:與使用Statement類似,只是創(chuàng)建SQL語句時,可以帶參數(shù)(以”?”表示)。Stringsql=”deletefromwherename=?”;PrepareStatementpstmt=ConnectServer.con.prepareStatement(sql);pstmt.setString(1,’黃小華’);introwCount=pstmt.executeUpdate();if(rowCount>0)System.out.println(“成功刪除記錄”);importjava.sql.*;publicclassDbTest{publicstaticvoidmain(Stringargs[]){Stringname,xuehao,chinese,math,english;Connectionconn=null;Statementstmt=null;ResultSetrs=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptione){}try{conn=DriverManager.getConnection("jdbc:odbc:grade");//先對數(shù)據(jù)庫建立了名字為grade的數(shù)據(jù)源stmt=conn.createStatement();rs=stmt.executeQuery("SELECT*FROMgrade");while(rs.next()){name=rs.getString("姓名");xuehao=rs.getString("學(xué)號");chinese=rs.getString("語文");math=rs.getString("數(shù)學(xué)");english=rs.getString("英語");System.out.println("學(xué)號:"+"姓名"+"語文"+"數(shù)學(xué)"+"英語");System.out.println(""+xuehao+""+name+""+chinese+""+math+""+english);System.out.println();}conn.close();}catch(SQLExceptione){System.out.println(e.getMessage());}}}桂林電子科技大學(xué)_____javaee編程技術(shù)______實驗報告實驗名稱_____EJB及WEB服務(wù)_______________ 鋪導(dǎo)員意見:___計算機科學(xué)與工程_系__計算機科學(xué)與技術(shù)_專業(yè)____________________班第______________實驗小組作者__________學(xué)號__1__________同作者______________________________________鋪導(dǎo)員實驗日期__________年___________月___________日 成績簽名一、實驗?zāi)康?、掌握EJB的概念和作用,了解常見的EJB容器及其使用。2、掌握簡單的會話EJB、實體EJB和消息驅(qū)動EJB的開發(fā)部署方法。3、了解Web服務(wù)的概念和技術(shù)體系及其目前的一些發(fā)展?fàn)顩r,了解JavaEE平臺下的Web服務(wù)的實現(xiàn)方法和.Net平臺下Web服務(wù)的實現(xiàn)方法。二、實驗類型設(shè)計型三、實驗內(nèi)容首先運行教材或?qū)嶒炛笇?dǎo)書上的一些例子程序,然后自己設(shè)計簡單的EJB來進行應(yīng)用和演示。并能設(shè)計簡單的WEB服務(wù)應(yīng)用程序進行部署和功能演示。在NetBeans中設(shè)計一個簡單的Web服務(wù)來部署運行進行功能演示。預(yù)備知識。1、下面是如何開發(fā)一個無狀態(tài)會話EJB的例子。通過本例了解一個簡單的EJB的開發(fā)、部署過程。開發(fā)一個無狀態(tài)的會話Bean包括以下兩個步驟:(1)開發(fā)Bean實現(xiàn)類。(2)開發(fā)接口文件。接口文件包括本地接口文件和遠程接口文件。本地接口文件供與EJB組件在同一個JVM的本地客戶調(diào)用時使用,遠程接口文件供著其它JVM運行的遠端客戶調(diào)用時使用(一個EJB僅實現(xiàn)上述接口中的一種,也可以兩種接口都實現(xiàn))。創(chuàng)建方法和過程為:點擊菜單的“文件”——>“新建項目…”——>“JavaEE”——>“企業(yè)應(yīng)用程序”,然后依次點擊下一步按提示完成名為ejbstudy的項目的創(chuàng)建。右鍵點擊之,選擇“新建”——>“會話Bean…”,會看到下圖所示的提示窗口,給該EJB名稱設(shè)置為Converter,所在包命名為com.ejb,把創(chuàng)建接口的“本地”和“遠程”前面打勾,NetBeans為EJB組件自動生成了所需的三個文件:EJB實現(xiàn)文件ConverterBean.java,遠程接口文件ConverterRemote.java和ConverterLocal.java:在代碼“@Stateless”之后右鍵單擊,在彈出的菜單中選擇“插入代碼…”,再選擇“添加Business方法…”在“名稱”文本框中輸入商業(yè)方法的名稱“toLowerCase”,在“返回類型”文本框中輸入“String”,如果要使該EJB能夠被本地對象和遠程對象都能訪問,則選中“兩者”選項,否則選一個。單擊“添加…”按鈕可以為商業(yè)方法添加參數(shù)信息,這里為商業(yè)方法添加一個String類型的參數(shù)s。最后單擊“確定”按鈕,商業(yè)方法添加完畢。然后以同樣的步驟為EJB組件添加商業(yè)方法:toUpperCase(Strings)。下面需要在ConverterBean的源文件中為商業(yè)方法提供具體的實現(xiàn),完整程序代碼分別如下面的程序ConverterBean.java、ConverterLocal.java和ConverterRemote.java所示。ConverterBean.java如下:packagecom.ejb;importjavax.ejb.Stateless;@StatelesspublicclassConverterBeanimplementsConverterBeanRemote,ConverterBeanLocal{publicStringtoLowerCase(Strings){returns.toLowerCase();//s為字符串對象,調(diào)用系統(tǒng)給它提供的toLowerCase()方法。}publicStringtoUpperCase(Strings){returns.toUpperCase();//s為字符串對象,調(diào)用系統(tǒng)給它提供的toUpperCase()方法。}//Addbusinesslogicbelow.(Right-clickineditorandchoose//"InsertCode>AddBusinessMethod")}ConverterLocal.java如下:packagecom.ejb;importjavax.ejb.Local;/****@authorAdministrator*/@LocalpublicinterfaceConverterBeanLocal{StringtoLowerCase(Strings);StringtoUpperCase(Strings);}ConverterRemote.java如下:packagecom.ejb;importjavax.ejb.Remote;/****@authorAdministrator*/@RemotepublicinterfaceConverterBeanRemote{StringtoLowerCase(Strings);StringtoUpperCase(Strings);}至此EJB組件已經(jīng)開發(fā)完畢,下面將EJB組件發(fā)送到應(yīng)用服務(wù)器上。在“項目”視圖中選中“ejbstudy-ejb”,單擊右鍵選擇“部署”,則EJB組件將被成功部署到應(yīng)用服務(wù)器上。在NetBeans底部的輸

溫馨提示

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

最新文檔

評論

0/150

提交評論