JSP页面与JSP标记_第1页
JSP页面与JSP标记_第2页
JSP页面与JSP标记_第3页
JSP页面与JSP标记_第4页
JSP页面与JSP标记_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第章 JSP页面与JSP标记(实验)第章共有3个实验。要求将Tomcat服务器的端口号恢复默认设置,即端口号为8080。要求在webapps目录下新建一个Web服务目录:practice2。除特别要求外,实验中涉及的 JSP页面均保存在practice2中。实验1 JSP页面的基本结构1相关知识点一个JSP页面可由普通的HTML标记、JSP标记、成员变量和方法的声明、Java 程序片和Java 表达式组成。JSP引擎把JSP页面中的HTML标记交给客户的浏览器执行显示;JSP引擎负责处理JSP标记、变量和方法声明;JSP引擎负责运行Java程序片、计算Java 表达式,并将需要显示的结果发送给

2、客户的浏览器。JSP页面中的成员变量是被所有用户共享的变量。Java 程序片可以操作成员变量,任何一个用户对JSP页面成员变量操作的结果,都会影响到其它用户。如果多个用户访问一个JSP页面,那么该页面中的Java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片内。运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。2实验目的本实验的目的是让学生掌握怎样在JSP页面中使用成员变量、怎样使用Java程序片、Java表达式。3实验要求编写两个JSP 页面,名字分别为inputName和peop

3、le.jsp。1. inputName.jsp的具体要求该页面有一个表单,用户通过该表单输入自己的姓名并提交给people.jsp页面。2people.jsp的具体要求(1) JSP页面有名字为person、类型是StringBuffer以及名字是count,类型为int的成员变量。(2) JSP有public void judge ()方法。该方法负责创建person对象,当count的值是0 时,judge ()方法创建person对象。(3) JSP有public void addPerson(String p)的方法,该方法将参数p指定的字符串尾加到操作成员变量person,同时将co

4、unt作自增运算。(4) JSP页面在程序片中获取inputName.jsp页面提交的姓名,然后调用judge ()创建person对象、调用addPerson方法将用户的姓名尾加到成员变量person。(5) 如果inputName.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用<jsp:forward page="要转向的页面" />标记将将用户转到inputName.jsp页面。(6) 通过Java表达式输出person和count的值。4JSP页面效果示例inputName.jsp(效果如图2-1) 图2-1 输入姓名people.jsp(

5、效果如图2-2)图2-1 显示姓名和人数5参考代码代码仅供参考,学生可按着实验要求,参考本代码编写代码。JSP页面参考代码inputName.jsp<% page contentType="text/html;charset=GB2312" %><HTML><BODY bgcolor=cyan><FONT size=3> <FORM action="people.jsp" method=get name=form> 请输入姓名:<INPUT type="text" na

6、me="name"> <BR> <INPUT TYPE="submit" value="送出" name=submit> </FORM> </BODY></HTML>people.jsp<% page contentType="text/html;charset=GB2312" %><HTML><BODY BGCOLOR=yellow><FONT Size=3> <%! int count; St

7、ringBuffer person; public void judge() 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

8、=new String(bb); if(name.length()=0|name.length()>10) %> <jsp:forward page="inputName.jsp" /> <% judge(); addPerson(name); %> <BR> 目前共有<%=count%>人浏览了该页面,他们的名字是: <BR> <%=person%></FONT></BODY></HTML>实验2 JSP指令标记1相关知识点page 指令:<% p

9、age 属性1="属性1的值" 属性2= "属性2的值" %>用来定义整个JSP页面的一些属性和这些属性的值。比较常用的两个属性是contentType和import。page指令只能为contentType指定一个值,但可以为import属性指定多个值。include指令标记:<% include file= "文件的URL " %>的作用是在JSP页面出现该指令的位置处,静态插入一个文件。被插入的文件必须是可访问和可使用的,如果该文件和当前JSP页面在同一Web服务目录中,那么"文件的URL"

10、就是文件的名字;如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么"文件的URL"就是"fileDir/文件的名字"。include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快。2实验目的本实验的目的是让学生掌握怎样在JSP页面中使用page指令设置contentType的值;使用include指令在JSP页面中静态插入一个文件的内容。3实验要求编写三个JSP 页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事

11、本”编写一个txt文件hello.txt。hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“<BR>”分隔,如下所示:hello.txtpackage apple void back public<BR>private throw class hello welcome1. first.jsp的具体要求first.jsp使用page指令设置contentType属性的值是"text/plain",使用include指令静态插入hello.txt文件。2. second.jsp的具体要求second.sp使用page指令设置co

12、ntentType属性的值是"application/vnd.ms-powerpoint",使用include指令静态插入hello.txt文件。3. third.jsp的具体要求third.jsp使用page指令设置contentType属性的值是"application/msword",使用include指令静态插入hello.txt文件。4JSP页面效果示例first.jsp(效果如图2-3) 图2-3 contentType的值是text/plainsecond.jsp(效果如图2-4)图2-4 contentType的值是vnd.ms-powe

13、rpointpeople.jsp(效果如图2-5)图2-5 contentType的值是application/msword5参考代码代码仅供参考,学生可按着实验要求,参考本代码编写代码。JSP页面参考代码first.jsp<% page contentType="text/plain" %><HTML> <BODY > <FONT size=4 color=blule> <%include file="hello.txt" %> </FONT> </BODY></

14、HTML>second.jsp<% page contentType="application/vnd.ms-powerpoint" %><HTML> <BODY > <FONT size=2 color=blule> <%include file="hello.txt" %> </FONT> </BODY></HTML>third.jsp<% page contentType="application/msword" %>

15、;<HTML> <BODY > <FONT size=4 color=blule> <%include file="hello.txt" %> </FONT> </BODY></HTML> 实验3 JSP动作标记1相关知识点include 动作标记:<jsp:include page= "文件的URL"/>是在JSP页面运行时才处理加载的文件,被加载的文件在逻辑和语法上独立于当前JSP页面。include 动作标记可以使用param子标记向被加载的JSP文件传

16、传递信息。frward动作标记<jsp:forward page="要转向的页面" />作用是:从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。forward标记可以使用param动作标记做为子标记,以便向要转向的JSP页面传送信息。2实验目的本实验的目的是让学生掌握怎样在JSP页面中使用include标记动态加载文件;使用forward实现页面的转向。3实验要求编写四个JSP 页面:one.jsp 、two.jsp和three.jsp和error.jsp。one.jsp 、two.jsp和three.jsp页面都含有一个一个导航条,以

17、便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件:head.txt。导航条文件head.txt的内容如下所示:head.txt<% page contentType="text/html;charset=GB2312" %> <table cellSpacing="1" cellPadding="1" width="60%" align="center" border="0" > <tr va

18、lign="bottom"> <td><A href="one.jsp"><font size=3>one.jsp页面</font></A></td> <td><A href="two.jsp"><font size=3>two.jsp页面</font></A></td> <td><A href="three.jsp"><font siz

19、e=3>three.jsp页面</font></A></td> </tr> </Font></table>1. one.jsp的具体要求要求one.jsp页面有一个表单,用户使用该表单可以输入一个1至100之间的整数,并提交给被页面;如果输入的整数在50至100之间(不包括50)就转向three.jsp,如果在1至50之间就转向two.jsp;如果输入不符合要求就转向error.jsp。要求forward标记在实现页面转向时,使用param子标记将整数传递到转向的two.jsp或three.jsp页面,将有关输入错误

20、传递到转向的error.jsp页面2. two.jsp、three.jsp和error.jsp的具体要求要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error页面能显示有关错误信息,和一幅图像。4JSP页面效果示例one.jsp(效果如图2-6) 图2-6 使用include动作标记加载导航条two.jsp(效果如图2-7)图2-7 得到param子标记传递来的值three.jsp(效果如图2-8)图2-8 得到param子标记传递来的值error.jsp(效果如图2-9)图2-9 显示错误信息5参

21、考代码代码仅供参考,学生可按着实验要求,参考本代码编写代码。JSP页面参考代码one.jsp<% page contentType="text/html;charset=GB2312" %><HEAD> <jsp:include page="head.txt"/></HEAD><HTML><BODY bgcolor=yellow> <FORM action="" method=get name=form> 请输入1至100之间的整数:<INPUT

22、 type="text" name="number"> <BR> <INPUT TYPE="submit" value="送出" name=submit> </FORM> <% String num=request.getParameter("number"); if(num=null) num="0" try int n=Integer.parseInt(num); if(n>=1&&n<=50)

23、%> <jsp:forward page="two.jsp" > <jsp:param name="number" value="<%=n%>" /> </jsp:forward><% else if(n>50&&n<=100) %> <jsp:forward page="three.jsp" > <jsp:param name="number" value="<%=n

24、%>" /> </jsp:forward><% catch(Exception e) %> <jsp:forward page="error.jsp" > <jsp:param name="mess" value="<%=e.toString()%>" /> </jsp:forward><% %></BODY></HTML>two.jsp<% page contentType="text/h

25、tml;charset=GB2312" %><HEAD> <jsp:include page="head.txt"/></HEAD><HTML> <BODY bgcolor=yellow> <P><Font size=2 color=blue> This is two.jsp. </Font> <Font size=3> <% String s=request.getParameter("number"); out.print

26、ln("<BR>传递过来的值是"+s); %> <BR><img src="a.jpg" width="<%=s%>" height="<%=s%>" ></img> </FONT> </BODY></HTML>three.jsp<% page contentType="text/html;charset=GB2312" %><HEAD> <jsp:in

27、clude page="head.txt"/></HEAD><HTML> <BODY bgcolor=yellow> <P><Font size=2 color=red> This is three.jsp. </Font> <Font size=3> <% String s=request.getParameter("number"); out.println("<BR>传递过来的值是"+s); %> <BR>

28、;<img src="b.jpg" width="<%=s%>" height="<%=s%>" ></img> </FONT> </BODY></HTML>error.jsp<% page contentType="text/html;charset=GB2312" %><HEAD> <jsp:include page="head.txt"/></HEAD><

29、;HTML> <BODY bgcolor=yellow> <P><Font size=5 color=red> This is error.jsp. </Font> <Font size=2> <% String s=request.getParameter("mess"); out.println("<BR>传递过来的错误信息"+s); %> <BR><img src="c.jpg" width="120"

30、 height="120" ></img> </FONT> </BODY></HTML>第3章 JSP内置对象(实验)要求在webapps目录下新建一个Web服务目录:practice4。除特别要求外,实践4中的实验所涉及的 JSP页面均保存在practice4中;Tag文件保存在practice4WEB-INFtags目录中。实验1 request对象1. 相关知识点HTTP通信协议是客户与服务器之间一种提交(请求)信息与响应信息(request/response)的通信协议。在JSP中,内置对象request封装了用

31、户提交的信息,那么该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。2实验目的本实验的目的是让学生掌握怎样在JSP中使用内置对象request。3实验要求编写一个JSP页面inputNumber.jsp该页面提供一个表单,用户可以通过表单输入两个数和四则运算符号提交给该页面。用户提交表单后,JSP页面将计算任务交给一个Tag文件Computer.tag去完成。1. inputNumber.jsp的具体要求inputNumber.jsp页面提供一个表单,要求表单中提供两个text输入框,供用户输入数字;提供一个select下拉列表,该下拉列表有加、减、乘、除四个选项,供

32、用户选择运算符号。用户在表单中输入的数字、选择运算符号提交给inputNumber.jsp页面。inputNumber.jsp使用Tag标记调用Tag文件Computer.tag,并将表单提交的数字和运算符号传递给Computer.tag。2. Computer.tag的具体要求要求Computer.tag使用attribute指令得到JSP页面传递过来的值,使用variable指令将计算结果,并将计算结果返回给JSP页面。4JSP页面效果示例inputNumber.jsp(效果如图4-1) 图4-1 简单的计算器5参考代码代码仅供参考,学生可按着实验要求,参考本代码编写代码。JSP页面参考代

33、码inputNumber.jsp<% page contentType="text/html;charset=GB2312" %><% taglib tagdir="/WEB-INF/tags" prefix="computer"%><HTML><BODY bgcolor=yellow> <Font size=5> <FORM action="" method=post name=form> 输入运算数、选择运算符号:<br> &l

34、t;Input type=text name="numberOne" size=6> <Select name="operator" > <Option value="+">+ <Option value="-">- <Option value="*">* <Option value="/">/ </Select> <Input type=text name="numberTwo&q

35、uot; size=6> <BR> <INPUT TYPE="submit" value="提交你的选择" name="submit"> </FORM> <% String a=request.getParameter("numberOne"); String b=request.getParameter("numberTwo"); String operator=request.getParameter("operator")

36、; if(a=null|b=null) a="" b="" if(a.length()>0&&b.length()>0) %> <computer:Computer numberA="<%=a%>" numberB="<%=b%>" operator="<%=operator%>"/> 计算结果:<%=a%><%=operator%><%=b%>=<%=result%>

37、;<% %></Font></BODY></HTML>Tag文件参考代码Computer.Tag<% tag pageEncoding="gb2312"%> <% attribute name="numberA" required="true" %> <% attribute name="numberB" required="true" %><% attribute name="operator&

38、quot; required="true" %><% variable name-given="result" scope="AT_END" %><% try double a=Double.parseDouble(numberA); double b=Double.parseDouble(numberB); double r=0; if(operator.equals("+") r=a+b; else if(operator.equals("-") r=a-b; els

39、e if(operator.equals("*") r=a*b; else if(operator.equals("/") r=a/b; jspContext.setAttribute("result",String.valueOf(r); catch(Exception e) jspContext.setAttribute("result","发生异常:"+e); %>实验 response对象1. 相关知识点response对象对客户的请求作出动态响应,向客户端发送数据。respons

40、e对象的调用setContentType(String s)方法可以动态改变响应的contentType属性的值。response对象调用addHeader(String head,String value)方法可以动态改变响应头和头的值。response对象调用setStatus(int n)方法可以动态改变响应的状态行的内容。response对象调用sendRedirect(URL url)方法实现用户的重定向。2实验目的本实验的目的是让学生掌握怎样使用response对象动态响应用户的请求。3实验要求编写两个JSP页面input.jsp和result.jsp。input.jsp页面提交一

41、个数字给result.jsp页面,result.jsp页面使用response对象做出动态响应。 nput.jsp的具体要求input.jsp提供表单,用户在表单中输入一个数字,提交给result.jsp页面。2. result.jspresult.jsp页面首先使用request对象获得input.jsp页面提交的数字,然后根据数字的大小作出不同的响应。如果数字小与,response对象的调用setContentType(String s)方法将contentType属性的值设置为text/plain,同时输出数字的平方;如果数字大于等于并且小于100,response对象的调用setContentType(String s)方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论