版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、15第2章 jsp页面与jsp标记(实验)第2章 jsp页面与jsp标记(实验)实验1 jsp页面的基本结构1相关知识点一个jsp页面可由普通的html标记、jsp标记、成员变量和方法的声明、java 程序片以及java表达式组成。jsp引擎把jsp页面中的html标记交给用户的浏览器执行显示;jsp引擎负责处理jsp标记、变量和方法声明;jsp引擎负责运行java程序片、计算java 表达式,并将需要显示的结果发送给用户的浏览器。jsp页面中的成员变量是被所有用户共享的变量。java 程序片可以操作成员变量,任何一个用户对jsp页面成员变量操作的结果,都会影响到其他用户。如果多个用户访问一个
2、jsp页面,那么该页面中的java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片内。运行在不同线程中的java程序片的局部变量互不干扰,即一个用户改变java程序片中的局部变量的值不会影响其他用户的java程序片中的局部变量。2实验目的本实验的目的是让学生掌握怎样在jsp页面中使用成员变量,怎样使用java程序片、java表达式。3实验要求编写两个jsp页面,分别为inputname.jsp和people.jsp。(1)inputname.jsp的具体要求该页面有一个表单,用户通过该表单输入自己的姓名并提交给people.jsp页面。(2)people.jsp的具体要求 该
3、页面有名字为person、类型是stringbuffer以及名字是count、类型为int的成员变量。 该页面有public void judge ()方法。该方法负责创建person对象,当count的值是0时,judge ()方法创建person对象。 该页面有public void addperson(string p)方法,该方法将参数p指定的字符串添加到成员变量person末尾,同时将count作自增运算。 该页面在程序片中获取inputname.jsp页面提交的姓名,然后调用judge()创建person对象、调用addperson方法将用户的姓名添加到成员变量person末尾。
4、如果inputname.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用<jsp:forward page="要转向的页面"/>标记将用户转到inputname.jsp页面。 通过java表达式输出person和count的值。4jsp页面效果示例inputname.jsp(效果如图2-1所示)图2-1 输入姓名people.jsp(效果如图2-2所示)图2-2 显示姓名和人数实验2 jsp指令标记1相关知识点page 指令<% page 属性1="属性1的值" 属性2= "属性2的值" %>用来定
5、义整个jsp页面的一些属性和这些属性的值。比较常用的两个属性是contenttype和import。page指令只能为contenttype指定一个值,但可以为import属性指定多个值。include指令标记<% include file= "文件的url " %>的作用是在jsp页面出现该指令的位置处,静态插入一个文件。被插入的文件必须是可访问和可使用的,如果该文件和当前jsp页面在同一web服务目录中,那么“文件的url”就是文件的名字;如果该文件在jsp页面所在的web服务目录的一个子目录中,比如filedir子目录中,那么“文件的url”就是“file
6、dir/文件的名字”。include指令标记在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前jsp页面,其优点是页面的执行速度快。2实验目的本实验的目的是让学生掌握怎样在jsp页面中使用page指令设置contenttype的值;使用include指令在jsp页面中静态插入一个文件的内容。3实验要求编写三个jsp 页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事本”编写一个txt文件hello.txt。hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“<br>”分隔,如下所示:hello.txtpac
7、kage apple void back public<br>private throw class hello welcome(1)first.jsp的具体要求first.jsp使用page指令设置contenttype属性的值是text/plain,使用include指令静态插入hello.txt文件。(2)second.jsp的具体要求second.jsp使用page指令设置contenttype属性的值是application/vnd.ms-powerpoint,使用include指令静态插入hello.txt文件。(3)third.jsp的具体要求third.jsp使用p
8、age指令设置contenttype属性的值是application/msword,使用include指令静态插入hello.txt文件。4jsp页面效果示例first.jsp(效果如图2-3所示)图2-3 contenttype的值是text/plainsecond.jsp(效果如图2-4所示)图2-4 contenttype的值是application/vnd.ms-powerpointthird.jsp(效果如图2-5所示)图2-5 contenttype的值是application/msword实验3 jsp动作标记1相关知识点include 动作标记<jsp:include p
9、age="文件的url"/>是在jsp页面运行时才处理加载的文件,被加载的文件在逻辑和语法上独立于当前jsp页面。include 动作标记可以使用param子标记向被加载的jsp文件传递信息。forward动作标记<jsp:forward page="要转向的页面" />的作用是:从该指令处停止当前页面的继续执行,而转向执行page属性指定的jsp页面。forward标记可以使用param动作标记作为子标记,以便向要转向的jsp页面传送信息。2实验目的本实验的目的是让学生掌握怎样在jsp页面中使用include标记动态加载文件;使用fo
10、rward实现页面的转向。3实验要求编写四个jsp 页面:one.jsp 、two.jsp、three.jsp和error.jsp。one.jsp 、two.jsp和three.jsp页面都含有一个导航条,以便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件head.txt。导航条文件head.txt的内容如下所示:head.txt<% page contenttype="text/html;charset=gb2312" %> <table cellspacing="1" cellp
11、adding="1" width="60%" align="center" border="0" > <tr valign="bottom"> <td><a href="one.jsp"><font size=3>one.jsp页面</font></a></td> <td><a href="two.jsp"><font size=3>
12、;two.jsp页面</font></a></td> <td><a href="three.jsp"><font size=3>three.jsp页面</font></a></td> </tr> </font></table>(1)one.jsp的具体要求要求one.jsp页面有一个表单,用户使用该表单可以输入一个1100之间的整数,并提交给该页面;如果输入的整数在50100之间(不包括50)就转向three.jsp,如果在150之
13、间就转向two.jsp;如果输入不符合要求就转向error.jsp。要求forward标记在实现页面转向时,使用param子标记将整数传递到转向的two.jsp或three.jsp页面,将有关输入错误传递到转向的error.jsp页面。(2)two.jsp、three.jsp和error.jsp的具体要求要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error.jsp页面能显示有关的错误信息和一幅 图像。4jsp页面效果示例one.jsp(效果如图2-6所示)图2-6 使用include动作标记加载导
14、航条two.jsp(效果如图2-7所示)图2-7 得到param子标记传递来的值three.jsp(效果如图2-8所示)图2-8 得到param子标记传递来的值error.jsp(效果如图2-9所示)图2-9 显示错误信息实验一参考答案:<!-people.jsp-><% page contenttype="text/html;charset=gb2312" %><html><body bgcolor=yellow><font size=4> <%! int count; stringbuffer perso
15、n; public void jige() if(count=0) person=new stringbuffer(); public void addperson(string p) if(count=0) person.append(p); else person.append(","+p); count+; %> <% string name=request.getparameter("name"); byte bb=name.getbytes("iso-8859-1"); name=new string(bb);
16、if(name.length()=0|name.length()>10) %> <jsp:forward page="inputname.jsp" /> <% jige(); addperson(name); %> <br> <b>目前共有<%=count%>人浏览了该页面,他们的名字是:</b> <br> <%=person%></font></body></html><!-inputname.jsp-><% p
17、age contenttype="text/html;charset=gb2312" %><html><body bgcolor="cyan"><font size=4> <form action="people.jsp" method=get name=form> <b>请输入姓名:</b><input type="text" name="name"> <br> <input type=
18、"submit" value="送出" name=submit> </form> </font></body></html>实验二参考答案:<!-first.jsp-><% page contenttype="text/plain" %><html><body> <font size="4" color="blule"> <% include file="hello.
19、txt" %> </font></body></html><!-second.jsp-><% page contenttype="application/vnd.ms-powerpoint" %><html><body> <font size="4" color="blule"> <% include file="hello.txt" %> </font></body>
20、</html><!-third.jsp-><% page contenttype="application/msword" %><html><body> <font size="4" color="blule"> <% include file="hello.txt" %> </font></body></html>实验三参考答案:<!-one.jsp-><% page cont
21、enttype="text/html;charset=gb2312" %><html><head> <jsp:include page="head.txt"/></head><body bgcolor=yellow> <form action="" method=get name=form> 请输入1至100之间的整数:<input type="text" name="ok"> <br> <
22、;input type="submit" value="送出" name=submit> </form> <% string a=request.getparameter("ok"); if(a=null) a="0" try int b=integer.parseint(a); if(b>=1&&b<=50) %> <jsp:forward page="two.jsp" > <jsp:param name="
23、ok" value="<%=b%>" /> </jsp:forward><% else if(b>50&&b<=100) %> <jsp:forward page="three.jsp" > <jsp:param name="ok" value="<%=b%>" /> </jsp:forward><% catch(exception e) %> <jsp:forward
24、page="error.jsp" > <jsp:param name="mess" value="<%=e.tostring()%>" /> </jsp:forward><% %></body></html><!-two.jsp-><% page contenttype="text/html;charset=gb2312" %><head> <jsp:include page="head
25、.txt"/></head><html> <body bgcolor=yellow> <p><font size=2 color=blue> this is two.jsp. </font> <font size=3> <% string s=request.getparameter("ok"); out.println("<br>传递过来的值是"+s); %> <br><img src="a.jpg&q
26、uot; width="<%=s%>" height="<%=s%>" ></img> </font> </body></html><!-three.jsp-><% page contenttype="text/html;charset=gb2312" %><head> <jsp:include page="head.txt"/></head><html> <b
27、ody bgcolor=yellow> <p><font size=2 color=red> this is three.jsp. </font> <font size=3> <% string s=request.getparameter("ok"); out.println("<br>传递过来的值是"+s); %> <br><img src="a.jpg" width="<%=s%>" height=&q
28、uot;<%=s%>" ></img> </font> </body></html><!-three.jsp-><% page contenttype="text/html;charset=gb2312" %><head> <jsp:include page="head.txt"/></head><html> <body bgcolor=yellow> <p><font size
29、=2 color=red> this is three.jsp. </font> <font size=3> <% string s=request.getparameter("ok"); out.println("<br>传递过来的值是"+s); %> <br><img src="a.jpg" width="<%=s%>" height="<%=s%>" ></img> </font> </body></html><!-error.jsp-><% page contenttype="text/html;charset=gb2312" %><head> <jsp:include page="head.txt"/></head><html> <
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年单独招生建筑类专业测试题(答案)
- 电力工程安全事故上报处置流程
- 2026年郴州市北湖区公务员人员招聘考试模拟试题与答案详解
- 2026北京大学材料科学与工程学院招聘劳动合同制人员2人考试备考试题及答案解析
- 2026年度第八师法院招聘聘用制书记员(6人)考试备考题库及答案解析
- 2027重庆国际复合材料股份有限公司招聘217人考试模拟试题及答案解析
- 东方电气投资管理有限公司2026年员工公开招聘(1人)考试模拟试题及答案解析
- 2026年云南医药健康职业学院岗位招聘(11人)考试模拟试题及答案解析
- 2026年唐山市丰润区公务员人员招聘笔试试题与答案详解
- 2026年洛阳市廛河回族区事业单位人员招聘笔试备考题库与答案详解
- 绵阳科技城新区创业园街道社区卫生服务中心2026年医生招聘(4人)笔试备考题库及答案解析
- 新版【新教材】统编版(2024)七年级上册道德与法治期中复习:必刷100题选择题(含答案解析)
- 2026中国微生物制剂在农业领域应用现状与市场前景
- 2027年浙江省高三高考一模英语试卷试题(含答案详解)
- 2026年云南云瑞水务有限公司社会公开招聘(25人)考试参考题库及答案详解
- 2026招生计划历史类
- 商业航天行业研究系列7:SpaceX供应链与BOM全景拆解
- 中国水稻研究所陵水试验基地建设项目水土保持报告表
- (2025年)陕西省西安市员额法官遴选面试考题及答案
- 试验 检测监理实施细则
- 质量负责人、技术负责人及授权签字人考核试卷(附答案)
评论
0/150
提交评论