JSP页面与JSP标记.docx

上传人:b****6 文档编号:8422348 上传时间:2023-01-31 格式:DOCX 页数:19 大小:176.78KB
下载 相关 举报
JSP页面与JSP标记.docx_第1页
第1页 / 共19页
JSP页面与JSP标记.docx_第2页
第2页 / 共19页
JSP页面与JSP标记.docx_第3页
第3页 / 共19页
JSP页面与JSP标记.docx_第4页
第4页 / 共19页
JSP页面与JSP标记.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

JSP页面与JSP标记.docx

《JSP页面与JSP标记.docx》由会员分享,可在线阅读,更多相关《JSP页面与JSP标记.docx(19页珍藏版)》请在冰豆网上搜索。

JSP页面与JSP标记.docx

JSP页面与JSP标记

第2章JSP页面与JSP标记(实验)

第2章共有3个实验。

要求将Tomcat服务器的端口号恢复默认设置,即端口号为8080。

要求在webapps目录下新建一个Web服务目录:

practice2。

除特别要求外,实验中涉及的 JSP页面均保存在practice2中。

实验1 JSP页面的基本结构

1.相关知识点

一个JSP页面可由普通的HTML标记、JSP标记、成员变量和方法的声明、Java程序片和Java 表达式组成。

JSP引擎把JSP页面中的HTML标记交给客户的浏览器执行显示;JSP引擎负责处理JSP标记、变量和方法声明;JSP引擎负责运行Java程序片、计算Java表达式,并将需要显示的结果发送给客户的浏览器。

JSP页面中的成员变量是被所有用户共享的变量。

Java程序片可以操作成员变量,任何一个用户对JSP页面成员变量操作的结果,都会影响到其它用户。

如果多个用户访问一个JSP页面,那么该页面中的Java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片内。

运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。

2.实验目的

本实验的目的是让学生掌握怎样在JSP页面中使用成员变量、怎样使用Java程序片、Java表达式。

3.实验要求

编写两个JSP页面,名字分别为inputName和people.jsp。

1.inputName.jsp的具体要求

该页面有一个表单,用户通过该表单输入自己的姓名并提交给people.jsp页面。

2.people.jsp的具体要求

(1)JSP页面有名字为person、类型是StringBuffer以及名字是count,类型为int的成员变量。

(2)JSP有publicvoidjudge()方法。

该方法负责创建person对象,当count的值是0时,judge()方法创建person对象。

(3)JSP有publicvoidaddPerson(Stringp)的方法,该方法将参数p指定的字符串尾加到操作成员变量person,同时将count作自增运算。

(4)JSP页面在程序片中获取inputName.jsp页面提交的姓名,然后调用judge ()创建person对象、调用addPerson方法将用户的姓名尾加到成员变量person。

(5)如果inputName.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用<jsp:

forwardpage="要转向的页面" />标记将将用户转到inputName.jsp页面。

(6)通过Java表达式输出person和count的值。

4.JSP页面效果示例

inputName.jsp(效果如图2-1)

 

 图2-1输入姓名

people.jsp(效果如图2-2)

图2-1显示姓名和人数

5.参考代码

代码仅供参考,学生可按着实验要求,参考本代码编写代码。

JSP页面参考代码

inputName.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

<HTML>

<FONT size=3>

  

请输入姓名:

 

</BODY>

</HTML>

people.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

<HTML>

<FONTSize=3>

<%!

int count;

 StringBuffer person;

publicvoidjudge()

{

 if(count==0)

person=new StringBuffer();

}

 publicvoidaddPerson(Stringp)

 {

 if(count==0)

  {

  person.append(p);

 } 

 else

{

 person.append(","+p);

 }

  count++;

 }

 %>

<%

 Stringname=request.getParameter("name");

bytebb[]=name.getBytes("iso-8859-1");

 name=newString(bb);

if(name.length()==0||name.length()>10)

  {

 %> 

forward page="inputName.jsp" />

<% }

 judge();

 addPerson(name);

 %>


目前共有<%=count%>人浏览了该页面,他们的名字是:

<BR><%=person%>

实验2JSP指令标记

1.相关知识点

page指令:

<%@page属性1="属性1的值" 属性2= "属性2的值"…%>用来定义整个JSP页面的一些属性和这些属性的值。

比较常用的两个属性是contentType和import。

page指令只能为contentType指定一个值,但可以为import属性指定多个值。

include指令标记:

<%@includefile="文件的URL" %>的作用是在JSP页面出现该指令的位置处,静态插入一个文件。

被插入的文件必须是可访问和可使用的,如果该文件和当前JSP页面在同一Web服务目录中,那么"文件的URL"就是文件的名字;如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如子目录中,那么"文件的URL"就是"文件的名字"。

include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快。

2.实验目的

本实验的目的是让学生掌握怎样在JSP页面中使用page指令设置contentType的值;使用include指令在JSP页面中静态插入一个文件的内容。

3.实验要求

编写三个JSP页面:

first.jsp 、second.jsp和third.jsp。

另外,要求用“记事本”编写一个txt文件hello.txt。

hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“
”分隔,如下所示:

hello.txt

packageapplevoidback public

private throwclass hello welcome

1.first.jsp的具体要求

first.jsp使用page指令设置contentType属性的值是"text/plain",使用include指令静态插入hello.txt文件。

2.second.jsp的具体要求

second.sp使用page指令设置contentType属性的值是"application/vnd.ms-powerpoint",

使用include指令静态插入hello.txt文件。

3.third.jsp的具体要求

third.jsp使用page指令设置contentType属性的值是"application/msword",

使用include指令静态插入hello.txt文件。

4.JSP页面效果示例

first.jsp(效果如图2-3)

 

  图2-3 contentType的值是text/plain

second.jsp(效果如图2-4)

图2-4contentType的值是vnd.ms-powerpoint

people.jsp(效果如图2-5)

图2-5contentType的值是application/msword

5.参考代码

代码仅供参考,学生可按着实验要求,参考本代码编写代码。

JSP页面参考代码

first.jsp

<%@ page contentType="text/plain"%>

 

 <%@includefile="hello.txt"%>

</FONT>

 </BODY>

</HTML>

second.jsp

<%@pagecontentType="application/vnd.ms-powerpoint"%>

<HTML>

 <BODY>

<%@includefile="hello.txt"%>

 

third.jsp

<%@pagecontentType="application/msword"%>

<%@includefile="hello.txt"%>

</FONT>

</BODY>

实验3JSP动作标记

1.相关知识点

include动作标记:

includepage="文件的URL"/>是在JSP页面运行时才处理加载的文件,被加载的文件在逻辑和语法上独立于当前JSP页面。

include动作标记可以使用param子标记向被加载的JSP文件传传递信息。

frward动作标记

forwardpage="要转向的页面" />作用是:

从该指令处停止当前页面的继续执行,而转向执行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页面都含有一个一个导航条,以便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件:

head.txt。

导航条文件head.txt的内容如下所示:

head.txt

<%@ pagecontentType="text/html;charset=GB2312"%>

<trvalign="bottom">

<A href="one.jsp"><font size=3>one.jsp页面</font></td>

 <td><fontsize=3>two.jsp页面</font></A></td>

<td><fontsize=3>three.jsp页面

 

</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页面,将有关输入错误传递到转向的error.jsp页面

2.two.jsp、three.jsp和error.jsp的具体要求

要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。

error页面能显示有关错误信息,和一幅图像。

4.JSP页面效果示例

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.参考代码

代码仅供参考,学生可按着实验要求,参考本代码编写代码。

JSP页面参考代码

one.jsp

<%@ page contentType="text/html;charset=GB2312" %>

includepage="head.txt"/>

<HTML>

<BODYbgcolor=yellow>

<FORMaction="" method=getname=form>

请输入1至100之间的整数:

 
<INPUTTYPE="submit"value="送出"name=submit>

 

<%

Stringnum=request.getParameter("number");

if(num==null)

 { num="0";

 }

try

 {

intn=Integer.parseInt(num);

 if(n>=1&&n<=50)

  {

%>  <jsp:

forward page="two.jsp">

   <jsp:

param name="number"value="<%=n%>"/>

   </jsp:

forward>

<%  }

    elseif(n>50&&n<=100)

   {

%> <jsp:

forwardpage="three.jsp" >

    

paramname="number"value="<%=n%>" />

   

forward>

<%  }

 }

catch(Exceptione)

{

%>  

forward page="error.jsp">

    

paramname="mess"value="<%=e.toString()%>"/>

 </jsp:

forward>

<%}

%>

two.jsp

<%@pagecontentType="text/html;charset=GB2312" %>

<jsp:

includepage="head.txt"/>

<BODYbgcolor=yellow>

<P>

   This istwo.jsp.

   

<Font size=3>

<% 

 Strings=request.getParameter("number");

  out.println("<BR>传递过来的值是"+s);

%>

 <BR><imgsrc="a.jpg"width="<%=s%>"height="<%=s%>"></img>

 

</HTML>

three.jsp

<%@ pagecontentType="text/html;charset=GB2312"%>

<jsp:

includepage="head.txt"/>

<Fontsize=2color=red>

Thisisthree.jsp.

 </Font>

<%

Strings=request.getParameter("number");

  out.println("
传递过来的值是"+s);

 %>

<BR><imgsrc="b.jpg"width="<%=s%>" height="<%=s%>"></img>

</FONT>

error.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

 

includepage="head.txt"/>

</HEAD>

<HTML>

 

 This is error.jsp.

 

 

<%

 Strings=request.getParameter("mess");

 out.println("
传递过来的错误信息"+s);

%>

 </FONT>

</BODY>

 

第3章 JSP内置对象(实验)

要求在webapps目录下新建一个Web服务目录:

practice4。

除特别要求外,实践4中的实验所涉及的JSP页面均保存在practice4中;Tag文件保存在practice4\WEB-INF\tags目录中。

实验1 request对象

1.相关知识点

HTTP通信协议是客户与服务器之间一种提交(请求)信息与响应信息(request/response)的通信协议。

在JSP中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。

2.实验目的

本实验的目的是让学生掌握怎样在JSP中使用内置对象request。

3.实验要求

编写一个JSP页面inputNumber.jsp该页面提供一个表单,用户可以通过表单输入两个数和四则运算符号提交给该页面。

用户提交表单后,JSP页面将计算任务交给一个Tag文件Computer.tag去完成。

1.inputNumber.jsp的具体要求

inputNumber.jsp页面提供一个表单,要求表单中提供两个text输入框,供用户输入数字;提供一个select下拉列表,该下拉列表有加、减、乘、除四个选项,供用户选择运算符号。

用户在表单中输入的数字、选择运算符号提交给inputNumber.jsp页面。

inputNumber.jsp使用Tag标记调用Tag文件Computer.tag,并将表单提交的数字和运算符号传递给Computer.tag。

2.Computer.tag的具体要求

要求Computer.tag使用attribute指令得到JSP页面传递过来的值,使用variable指令将计算结果,并将计算结果返回给JSP页面。

4.JSP页面效果示例

inputNumber.jsp(效果如图4-1)

图4-1简单的计算器

5.参考代码

代码仅供参考,学生可按着实验要求,参考本代码编写代码。

JSP页面参考代码

inputNumber.jsp

<%@pagecontentType="text/html;charset=GB2312"%>

<%@ taglibtagdir="/WEB-INF/tags" prefix="computer"%>

  

  输入运算数、选择运算符号:

<br>

 

   

   <Optionvalue="+">+

    

 

  <Optionvalue="/">/

  </Select>

 
<INPUTTYPE="submit"value="提交你的选择"name="submit">

<% String a=request.getParameter("numberOne");

 Stringb=request.getParameter("numberTwo");

 String operator=request.getParameter("operator");

 if(a==null||b==null)

{

  a="";

 b="";

 }

if(a.length()>0&&b.length()>0)

 {

%>

Computer numberA="<%=a%>" 

numberB="<%=b%>"operator="<%=operator%>"/>

  计算结果:

<%=a%><%=operator%><%=b%>=<%=result%>

<%}

%>

</BODY>

</HTML>

Tag文件参考代码

Computer.Tag

<%@tagpageEncoding="gb2312"%> 

<%@attributename="numberA"required="true"%>

<%@attribute name="numberB"required="true"%>

<%@attribute name="operator" required="true"%>

<%@ variablename-given="result" scope="AT_END"%>

<%try

  {  doublea=Double.parseDouble(numberA);

   doubleb=Double.parseDouble(numberB);

   doubler=0;

 if(operator.equals("+"))

 { r

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1