《JSP基础教程源代码(西安电子科大).pdf》由会员分享,可在线阅读,更多相关《JSP基础教程源代码(西安电子科大).pdf(227页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JSP基 础 教 程 源 代 码(西 安 电 子 科 大)第 1章 JSP简 介 例 子 1Examplel_l.jsp BODY BGCOLOR二 cyan)这 是 一 个 简 单 的 JSP页 面%int i,sum=0;for(i=l;i 1 到 100的 连 续 和 是:第 2 章 JSP语 法例 子 1Example2_l.jsp 您 是 第 个 访 问 本 站 的 客 户。例 子 2Example2_2.jsp%!int number=0;synchronized void countPeople()number+;i%您 是 第 个 访 问 本 站 的 客 户。例 子 3Exam
2、ple2_3.jsp%!int number=0;File file=new File(count.txt);synchronized void countPeople()计 算 访 问 次 数 的 同 步 方 法 if(!file.existsO)number+;try(file.createNewFileO;FileOutputStream FileOutputStream(count.txt);DataOutputStream DataOutputStream(out);dataOut.writelnt(number);out.close();dataOut.close();catch(
3、lOException ee)elseItry(FilelnputStream FilelnputStream(,zcount.txt/);in=new dataOut=new out=newDatalnputStream DatalnputStream(in);dataln=newnumber=dataln.readlnt();number+;in.close();dataln.close();FileOutputStream FileOutputStream(/zcount.txt);DataOutputStream DataOutputStream(out);dataOut.writel
4、nt(number);out.close();dataOut.close();catch(lOException ee)%dataOut=new out=newcountPeopleO;%您 是 第 个 访 问 本 站 的 客 户。例 子 4Example2_4.jsp 请 输 入 圆 的 半 径:%!TYPE=submit value二 送 出 public class Circle double r;Circle(double r)this.r=r;double求 面 积()return Math.PI*r*r;double求 周 长()return Math.PI*2*r;%String
5、 str=request.getParameter(,cat/,);if(str!=null)!r=Double.parseDouble(str);else(r=l;ICircle circle=new Circle(r);/创 建 对 象 圆 的 面 积 是:%=circle.求 面 积()圆 的 周 长 是:%=circle.求 周 长()double r;%例 子 5Example2 5.jsp%!long continueSum(int n)Iint sum=0;for(int i=l;i1到 100的 连 续 和:例 子 6Example2 6.jsp 请 输 入 E-mail:您
6、的 email地 址 中 没 有。%elseint space=str.indexOf C);if(space!=-l)%您 的 email地 址 含 有 非 法 的 空 格。0 else int start=str.indexOf();int end=str.lastlndexOf(,z/z);if(start!=end)您 的 email地 址 有 两 个 以 上 的 符 else out.print(,/,+str);号:BR 您 的 email地 址 书 写 正 确。例 子 7Example2_7.jsp Sin(0.9)除 以 3 等 于3的 平 方 是:12345679 乘 72
7、等 于 5 的 平 方 根 等 于 P 99大 于 100吗?回 答:100%例 子 8Example2 8.jsp 请 输 入 三 角 形 的 三 个 边 a,b,c 的 长 度:FORM action=method=post name=form P请 输 入 三 角 形 边 a 的 长 度:请 输 入 三 角 形 边 b 的 长 度:INPUT type=text name=b 请 输 入 三 角 形 边 c 的 长 度:INPUT TYPE=submit value=name=submit 魏 一 获 取 客 户 提 交 的 数 据 一%魏 一 求 出 边 长,并 计 算 面 积 一%t
8、ry(a=Double.valueOf(string a).doubleValue();b=Double.valueOf(string_b).doubleValue();Double.valueOf(string_c).doubleValue();if(a+b c&a+c b&b+c a)double p=(a+b+c)/2.0;doublemianji=Math.sqrt(p*(p-a)*(p-b)*(p-c);out.print(+三 角 形 面 积:+mianji);IelseIout.print(+您 输 入 的 三 边 不 能 构 成 一 个 三 角 形);catch(NumberF
9、ormatExcept ion e)out.print(+请 输 入 数 字 字 符);I%例 子 9Example2 9.jsp B0DY bgcolor=cyan)注:上 述 Example2_9.jsp 等 价 于 下 面 的 JSP 文 件:Example2_9_l.jspoExample2 9 1.jsp 你 们 好,很 高 兴 认 识 你 们 呀!例 子 10Computer,jsp BRXINPUT TYPE=submit value=name二 submit%送 出 String a=request.getParameter(z,okz,);if(a=null)T;trydou
10、ble number=Integer.parselnt(a);out.print(BR+Math sqrt(number);catch(NumberFormatExcept ion e)out.print(+请 输 入 数 字 字 符);%Example2_10.jsp 请 输 入 一 个 正 数,点 击 按 钮 求 这 个 数 的 平 方 根。Example2_10_l.jsp 请 输 入 一 个 正 数,点 击 按 钮 求 这 个 数 的 平 方 根。BRXINPUTname=submit)%String a=request.getParameter(ok);if(a=null)TYPE二
11、 submit value二 送 出 a二 T;try(double number=Integer.parselnt(a);out.print(+Math.sqrt(number);catch(NumberFormatException e)out.print(BR+请 输 入 数 字 字 符);%例 子 11Example2_ll.jsp P加 载 的 文 件:加 载 的 图 象:例 子 12tom.jsp%String str=request.getParameter(computer);获 取 值。int n=Integer.parselnt(str);int sum=0;for(int
12、 i=l;i从 1 到/二 n%的 连 续 和 是:Example2_12.jsp p 加 载 文 件 效 果:例 子 13Example2_13.jsp 0.5)!%这 句 话 和 下 面 的 表 达 式 的 值 能 输 出 吗?例 子 14come,jsp%page contentType=,/text/html;charset=GB2312,/%您 传 过 来 的 数 值 是:Example2_14.jsp%page contentType=,/text/html;charset=GB2312z,%n=Double.parseDouble(str);/例 子 15Example2_15.
13、jsp Plugin tag OBJECT or EMBED not supported by browser.第 3 章 J SP内 置 对 象 例 子 1Example3_l.jspF0RM action=tree.jsp method=post name二 form INPUTname=submit”)tree.jsp P获 取 文 本 框 提 交 的 信 息:TYPE=/Zsubmit/Z value=Enter”获 取 按 钮 的 名 字:例 子 2Example3_2.jsp INPUTname=submit TYPE=submit value=Enter”=0)(r=Math.s
14、qrt(number);out.print(,/Z+String.valueOf(number)+的 平 方 根:);out.print(+String.valueOf(r);else!out.print(BR+请 输 入 一 个 正 数);)catch(NumberFormatExcept ion e)out.print(BR+请 输 入 数 字 字 符);)%例 子 3Example3 3.jsp tree.jsp:TYPE=submit value=”提 交 获 取 文 本 框 提 交 的 信 息:获 取 按 钮 的 名 字:例 子 4Example3_4.jsp:INPUT TYPE二
15、 submit value=enter”name二 submit”)tree2.jsp 客 户 使 用 的 协 议 是:获 取 接 受 客 户 提 交 信 息 的 页 面:BR 接 受 客 户 提 交 信 息 的 长 度:客 户 提 交 信 息 的 方 式:%String method=request.getMethodO;out.printin(method);%获 取 HTTP头 文 件 中 User-Agent的 值:获 取 HTTP头 文 件 中 accept的 值:获 取 HTTP头 文 件 中 Host的 值:获 取 HTTP 头 文 件 中 accept-encoding 的 值
16、:BR 获 取 客 户 的 IP地 址:获 取 客 户 机 的 名 称:%String clientName=request.getRemotellost();out.print In(cl ientName);%获 取 服 务 器 的 名 称:获 取 服 务 器 的 端 口 号:BR 获 取 客 户 端 提 交 的 所 有 参 数 的 名 字:BR 获 取 头 名 字 的 一 个 枚 举:%Enumerationenum_headed=request.getHeaderNames();while(enum_headed.hasMoreElements()Strings=(String)enu
17、m_headed.nextElement();out.printin(s);I%BR获 取 头 文 件 中 指 定 头 名 字 的 全 部 值 的 一 个 枚 举:文 本 框 text提 交 的 信 息:按 钮 的 名 字:%String buttonName=request.getParameter(,/submitz,);bytec=buttonName.getBytes(z,I SO-8859-Tz);buttonName=new String(c);%例 子 5name,jsp 输 入 你 的 姓 名:P 点 击 送 出 按 钮:login,jsp%String name=reques
18、t.getParameter(nam。);if(name=null)name=;byte b=name.getBytes(z,IS0-8859-rz);name=new String(b);if(!(hashtable.containsKey(name)putName(name);out.print(+”您 已 经 注 册 成 功”);out.print(BR+您 注 册 的 名 字 是 else out.print(+该 名 字 已 经 存 在,请+name);您 换 个 名 字);)%例 子 6radio,jsp P诗 人 李 白 是 中 国 历 史 上 哪 个 朝 代 的 人:FORM
19、action=answer.jsp method=post name=form 宋 朝 唐 朝 明 朝 元 朝 type=radio name=R value二 d 小 说 红 楼 梦 的 作 者 是:曹 雪 芹 罗 贯 中 李 白 司 马 迁 answer,jsp%int n=0;String si=request.getParameter(R);String s2二 request.getParameter(P);if(sl=null)sl=;if(s2=null)s2=;if(si.equals(b)n+;if(s2.equals(a)n+;%您 得 了 分 例 子 7select.js
20、p P选 择 计 算 和 的 方 式 F0RM action二 sum.jsp,method=post name=form 计 算 1 到 n 的 连 续 和 计 算 1 到 n 的 平 方 和 计 算 1到 n 的 立 方 和 P选 择 n 的 值:n=10n=20n=30n=40n=50n=100 INPUT TYPE二 submit value=”提 交 你 的 选 择 name=submit”)sum.jsp%long sum=0;String sl=request.getParameter(z,sumz,);String s2=request.getParameter(n);if(s
21、l=null)sl=;if(s2=null)s2=0;if(si.equals(r)(int n=Integer.parselnt(s2);for(int i=l;i=n;i+)sum=sum+i;)else if(si.equals)int n=Integer.parselnt(s2);for(int i=l;i=n;i+)sum=sum+i*i;)else if(si.equals(3)(int n=Integer.parselnt(s2);for(int i=l;i P 您 的 求 和 结 果 是=sum%例 子 8table,jsp:中 间 右 左/TH数 据 靠 向 上 沿 数 据
22、靠 向 下 沿 数 据 居 中 靠 向 下 沿 你 好 hello/TD112334例 子 9Example3 10.jsp 我 正 在 学 习 response对 象 的 setContentType 方 法 将 当 前 页 面 保 存 为 word文 档 吗?%String str=request.getParameter(submit);TYPE二 submit value二 yesif(str=null)!str二;if(str.equals(yes)response.setContentType(,zapplication/msword;charset=GB2312,z);I%例 子
23、 10Example3_l1.jsp 观 看 旋 转 的 椭 圆%String str=request.getParameter(,submit,/);if(str!=nul 1)!response.setContentType(z/image/jpegz/);改 变 MIME 类 型。int width=260,height=260;Bufferedlmage image=看 newBufferedlmage(width,height,Bufferedlmage.TYPE_INT_RGB);Graphics g=image.getGraphicsO;g.setColor(Color,whit
24、e);g.fillRect(0,0,width,height);Graphics2D g_2d=(Graph i cs2D)g;Ellipse2D(20,50,120,50);g_2d.setColor(Color.blue);AffineTransform trans=new AffineTransformO;for(int i=1;i例 子 11Example3_12.jsp P 现 在 的 时 间 是:例 子 12Example3_13.jsp 填 写 姓 名:INPUT TYPE=text name二 boy tree,jsp例 子 13Example3_14.jsp 点 击 下 面
25、的 超 链 接:birdl:欢 迎 你 吗?bird2:欢 迎 你 吗?bird3:欢 迎 你 吗?birdl.jspbird2.jsp%response.setStatus(200);out.printin(ok);%bird3.jsp 例 子 14session.jsp 您 的 session对 象 的 ID是:输 入 你 的 姓 名 连 接 到 tom.jsp tom.jsp P我 是 Tom页 面 您 的 在 Tom页 面 中 的 session对 象 的 ID是:点 击 超 链 接,连 接 到 Jer”的 页 面。欢 迎 到 Jeiry屋 来!jerry,jsp P我 是 Jerry
26、页 面 您 在 Jerry页 面 中 的 session对 象 的 ID是:点 击 超 链 接,连 接 到 session的 页 面。HREF=session.jsp 欢 迎 到 session屋 来!例 子 15session,jsp 您 的 session对 象 的 ID是:您 的 session对 象 的 ID是:您 向 URL:http:/localhost:8080/tom.jsp 写 入 的 信 息 是:FORM action=method二 post name=form tom.jsp P我 是 Tom页 面 您 在 Tom页 面 中 的 session对 象 的 ID是:您 向
27、 URL:http:/localhost:8080/jerry,jsp 写 入 的 信 息 是:点 击 超 链 接,连 接 到 Jeby的 页 面。A HREF=,/欢 迎 到 Jerry屋 来!jerry.jsp 我 是 jerry页 面 您 的 在 jerry页 面 中 的 session对 象 的 ID是:您 向 URL:http:/localhost:8080/session,jsp 写 入 的 信 息 是:点 击 超 链 接,连 接 到 session的 页 面。A HREF=欢 迎 到 session屋 来!例 子 16Example3_17.jsp 输 入 你 的 姓 名 连 接
28、 到 第 一 百 货:first.jspFORM action=first.jsp method=post name二 form TYPE=submit value=送 出 first.jsp 这 里 是 第 一 百 货 P 输 入 你 想 购 买 的 商 品 连 接 到 结 帐:account.jsp INPUTname=submit)TYPE=submit value二 送 出 action二 account.jsp method=postaccount.jsp%String s=request。getParameter(buy);session.setAttribute(,goods/,
29、,s);%这 里 是 结 帐 处 的 姓 名 是:炉 姓 名 肮 您 选 择 购 买 的 商 品 是:4 二 商 品 上 例 子 17Example3_18.jsp 随 机 分 给 了 你 一 个 1到 100之 间 的 数,请 猜!输 入 你 的 所 猜 的 数 action二 result.jsp method二 post”INPUTname=submit”result,jsp TYPE=submit value二 送 出%String str=request.getParameter(,zboyz,);if(str=null)(str二 0;int guessNumber=Integer
30、.parselnt(str);Integerinteger=(Integer)session.getAttribute(,zsave/z);intrealnumber=integer.intValueO;if(guessNumber-realnumber)(intn=(Integer)session.getAttribute(count).intValue();n=n+l;session.setAttribute(count”,new Integer(n);response.sendRedirect(success.jsp);else if(guessNumberrealnumber)Iint
31、n=(Integer)session.getAttribute(count).intValue();n=n+l;session.setAttribute(z/count,z,new Integer(n);response.sendRedirect(large.jsp);else if(guessNumberlarge,jsp 所 猜 的 数 比 实 际 的 数 大,请 再 猜:FORMname=form action=result.jsp method二 get”INPUTname二 submit”)small,jsp P所 猜 的 数 比 实 际 的 数 小,请 再 猜:FORM actio
32、n=result.jsp method二 post“name=form INPUTname=submit”)TYPE=submit value=送 出 TYPE=submit value=送 出”success.jsp 恭 喜 你,猜 对 了 您 共 猜 了 次 用 时 秒。P这 个 数 字 就 是 您 必 须 关 掉 浏 览 器 才 能 获 得 新 的 数。例 子 18Examle3_19.jsp%!int number=0;File file=new File(count.txt);synchronized void countPeopl6()计 算 访 问 次 数 的 同 步 方 法!i
33、f(!file.existsO)!number+;try(file.createNewFileO;FileOutputStream FileOutputStream(z,count.txt);DataOutputStream DataOutputStream(out);dataOut.writelnt(number);out.close();dataOut.close();catch(lOException ee)elseItry(FilelnputStream FilelnputStream(,zcount.txt);DatalnputStream dataln=new in=new dat
34、aOut=new out=newDatalnputS tream(in);number=dataln.read1nt();number+;in.close();dataln.closeO;FileOutputStream Fi leOutputStream(z,count.txt);DataOutputStream DataOutputStream(out);dataOut.writelnt(number);out.close();dataOut.close();catch(lOException ee)%PXP您 是 第 个 访 问 本 站 的 客 户。例 子 19Example3_20.j
35、sp:%int a=100;long b=300;boolean c=true;out.printin(这 是 标 题 1字 体 的 大 小);out.println(这 是 标 题 2 字 体 的 大 小);out.print();out.printin(a);out.printin(b);out.println(c);%以 下 是 一 个 表 格%out.print(,z);out.printin(,z);out.printin();out.printin(Z,TH+);out.println(/zTH+);out.printin(Z,+出 生 日 期+“);out.printin(,/)
36、;width=60+“性 别 width=80+姓 名 out.printin(Z,);out.printin(Z,+刘 甲 一+);out.println(,z+男+”);out.printin(?,+1978+);out.printin(,/,);out.printin(,/);out.printin(Z,+林 霞+“);out.println(,+女+);out.printin(Z,+1979+);out.printin(/Z”+这 是 表 格+“);out.printin(Z,/Z);out.printin(,/);out.print();%年 8 月 年 5 月 例 子 20subm
37、it,jsp 输 入 您 的 名 字:输 入 您 的 留 百 标 题:输 入 您 的 留 言:INPUT type=submit value=”提 交 信 息 name=submit”)messagePane.jsp%!Vector v=new Vector();action二 showMessage.jsp method二 post”int i=0;ServletContext application;synchronized void sendMessage(String s)application=getServletContext();v.add(s);application.setA
38、ttribute(Mess,v);%Stringname=request.getParameter(z,peopleNamezz);String title=request.getParameter(Title);Stringmessages=request.getParameter(messages);if(name=null)!nameguest+Cint)(Math,random()*10000);Iif(title=null)(title=无 标 题;if(messages=null)(messages=“无 信 息;String time=new Date().toStringO;S
39、trings=#+name+#+title+#+tini6+#+niessages+#;sendMessage(s);out.print(“您 的 信 息 已 经 提 交!);%A HREF=submit.jsp 返 回 查 看 留 言 版 showMessage.jsp%Vector v=(Vector)application.getAttribute(Mess);out.print(z,);out.print(,zzz);out.print(,z+留 言 者 姓 名+);out.print(z,+留 言 标 题“+);out.print Ctd bagcolor=cyan+留 言 时 间”
40、+);out.print(z,td bagcolor=cyan”+留 言 内 容+);for(int i=0;iv.size();i+)!out.print(,z,);String message=(String)v.elementAt(i);StringTokenizerStringTokenizer(message,/z#,z);out.print();int number=fenxi.countTokens();for(int k=0;knumber;k+)String str=fenxi.nextTokenO;byte a=str.getBytes(/zISO-8859-l/z);st
41、r=new String(a);if(knumberl)(out.print(z,+str+);elseIout.print(z,/+str+zz/);!Iout.print();Iout.print(“/table”);%第 4 章 JSP中 的 文 件 操 作 例 子 1Example4_l.jsp 文 件 Examplel 2.jsp是 可 读 的 吗?文 件 Examplel 2.jsp 的 长 度:跳 二 fl.length()%字 节 jasper,sh 是 目 录 吗?Examplel_2.jsp 的 父 目 录 是:jasper.sh的 绝 对 路 径 是:例 子 2Examp
42、le4 2.jsp 在 root下 创 建 一 个 新 的 目 录:Student,BR 成 功 创 建 了 吗?Student是 目 录 吗?例 子 3Example4_3.jsp%FileFile(/ZE:/Tomcat5.0/webapps/rootz,);File file=dir.listFilesO;%BR目 录 有:%for(int i=0;ifile.length;i+)Iif(filei.isDirectory()out.print(z,/z+filei.toStringO);dir=new%文 件 名 字:%for(int i=0;ifile.length;i+)(if(f
43、ilei.isFileO)out.print(z,/z+filei.toStringO);%例 子 4Example4 4.jsp 下 面 列 出 了 服 务 器 上 的 jsp文 件%File dir=new File(/ZE:/Tomcat5.0/webapps/root/z/);FileJSP file_jsp=newFileJSP(jsp);String file_name=dir.list(file_jsp);for(int i=0;ifile_name.length;i+)Iout.print(z,z+file namei);%例 子 5Example4_5.jsp P文 件 A.
44、java成 功 删 除 了 吗?dir=new f=new目 录 Students成 功 删 除 了 吗?例 子 6Example4_6.jsp%File dir二 newFile(C:/,“Students);dir.mkdir();File f=new File(dir,hello.txt);try(FileOutputStreamFileOutputStream(f);outfile=newBufferedOutputStreamBufferedOutputStream(outfile);bufferout=newbyte b=“你 们 好,很 高 兴 认 识 你 们 呀!nice to
45、 meet you”.getBytes();buff erout,write(b);bufferout.flush();bufferout.close();outfile.close();FileInputStrearn in=new FilelnputStream(f);BufferedlnputStreamBufferedlnputStream(in);byte c=new byte90;int n=0;while(n=bufferin.read(c)!=1)String temp=new String(c,0,n);out.print(temp);bufferin.close();buf
46、ferin=newin.close();Icatch(lOException e)I%例 子 7Example4_7.jsp%File dir二 new File(C:/,“Students);dir.mkdir();File f=new File(dir,apple.txt);try(FileWriter outfile=new FileWriter(f);BufferedWriterBufferedWriter(outfile);bufferout.write(你 好:);bufferout.newLine();buff erout,write(好 久 不 见 了,近 来 在 忙 什 么
47、呢?);bufferout.newLine();bufferout.write(欢 迎 来 玩);bufferout.newLine0;bufferout.write(“2002 年 8 月 8 日);bufferout.flush();bufferout.close();outfile.close();FileReader in=new FileReader(f);BufferedReaderBufferedReader(in);String str=null;bufferin=new bufferout=newwhile(str=bufferin.readLine()!=null)out.
48、print(/z,z+str);bufferin.close();in.close();catch(lOException e)(%例 子 8English,txt#Take an umbrella with you in case#it will rainttit rainsttit raining#itrainedttB#He is no longer the honest man_hewas#who#whom#which#that#D#During the recession,thousands of workers were#laid on#laid downttlaidout#lai
49、d off#B#The building casts a large on theground#shadow#shade#shanpoo#shawl#D#The driver came close to _killed for speeding#having been#havebeen#be#being#A#Example4 8.jsp:%page contentType=,ztext/html;charset=GB2312,z%int i=0;String str=null;Integer score=new Integer(0);Integer number=new Integer(0);
50、session.setAttribute(score,score);session.setAttribute(序 号,number);try/englishi.txt 存 放 在 f:/2000 目 录 下。File f=new File(f:/2000,“English,txt);FileReader in=new FileReader(f);BufferedReader buffer=new BufferedReader(in);while(str=buffer.readLine()!=nul1)!i+;session.setAttribute(,z+i,str);catch(lOExce