jsp实验报告

jsp实验报告
jsp实验报告

重庆交通大学

学生实验报告

实验课程名称 JSP程序设计

开课实验室管理学院计算机房

学院信息管理专业 2008 级 2 班

学生姓名秦志虎学号 08130213 开课时间 2011 至 2012 学年第一学期

实验1:熟悉MyEclipse

实验目的:安装MyEclipse并熟悉MyEclipse的操作环境,学习在MyEclipse环境中简单的创建、编辑和运行JSP页面相关操作。

实验要求:创建一个web项目并通过新建包和新建Jsp页面,编辑并运行该JSP页面。实验步骤及结果:

1.打开运MyEclipse软件。新建一个web项目。

2.新建一个MyTest的目录。

3.在MyTest的目录下新建一个Jsp页面,命名为Myjsp。

引用java文件:

<%@page import="tom.jiafei.*"%>

引用tag文件:

4.在系统提供的初始代码下不用编辑,直接运行JSP。

在浏览器中输入地址,得到结果

实验2.8:JSP页面的基本结构

实验目的:掌握怎样在JSP页面中使用成员变量,怎样使用Java程序片以及Java表达式。

实验要求:编写两个JSP页面,名字分别为inputName.jsp和people.jsp。

代码:

inputName.jsp:

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

请输入姓名:

people.jsp:

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

<%!int count;

StringBuffer personList;

public void judge()

{

if(count==0)

personList=new StringBuffer();

}

public void addPerson(String p)

{

if(count==0)

personList.append(p);

else

personList.append(","+p);

count++;

}

%>

<%String name=request.getParameter("name");

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

name=new String(bb);

if(name.length()==0||name.length()>20){ %>

<%}

judge();

addPerson(name);

%>


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

实验结果:

inputName.jsp:

点击“送出”按钮后页面:

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

实验要求:编写三个JSP页面:first.jsp、second.jsp、third.jsp。要求用“记事本”编写一个TXT文件hello.txt。hello.txt的每行有若干个英文单词,这些英文单词之间用空格分隔,每行之间用“
”分隔,如下所示:

hello.txt

my first page


public void hello welcome

相关部分代码:

first.jsp:

second.jsp:

<%@page contentType="application/vnd.ms-powerpoint; charset=GB2312" %>

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

实验目的:掌握怎样在JSP页面中使用include标记动态加载文件;使用forward动作标记实现页面的转向。

实验要求:编写四个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” %>

one.jsp页面two.jsp页面three.jsp页面

部分代码:

one.jsp:

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

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


<%String num=request.getParameter("number");

if(num==null)

num="0";

try

{ int n=Integer.parseInt(num);

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

%>

else if(n>50&&n<=100){

%>

<%}

else if(n>100){

%>

<%}

}

catch(Exception e){

%>

<%} %>

two.jsp:

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

this is two.jsp

<%String s=request.getParameter("txtnum");

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

%>

three.jsp:

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

this is three.jsp

<%String s=request.getParameter("txtnum");

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

%>

error.jsp:

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

this is error.jsp

<%String s=request.getParameter("mess");

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

%>

实验3.6:使用标记体

实验目的:灵活掌握在T ag标记中使用标记体。

实验要求:编写一个JSP页面:putImage.jsp和一个Tag文件Image.tag。JSP页面通过调用T ag文件来显示若干幅图像,通过使用标记体将HTML图像标记传递给被调用的T ag 文件。

代码:

putImage.jsp:

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

<%@taglib tagdir="/WEB-INF/tags/3_1"prefix="pic"%>

表格每行重复显示一幅图

Image.tag:

实验3.7:使用attribute指令和variable指令

实验目的:灵活掌握在T ag标记中使用attribute指令和variable指令。

实验要求:编写一个Tag文件GetArea.tag,负责计算三角形或梯形的面积,并将计算结果返回给调用该T ag文件的JSP页面。编写一个JSP页面inputAndShow.jsp,该页面负责向Tag文件提交三角形三边的长度或梯形的上底、下底和高,并负责显示Tag文件返回的相应面积。

代码:

inputAndShow.jsp

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

<%@taglib tagdir="/WEB-INF/tags/3_2"prefix="computer"%>

输入的三个数值a,b,c(三角形三边的长度或梯形的上底、下底和高):

输入a的值:
输入b的值:
输入c的值:

代表三角形

代表梯形


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

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

String sc=request.getParameter("c");

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

if(sa==null||sb==null||sc==null)

{ sa="0";

sb="0";

sc="0";

scd="0";

}

if(sa.length()>0&&sb.length()>0&&sc.length()>0){

%>


<%=message %>


<%=area %>

<%} %>

GetArea.tag

实验结果:

inputAndShow.jsp

输入2,2,2,按三角形提交:

输入2,2,2,按梯形提交:

实验4.6:request对象

实验目的:掌握怎样在JSP中使用内置对象request

实验要求:编写一个JSP页面inputNumber.jsp,该页面提供一个表单,用户可以通过表单输入两个数和四则运算符号提交给页面。用户提交表单后,JSP页面inputNumber.jsp 将计算任务交给一个Tag文件Computer.tag去完成。

代码:

inputNumber.jsp:

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

<%@taglib tagdir="/WEB-INF/tags/4_1"prefix="computer"%>

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


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

String b=request.getParameter("nu mberTwo");

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

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

{ a="";

b="";

}

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

%>

计算结果:<%=a %><%=operator %><%=b %>=<%=result %> <%} %>

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.toString());

}

%>

实验结果:

inputNumber.jsp:

运行后:

实验4.7:response对象

实验目的:本实验的目的是让学生掌握怎样使用response对象动态响应用户的请求。实验要求:response对象对用户的请求作出动态响应,向用户端发送数据。Response 对象调用setContentType(String s)方法可以动态改变响应的contentType属性的值。response对象调用addHeader(String head,String value)方法可以动态改变响应头和响应头的值。response对象调用setStatus(int n)方法可以动态改变相应的状态行的内容。response对象调用sendRedirect(URL url)方法可以实现用户的重定向。

代码:

input.jsp:

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

输入数字:

result.jsp:

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

<%String str=request.getParameter("number");

try

{ double num=Double.parseDouble(str);

if(num<0)

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

out.println(num + "的平方:" + (num*num));

}

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

{ response.setContentType("application/msword; charset=GB2312");

out.println(num + "的立方:" + (num*num*num));

}

else

{ response.setStatus(404);}

}

catch(Exception e)

{ response.sendRedirect("input.jsp"); } %>

实验结果:

input.jsp:

输入7提交:

输入5提交:

打开word内容:

实验4.8:session对象

实验目的:本实验的目的是让学生掌握怎样使用session对象存储和用户有关的数据。实验要求:编写四个JSP页面inputGuess.jsp、result.jsp、small.jsp、large.jsp和success.jsp,实现猜数字游戏。

代码:

inputGuess.jsp:

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

随机分给了你一个1到100之间的数,请猜测!

<%int number=(int)(Math.random()*100)+1;

session.setAttribute("count",new Integer(0));

session.setAttribute("save",new Integer(number));

%>

输入你的猜测:

result.jsp:

<%String str=request.getParameter("gnum");

if(str.length()==0)

{ response.sendRedirect("inputGuess.jsp");}

int gueNum=-1;

try

{ gueNum=Integer.parseInt(str);

int realNum=((Integer)session.getAttribute("save")).intValue();

if(gueNum==realNum)

{ int n=((Integer)session.getAttribute("count")).intValue();

n=n+1;

session.setAttribute("count",new Integer(n));

response.sendRedirect("success.jsp");

}

else if(gueNum>realNum)

{ int n=((Integer)session.getAttribute("count")).intValue();

n=n+1;

session.setAttribute("count",new Integer(n));

response.sendRedirect("large.jsp");

}

else if(gueNum

{ int n=((Integer)session.getAttribute("count")).intValue();

n=n+1;

session.setAttribute("count",new Integer(n));

response.sendRedirect("small.jsp");

}

}

catch(Exception e)

{ response.sendRedirect("inputGuess.jsp");}

%>

small.jsp:

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

猜小了,请再猜:

large.jsp:

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

猜大了,请再猜:

success.jsp:

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

<%int count=((Integer)session.getAttribute("count")).intValue();

int save=((Integer)session.getAttribute("save")).intValue();

%>

恭喜你,猜对了


您共猜了<%=count %>次,这个数字就是<%=save %>。


单击链接返回到页面:


inputGuess.jsp

实验结果:

inputGuess.jsp:

输入33送出:

根据提示猜测,最后结果:

相关主题
相关文档
最新文档