jsp实验报告 7878789

时间:2024.4.20

武汉工程大学邮电与信息学院

学生实验报告

课程名称:   动态网页技术    

年   级:   20##级         

专   业:计算机科学与技术      

姓    名:                      

学    号:                      

指导教师:    邹君            

实验地点:       605、703机房  

2012  学年至  2013  学年度第学期


实验一

实验 Tomcat服务器的安装与配置

一、实验目的

本实验的目的是让学生掌握怎样设置Web服务目录、怎样访问Web服务目录下的JSP页面、怎样修改Tomcat服务器的端口号。

二、实验要求

 1、将下载的apache-tomcat-6.0.13.zip解压到D盘中,并进行调试。

    2、用文本编辑器编写一个简单的JSP页面biao.jsp,并保存到Web服务目录中。

三、实验结果

所运行的代码如下;

biao.jsp

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

<HTML>

<BODY BGCOLOR=YELLOW>

<h3>乘法表<h3>

 <FONT Size=3>

<%

   for(int j=1;j<=9;j++)

   {

     for(int i=1;i<=j;i++)

     {

       int n=i*j;

       out.print(i+"×"+j+"="+n+" ");

     }

     out.print("<br>");

   }

%>

 </FONT>

</BODY>

</HTML>

biao.jsp页面

 

四、实验结果分析

1、默认的端口号为8080,若修改,在conf目录下的server.xml文件中修改端口号。

2、设置虚拟目录。在conf目录下的server.xml中</Host>前加入:

 <Context path=”/**” docBase=”路径” debug=”0” reloadable=”true/”>

3、Tomcat服务器必须保持启动。


实验二  JSP页面的基本结构

一、实验目的

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

二、实验要求

本实验将用户输入的单词按字典顺序排序。需要编写两个JSP页面,名字分别为inputWord.jsp和showDictionary.jsp。

三、实验内容

1) inputWord.jsp页面有一个表单,用户通过该表单输入若干个单词,并提交给showDictionary.jsp页面。

2) showDictionary.jsp负责排序单词,并将排序的全部单词显示给用户。

四、实验结果

实验所用代码如下:

inputWord.jsp

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

<HTML>

<BODY BGCOLOR=cyan>

 <FONT Size=3>

  <FORM action="showDictionary.jsp" method = get name=form>

   请输入单词(用空格分隔):<INPUT type="text" name="word">

  <BR><INPUT type="submit" value="送出" name=submit>

 </FORM>

</BODY>

</HTML>

showDictionary.jsp

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

<%@ page import="java.util.*"%>

<HTML>

<BODY BGCOLOR=YELLOW>

<FONT Size=3>

<%!

    TreeSet<String>dictionary=new TreeSet<String>();

    public void addWord(String s)

    {

     String word[] = s.split(" ");

     for(int i=0;i<word.length;i++)

      {

       dictionary.add(word[i]);

      }

     }

%>     

<%

   String str = request.getParameter("word");

   addWord(str);

   Iterator<String>te=dictionary.iterator();

   while(te.hasNext())

    {

      String word = te.next();

      out.print(" "+word);

    }

%>

</FORM>

</BODY>

</HTML>

                          inputWord.jsp页面

showDictionary.jsp页面

五、实验结果分析

1、jsp页面由html标记、jsp标记、成员变了和方法的声明、java程序片和java表达式组成。

2、jsp页面中的成员变量是被所有用户共享的变量。Java程序片可以操作成员变了,任何一个用户对jsp页面成员变量操作的结果,都会影响到其他用户。

实验三  JSP指令标记

一、实验目的

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

二、实验要求

该实验要求使用include指令标记使得每个页面都包含导航条。在进行试验之前,将名字是leader.txt的文件保存到本实验所使用的web服务目录中。

三、实验内容

leader.txt编写3个JSP页面。

1) frist.jsp使用include指令静态插入leader.txt文本文件。

2) second.jsp使用include指令静态插入leader.txt文件。

3) third.jsp使用include指令静态插入leader.txt。

四、实验结果

所运行代码如下:leader.txt

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

<a href = "firsst.jsp">链接到页面1</a>

<a href = "second.jsp">链接到页面2</a>

<a href = "third.jsp">链接到页面3</a>

first.jsp

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

<HTML>

 <BODY BGCOLOR=YELLOW>

    <P>这是页面1

    <%@ include file="leader.txt" %> 

 <BODY>

</HTML>

second.jsp

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

<HTML>

 <BODY BGCOLOR=cyan>

    <P>这是页面2

    <%@ include file="leader.txt" %> 

 <BODY>

</HTML>

third.jsp

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

<HTML>

 <BODY BGCOLOR=green>

    <P>这是页面3

    <%@ include file="leader.txt" %> 

 <BODY>

</HTML>

frist.jsp页面

second.jsp页面

third.jsp页面

五、实验结果分析

    1、include指令标记是在jsp页面出现该指令的位置处,静态的插入一个文        件。被插入的文件必须是可访问和可使用的。Include指令标记是在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖与当前jsp页面,优点是执行速度快。

实验四  JSP动作标记

一、实验目的

本实验的目的是让学生掌握怎样在JSP页面中使用include标记动态加载文件,使用forward实现页面的转向。

二、实验要求

编写三个JSP页面:giveFileName.jsp、readFile.jsp和error.jsp。

三、实验内容

1)giveFileName.jsp页面使用include动作标记动态加载readFtle.jsp页面,并将一个文件的名字ok.txt传递给被加载的readFtle.jsp页面。

2)readFile.jsp页面负责根据giveFileName.jsp页面传递过来的文件名字进行文件的读取操作,如果该文件不存在就使用forward动作标记将用户转向error.jsp。

3)error.jsp负责显示错误信息。

 四、实验结果

实验所用代码如下:

giveFileName.jsp

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

<HTML>

<BODY BGCOLOR=yellow>

   读取名字是ok.txt的文件:

    <jsp:include page="readFile.jsp">

      <jsp:param name="file" value="D:/Program Files/tomcat/webapps/chapter2/ok.txt"/>

    </jsp:include>

</BODY>

</HTML>

readFile.jsp

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

<%@ page import="java.io.*"%>

<HTML>

<BODY BGCOLOR=cyan>

 <P><FONT Size=2 color=bule>

   This is readFile.jsp.

    </FONT>

 <FONT Size=4>

 <%

  

   String s= request.getParameter("file");

   File f=new File(s);

   if(f.exists())

   {

      out.println("<BR>文件"+s+"的内容:");

      FileReader in=new FileReader(f);

      BufferedReader bIn=new BufferedReader(in);

      String line=null;

      while((line=bIn.readLine())!=null)

      {

         out.println("<BR>"+line); 

      }

   }

   else

   {

      %>

        <jsp:forward page="error.jsp">

          <jsp:param name="mess" value="File Not Found"/>

        </jsp:forward>

      <%

   } 

 %>

 </FONT>

</BODY>

</HTML>

error.jsp

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

<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);

     

 %>

 </FONT>

</BODY>

</HTML>

                        

                        giveFileName.jsp页面

error.jsp页面

五、实验结果分析

1、include动作标记是在jsp页面运行时才处理加载的文件,被加载的文件在逻辑和语       法上独立与当前jsp页面,include指令标记可以使用param子标记向被加载的jsp       文件传递信息。
 

实验五  request对象

一、实验目的

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

二、实验要求

    通过JSP页面和Tag文件实现数字的四则运算,要求编写两个JSP页面inputNumber.jsp和receiveNumber.jsp及一个Tag文件Computer.tag。receiveNumber.jsp使用内置对象接受inputNumber.jsp提交的数据,然后将计数任务交给Tag文件Computer.tag去完成。

三、实验内容

1)inputNumber.jsp页面提供一个表单,用户可以通过表单输入两个数、选择四则运算符号,并将输入的两个数和所选择的运算符号提交给receiveNumber.jsp页面。

2)receiveNumber.jsp使用内置对象inputNumber.jsp页面提交的数据,然后将计算任务交给Tag文件Computer.tag去完成。

3)要求Computer.tag使用attribute指令得到receiveNumber.jsp页面传递过来的书和运算符号,使用variable指令将运算结果返回给receiveNumber.jsp页面。

四、实验结果

实验所用代码如下:

inputNumber.jsp

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

<HTML>

<BODY bgcolor=cyan>

 <FONT size=5>

 <FORM action="receiveNumber.jsp" method=post name=form>

  输入运算数、选择运算符号:<br>

  <Input type=text name="numberOne" size=6>

        <select name="operator">

        <option value="+">+

        <option value="-">-

        <option value="*">*

        <option value="/">/

        </select>

  <Input type=text name="numberTwo" size=6>

  <br><Input type="submit" value="提交你的选择" name="submit">

 </FORM>

 </FONT>

</BODY>

</HTML>

Computer.tag

<%@ tag pageEncoding="GB2312" %>

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

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

<%@ attribute name="operator" 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;

       }

       else 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);

        }

%>

                       inputNumber.jsp页面

                    receiveNumber.jsp页面

五:实验结果分析

1、内置对象request的作用就是用来接收客户端提交的请求

2、request对象用的比较多的方法是getParameter方法。

request对象的getParameter方法根据指定的参数,获取客户端提交的信息。

其语法规则如下:

<% String name=request.getParameter (“txtName”)%>

其中,name是一个字符串变量。txtName是客户端提交信息中的一个字段名。

3、下面的就是在实验里面request的使用

<%

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

   String b=request.getParameter("numberTwo");

   String operator=request.getParameter("operator")

实验六  responese对象

一、实验目的

    本实验的目的是掌握怎样使用response对象动态响应用户的请求。  

二、实验要求

    编写两个JSP页面inputRadius.jsp和drawCircle.jsp页面,drawCircle.jsp页面使用response对象做出动态响应。

三、实验内容

1)inputRadius.jsp提供表单,用户在表单中输入一个代表圆的半径的数字,提交给drawCircle.jsp页面。

2)drawCircle.jsp页面首先使用request对象获得inputRadius.jsp提交的数字,然后根据数字的大小做出不同的响应。如果数字小于等于0或者大于100,response对象调用setCountType(String s)方法将contentType属性的值设置为text/plain,同时输出“半径不合理”;如果数字大于0并且小于等于100,response对象调用setContentType(String s)方法将contentType属性的值设置为image/jpeg,并绘制一个圆;如果用户在inputRadius.jsp页面输入了非数字,response对象调用sendRedirect(URL url)方法将用户重定向到inputRadius.jsp。

四、实验结果

实验所用代码如下:

inputRadius.jsp

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

<HTML>

<BODY bgcolor=yellow>

 <FONT size=2>

  <FORM action="drawCircle.jsp" method=post name=form>

     输入圆的半径:<input type=text name="radius" size=6>

     <input type="submit" value="提交"  name="submit">

  </FORM>

 </FONT>

</BODY>

</HTML>

drawCircle.jsp

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

<%@ page import="java.awt.*" %>

<%@ page import="java.io.*" %>

<%@ page import="java.awt.image.*" %>

<%@ page import="java.awt.geom.*" %>

<%@ page import="com.sun.image.codec.jpeg.*" %>

<HTML>

<BODY bgcolor="yellow">

<FRONT size=3>

<%

    String R=request.getParameter("radius");

    out.print(R);

    try

    {

       double number=Double.parseDouble(R);

       if(number <=0 || number >100)

        {

       response.setContentType("text/plain;charset=GB2312");

       out.println(number + "作为圆的半径不合理");

    }

    else if(number>0 && number<=100)

        {

       response.setContentType("image/jpeg");

       int width =100,height =100;

       BufferedImage image =new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

       Graphics g = image.getGraphics();

       g.setColor(Color.white);

       g.fillRect(0,0,width,height);

       Graphics2D g_2d = (Graphics2D)g;

       Ellipse2D circle = new Ellipse2D.Double(0,0,number,number);

       g_2d.setColor(Color.blue);

       g_2d.fill(circle);

       g.dispose();

       OutputStream outClient = response.getOutputStream();

       JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(outClient);

       encoder.encode(image);

    }

     }

     catch(Exception e)

     {

    response.sendRedirect("inputRadius.jsp");

     }

%>

 </FONT>

</BODY>

</HTML>

    1、在输入要求的范围以内:

       inputRadius.jsp页面

                     drawCircle.jsp页面

2、当输入的数据不符合要求的结果显示:

inputRadius.jsp页面

drawCircle.jsp页面

五、实验结果分析:

1、response的作用就是把服务器端的数据以HTTP的格式发送到客户端浏览器

2、与request相比,它的功能和request对象的功能相反。request对象用于得到用户提交的信息而response对象是向用户发送信息,两者结合起来完成动态页面的交互功能。

3、response对象的主要方法:

sendRedirect():页面重定向方法

setStatus():设置状态行方法

setContentType():设置文本类型方法

实验七  session对象

一、实验目的

    本实验的目的是让学生掌握怎样使用session对象存储和用户有关的数据。

二、实验要求

    使用session对象模拟购物车。编写两个JSP页面choiceBook.jsp和orderForm.jsp。

三、实验内容

1)用户在choiceBook.jsp页面通过超链接将自己要购买的图书信息传递到orderForm.jsp页面。

2)orderForm页面将用户购买的图书信息存储到session对象中,然后生成一个图书订单并显示给用户。

四、实验结果:

实验所用代码如下:

choiceBook.jsp

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

<HTML>

<BODY bgcolor=yellow>

<FONT size = 2>

<p>选择要购买的图书

<table>

  <tr>

    <td>

        <a href="orderForm.jsp?bookMess=Java面向对象设计@ISBN:9876@价格:34元">

        Java面向对象设计(34元)

        </a>

    </td>

  </tr>

  <tr>

    <td>

        <a href="orderForm.jsp?bookMess=JSP程序设计@ISBN:4567@价格:34元">

        JSP程序设计(34元)

        </a>

    </td>

  </tr>

  <tr>

    <td>

        <a href="orderForm.jsp?bookMess=XML程序设计@ISBN:2356@价格:34元">

        XML程序设计(34元)

        </a>

    </td>

  </tr>

</table>

</FONT>

</BODY>

</HTML>

orderForm.jsp

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

<%@page import="java.util.*" %>

<%

    String book = request.getParameter("bookMess");

    if(book != null){

        StringTokenizer fenxi = new StringTokenizer(book,"@");

        String bookName = fenxi.nextToken();

        String bookISBN = fenxi.nextToken();

        session.setAttribute(bookISBN,book);

    }

%>

<html>

<body bgcolor="cyan">

    <font size = 4>

    <P>图书订单

    <table border=3>

    <%

    Enumeration keys = session.getAttributeNames();

    while(keys.hasMoreElements()){

        String key = (String)keys.nextElement();

        book = (String)session.getAttribute(key);

        if(book != null){

        StringTokenizer fenxi = new StringTokenizer(book,"@");

        byte X[]= ((String)fenxi.nextToken()).getBytes("ISO-8859-1");

        String bookName = new String(X);

        byte S[]= ((String)fenxi.nextToken()).getBytes("ISO-8859-1");

        String isbn = new String(S);

        byte P[]= ((String)fenxi.nextToken()).getBytes("ISO-8859-1");

        String price = new String(P);

    %>

    <tr>

        <td><%= bookName %></td>

        <td><%= isbn %></td>

        <td><%= price %></td>

    </tr>

    <%

            }

    }

    %>

    </table>

    </font>

</body>

</html>

              

choiceBook.jsp页面

           orderForm页面

五、实验结果分析:

1、session的作用就是记住客户的连接信息,可以使用会话对象(session)。session对象记录了每个客户与服务器的连接信息

2、判断session是否失效有三种情况1)、客户是否关闭浏览器。2)、是否到达最大的发呆时间3)、是否调用validate()函数

3、session对象常用方法:

setAttribute(String name,java.lang.Object value):设定指定名字的属性值,并且把它存储在session对象中。

getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null

更多相关推荐:
spss实验报告

湖北汽车工业学院SPSS实习报告学号20xx0530501姓名杨文弟指导教师彭娟娟曾智实验一描述性统计分析一实验目的利用SPSS进行描述性统计分析要求掌握频数分析Frequencies过程描述性分析Descri...

spss对数据进行相关性分析实验报告

管理统计实验报告实验一一实验目的掌握用spss软件对数据进行相关性分析熟悉其操作过程并能分析其结果二实验原理相关性分析是考察两个变量之间线性关系的一种统计分析方法更精确地说当一个变量发生变化时另一个变量如何变化...

spss实验报告1

统计分析与SPSS的应用实验报告一一数据来源及说明本次试验报告数据来源于19xx年美国社会变迁普查19xxUSGeneralSocialSurvey在这次试验研究的是美国居民幸福感状况分析性别种族和地区之间的差...

spss实验报告模板

实验报告实验三连续变量的统计描述与参数估计实验目的1了解连续变量的统计描述指标体系和参数估计指标体系2掌握具体案例的统计描述和分析3学会bootstrap等方法实验原理1spss的许多模块均可完成统计描述的任务...

统计分析spss实验报告

国际商学院实验报告专业班级姓名学号成绩备注因实验项目不同表格不够可加附页实验结果若是网上提交请注明

spss实验报告

线订号学名姓装级班1234567891011121314151617

spss实验报告三

实验报告三一实验项目均数间的比较二实验的目的运用SPSS软件进行均数间的比较并能掌握运用SPSS软件的进行假设检验三实验内容1均值2单样本T检验3两独立样本T检验4配对样本T检验一均值1均值表示一系列数据或统计...

Spss实验总结

Spss总结本学期一共学习了七项spss使用方法分别是数据整理数据的转换t检验方差分析卡方检验相关分析与回归方程图表的制作与编辑我觉得spss对我用处非常大就平时学习来说我用它计算了几道生物统计题完成了spss...

spss实验报告

武汉工商学院市场调查与预测课程实验实训报告武汉工商学院武汉工商学院

spss统计学上机报告

一用两种定义变量的方法绘制直方图某学院两个专业各抽取24名学生他们某门课考试成绩资料如下方法1SPSS操作步骤定义成绩学生数和专业三个变量在定义变量窗口对专业做变量值标签令1甲专业2乙专业在录入数据窗口依次录入...

管理统计spss数据管理-实验报告

数据管理一实验目的与要求1掌握计算新变量变量取值重编码的基本操作2掌握记录排序拆分筛选加权以及数据汇总的操作3了解数据字典的定义和使用数据文件的重新排列转置合并的操作二实验内容提要1自行练习完成课本中涉及的对C...

管理统计学spss数据的录入及获取-实验报告

数据的录入及获取一实验目的与要求1熟悉软件数据录入界面的操作说明2掌握开放题单选题多选题的录入方法3掌握如何将电子表格数据文本数据数据库格式数据导入到SPSS中4熟悉数据保存方法二实验内容提要1根据给定的调查问...

spss实验报告(9篇)