jsp实验报告

jsp实验报告
jsp实验报告

中南民族大学管理学院学生实验报告

课程名称: JSP程序设计

年级: 2010级

专业:信息管理与信息系统

姓名:

学号:

指导教师:

实验地点:管理学院综合实验室

20 学年至 20 学年度第 2 学期

第一章 JSP简介

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

一、实验目的

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

二、实验要求

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

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

三、实验结果

所运行的代码如下;

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

乘法表

<%

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

{

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

{

int n=i*j;

(i+"×"+j+"="+n+" ");

}

("
");

}

%>

页面

四、实验结果分析

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

2、设置虚拟目录。在conf目录下的中前加入:

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

第二章 JSP页面与JSP标记

实验1 JSP页面的基本结构

一、实验目的

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

二、实验要求

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

三、实验内容

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

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

四、实验结果

实验所用代码如下:

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

请输入单词(用空格分隔):


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

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

<%!

TreeSetdictionary=new TreeSet();

public void addWord(String s)

{

String word[] = (" ");

for(int i=0;i<;i++)

{

(word[i]);

}

}

%>

<%

String str = ("word");

addWord(str);

Iteratorte=();

while())

{

String word = ();

(" "+word);

}

%>

页面

页面

五、实验结果分析

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

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

实验2 JSP指令标记

一、实验目的

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

二、实验要求

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

三、实验内容

编写3个JSP页面。

1)使用include指令静态插入文本文件。

2)使用include指令静态插入文件。

3)使用include指令静态插入。

四、实验结果

所运行代码如下:

<%@ page contentType="text/html;charset=GB2312"%> 链接到页面1

链接到页面2

链接到页面3

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

这是页面1

<%@ include file="" %>

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

这是页面2

<%@ include file="" %>

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

这是页面3

<%@ include file="" %>

页面

页面

页面

五、实验结果分析

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

实验3 JSP动作标记

一、实验目的

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

二、实验要求

编写三个JSP页面:、和。

三、实验内容

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

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

3)负责显示错误信息。

四、实验结果

实验所用代码如下:

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

读取名字是的文件:

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

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

This is .

<%

String s= ("file");

File f=new File(s);

if())

{

("
文件"+s+"的内容:");

FileReader in=new FileReader(f);

BufferedReader bIn=new BufferedReader(in);

String line=null;

while((line=())!=null)

{

("
"+line);

}

}

else

{

%>

<%

}

%>

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

This is .

<%

String s= ("mess");

("
本页面得到的信息:"+s);

%>

页面

页面

五、实验结果分析

1、include动作标记是在jsp页面运行时才处理加载的文件,被加载的文件在逻辑和语

法上独立与当前jsp页面,include指令标记可以使用param子标记向被加载的jsp

文件传递信息。

第三章 Tag文件与Tag标记

实验1 JSP页面的基本结构

一、实验目的

本实验的目的是让学生灵活掌握在Tag标记中使用标记体。

二、实验要求

编写一个JSP页面和一个Tag文件。JSP页面通过调用Tag文件在表格中的单元格显示文本,该JSP页面通过使用标记体将要显示的文件传递给被调用的Tag文件。

三、实验内容

1)页面使用带标记体的tag标记来调用tag文件。

2)使用处理标记体,将标记体给出的文本显示在表格的单元格中。四、实验结果

实验所用代码如下:

实验1

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

<%@ taglib tagdir="/WEB-INF/tags" prefix="ok"%>

表格每行重复显示信息

南非世界杯

冠军是西班牙

亚军是荷兰

页面

五、实验结果分析

1、tag文件中可以有html标记符、特殊的指令标记、成员变了和方法、java程序片和java表达式。

2、jsp页面使用tag标记动态执行一个tag文件。

3、当jsp页面调用一个tag文件时可能希望动态地向该tag文件传递信息,那么就可以使用带有标记体的tag标记来执行一个tag文件。

实验2 使用attribute指令

一、实验目的

本实验的目的是让学生灵活掌握在Tag标记中使用attribute指令。

二、实验要求

编写一个Tag文件,该Tag文件负责显示日历。编写一个JSP页面,该JSP页面使用Tag标记调用文件,并且向文件传递年份和月份。

三、实验内容

1)通过tag标记调用文件,并且向文件传递年份和月份。

2)文件根据jsp页面传递过来的年份和月份显示日历。该文件能对jsp页面传递过来的数据进行判断,比如,如果jsp页面传递过来的数据不是数值型数据,tag文件负责显示错误信息。

四、实验结果

实验所用代码如下:

实验2

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

<%@ taglib tagdir="/WEB-INF/tags" prefix="rili"%>

调用Tag文件来显示日历.

<%@ tag pageEncoding="GB2312" %>

<%@ tag import=". *" %>

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

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

<%

int y=1999,m=1;

String [] day=new String[42];

try

{

y=(year);

m=(month);

Calendar rili=();

(y,m-1,1);*" %> <%@ attribute name="str" required="true" %>

<%@ variable name-given="wordList" variable-class="" scope="AT_END" %>

<%

ArrayListlist=new ArrayList();

String regex="[\\s\\d\\p{Punct}]+";

String words[]=(regex);

for(int i=0;i<;i++){

(words[i]);

}

("wordList",list);

%>

页面

五、实验结果分析

1、Tag文件可以使用variable指令把一个对象返回给调用它的jsp页面

Tag文件使用variable指令给出返回的对象的名字、类型和有效范围:<%@ variable name-given=“对象名字”variable-class=“对象的类型”

scope=“有效范围”%>

第4章 JSP内置对象

实验1 request对象

一、实验目的

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

二、实验要求

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

三、实验内容

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

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

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

四、实验结果

实验所用代码如下:

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

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


<%@ 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=(numberA);

double b=(numberB);

double r=0;

if("+"))

{

r=a+b;

}

else if("-"))

{

r=a-b;

}

else if("*"))

{

r=a*b;

}

else if("/"))

{

r=a/b;

}

("result",(r));

}

catch(Exception e){

("result","发生异常:"+e);

}

%>

页面

页面

五:实验结果分析

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

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

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

其语法规则如下:

<% String name= (“txtName”)%>

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

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

<%

String a=("numberOne");

String b=("numberTwo");

String operator=("operator")

实验2 responese对象

一、实验目的

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

二、实验要求

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

三、实验内容

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

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

四、实验结果

实验所用代码如下:

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

输入圆的半径:

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

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

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

<%@ page import="" %>

<%@ page import="" %>

<%@ page import="" %>

<%

String R=("radius");

(R);

try

{

double number=(R);

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

{

("text/plain;charset=GB2312");

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

}

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

{

("image/jpeg");

int width =100,height =100;

BufferedImage image =new BufferedImage(width,height,;

Graphics g = ();

;

(0,0,width,height);

Graphics2D g_2d = (Graphics2D)g;

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

;

(circle);

();

OutputStream outClient = ();

JPEGImageEncoder encoder = (outClient);

(image);

}

}

catch(Exception e)

{

("");

}

%>

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

页面

页面

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

页面

页面

五、实验结果分析:

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

端浏览器

2、与request相比,它的功能和request对象的功能相反。request

对象用于得到用户提交的信息而response对象是向用户发送信息,两者结合起来完成动态页面的交互功能。

3、response对象的主要方法:

sendRedirect():页面重定向方法

setStatus():设置状态行方法

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

实验3 session对象

一、实验目的

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

二、实验要求

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

三、实验内容

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

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

四、实验结果:

实验所用代码如下:

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

选择要购买的图书

Java面向对象设计(34元)

JSP程序设计(34元)

XML程序设计(34元)

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

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

<%

String book = ("bookMess");

if(book != null){

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

String bookName = ();

String bookISBN = ();

(bookISBN,book);

}

%>

图书订单

<%

Enumeration keys = ();

while()){

String key = (String)();

book = (String)(key);

if(book != null){

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

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

String bookName = new String(X);

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

String isbn = new String(S);

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

String price = new String(P);

%>

<%

}

}

%>

<%= bookName %><%= isbn %><%= price %>

页面

orderForm页面

五、实验结果分析:

1、session的作用就是记住客户的连接信息,可以使用会话对象(session)。

相关主题