第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有public void judge ()方法。该方法负责创建person对象,当count的值是0 时,judge ()方法创建person对象。
(3) JSP有public void addPerson(String p)的方法,该方法将参数p指定的字符串尾加到操作成员变量person,同时将count作自增运算。
(4) JSP页面在程序片中获取inputName.jsp页面提交的姓名,然后调用judge ()创建person对象、调用addPerson方法将用户的姓名尾加到成员变量person。
(5) 如果inputName.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用<jsp:forward page="要转向的页面" />标记将将用户转到inputName.jsp页面。
(6) 通过Java表达式输出person和count的值。
4.JSP页面效果示例
inputName.jsp(效果如图2-1
 
  2-1  输入姓名
people.jsp(效果如图2-2
2-1  显示姓名和人数
5.参考代码
代码仅供参考,学生可按着实验要求,参考本代码编写代码。
JSP页面参考代码
inputName.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
java和jsp<BODY bgcolor=cyan>
<FONT size=3>
  <FORM action="people.jsp" method=get name=form>
  请输入姓名:<INPUT type="text" name="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;
  StringBuffer 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 Parameter("name");
    byte bb[]=Bytes("iso-8859-1");
    name=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 指令:<%@ page  属性1="属性1的值属性2= "属性2的值" %>用来定义整个JSP页面的一些属性和这些属性的值。比较常用的两个属性是contentType和import。page指令只能为contentType指定一个值,但可以为import属性指定多个值。
include指令标记:<%@ include file= "文件的URL " %>的作用是在JSP页面出现该指令的位置处,静态插入一个文件。被插入的文件必须是可访问和可使用的,如果该文件和当前JSP页面在同一Web服务目录中,那么"文件的URL"就是文件的名字;如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么"文件的URL"就是"fileDir/文件的名字"。include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快。
2.实验目的
本实验的目的是让学生掌握怎样在JSP页面中使用page指令设置contentType的值;使用include指令在JSP页面中静态插入一个文件的内容。
3.实验要求
编写三个JSP 页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事本”编写一个txt文件。的每行有若干个英文单词,单词之间用空格分隔,每行之间用“<BR>”分隔,如下所示:
package apple void back public
<BR>
private throw class hello welcome
1. first.jsp的具体要求
first.jsp使用page指令设置contentType属性的值是"text/plain",使用include指令静态插入文件。
2. second.jsp的具体要求
second.sp使用page指令设置contentType属性的值是"application/vnd.ms-powerpoint",
使用include指令静态插入文件。
3. third.jsp的具体要求
third.jsp使用page指令设置contentType属性的值是"application/msword",
使用include指令静态插入文件。
4.JSP页面效果示例
first.jsp(效果如图2-3
 
  2-3  contentType的值是text/plain
second.jsp(效果如图2-4
2-4  contentType的值是vnd.ms-powerpoint
people.jsp(效果如图2-5
2-5  contentType的值是application/msword
5.参考代码
代码仅供参考,学生可按着实验要求,参考本代码编写代码。
JSP页面参考代码
first.jsp
<%@ page contentType="text/plain" %>
<HTML>
<BODY >
<FONT size=4 color=blule>
  <%@include file="" %>
</FONT>
</BODY>
</HTML>
second.jsp
<%@ page contentType="application/vnd.ms-powerpoint" %>
<HTML>
<BODY >
<FONT size=2 color=blule>
  <%@include file="" %>
</FONT>
</BODY>
</HTML>
third.jsp
<%@ page contentType="application/msword" %>
<HTML>
<BODY >
<FONT size=4 color=blule>
  <%@include file="" %>
</FONT>
</BODY>
</HTML>
实验3  JSP动作标记
1.相关知识点
include 动作标记:<jsp:include page= "文件的URL"/>是在JSP页面运行时才处理加载的文件,被加载的文件在逻辑和语法上独立于当前JSP页面。include 动作标记可以使用param子标记向被加载的JSP文件传传递信息。
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页面都含有一个一个导航条,以便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件:。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。