武汉工程大学邮电与信息
学院
学生实验报告
课程名称:动态网页技术
年级: 2010级
专业:计算机科学与技术
姓名:
学号:
指导教师:邹君
实验地点: 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"%>
<%
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("
");
}
%>
biao.jsp页面
四、实验结果分析
1、默认的端口号为8080,若修改,在conf目录下的server.xml文件中修改端口号。
2、设置虚拟目录。在conf目录下的server.xml中前加入:
实验二 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"%>
showDictionary.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.util.*"%>
<%!
TreeSet
public void addWord(String s)
{
String word[] = s.split(" ");
for(int i=0;i { dictionary.add(word[i]); } } %> <% String str = request.getParameter("word"); addWord(str); Iterator while(te.hasNext()) { String word = te.next(); out.print(" "+word); } %> 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"%> first.jsp <%@ page contentType="text/html;charset=GB2312"%>
这是页面1
<%@ include file="leader.txt" %>
second.jsp
<%@ page contentType="text/html;charset=GB2312"%>
这是页面2
<%@ include file="leader.txt" %>
third.jsp
<%@ page contentType="text/html;charset=GB2312"%>
这是页面3
<%@ include file="leader.txt" %>
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"%>
读取名字是ok.txt的文件:
readFile.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%>
This is readFile.jsp.
<%
String s= request.getParameter("file");
File f=new File(s);
if(f.exists())
{
out.println("
文件"+s+"的内容:");
FileReader in=new FileReader(f);
BufferedReader bIn=new BufferedReader(in);
String line=null;
while((line=bIn.readLine())!=null)
{
out.println("
"+line);
}
}
else
{
%>
<%
}
%>
error.jsp
<%@ page contentType="text/html;charset=GB2312"%>
This is error.jsp.
<%
String s= request.getParameter("mess");
out.println("
本页面得到的信息:"+s);
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"%>
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" %>
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.*" %>
<%
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"); }
%>
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" %>
选择要购买的图书
Java面向对象设计(34元) |
JSP程序设计(34元) |
XML程序设计(34元) |
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);
}
%>
图书订单
<%= bookName %> | <%= isbn %> | <%= price %> |
choiceBook.jsp页面
orderForm页面
五、实验结果分析:
1、session的作用就是记住客户的连接信息,可以使用会话对象(session)。
session对象记录了每个客户与服务器的连接信息
2、判断session是否失效有三种情况1)、客户是否关闭浏览器。2)、是否
到达最大的发呆时间3)、是否调用validate()函数
3、session对象常用方法:
setAttribute(String name,https://www.doczj.com/doc/7e10327771.html,ng.Object value):设定指定名字的
属性值,并且把它存储在session对象中。
getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null
《jsp程序设计》 Jsp课程设计实验报告 题目学生成绩管理系统 专业 班级 姓名 指导教师 2011年6月28日
目录 一、绪论----------------------------------------------------------------------------------------------------------------- 3 1、系统开发背景 ----------------------------------------------------------------------------------------------- 3 2、项目开发的目标-------------------------------------------------------------------------------------------- 3 3、系统开发所用的技术设备------------------------------------------------------------------------------- 3 二、需求分析 ---------------------------------------------------------------------------------------------------------- 3 1、系统需求分析 ----------------------------------------------------------------------------------------------- 3 2、用户需求 ----------------------------------------------------------------------------------------------------- 4 3、系统框架图如下: ---------------------------------------------------------------------------------------- 5 4、系统设计思想 ----------------------------------------------------------------------------------------------- 5 5、系统设计分析 ----------------------------------------------------------------------------------------------- 5 三、数据库的设计---------------------------------------------------------------------------------------------------- 6 1、本系统将数据存储在七个表中,这七个表分别是 ---------------------------------------------- 6 2、建立数据库的命令如下:------------------------------------------------------------------------------- 8 3、建立数据表的命令如下:------------------------------------------------------------------------------- 8 四、关键技术及代码------------------------------------------------------------------------------------------------- 9 1、管理员登录代码-------------------------------------------------------------------------------------------- 9 2、从数据库中获取用户名和密码的代码。 --------------------------------------------------------- 10 3、留言板的相关代码。 ----------------------------------------------------------------------------------- 12 五、测试--------------------------------------------------------------------------------------------------------------- 16 1、登录界面的测试: -------------------------------------------------------------------------------------- 16 2、查询页面: ------------------------------------------------------------------------------------------------ 18 3、添加页面: ------------------------------------------------------------------------------------------------ 18 4、删除页面: ------------------------------------------------------------------------------------------------ 19 5、修改页面 --------------------------------------------------------------------------------------------------- 20 六、总结--------------------------------------------------------------------------------------------------------------- 20 七、参考文献 -------------------------------------------------------------------------------------------------------- 20
实验1 网页程序设计-JavaScript 一、实验目的 1. 掌握JavaScript技术,基本掌握JavaScript的开发技巧; 2. 利用文本编辑器建立JavaScript脚本语言进行简单编程。 二、实验要求: 1. 根据以下实验内容书写实验准备报告。 2. 独立完成实验。 三、实验内容 1.显示一个动态的时钟 在文本编辑器“记事本”中输入如下代码程序,请仔细阅读下列程序语句,理解每条语句的作用。源程序清单如下:
运行结果:Jsp实验报告 课程设计名称:兼职网站 系:交通运输管理学院学生姓名: 班级: 学号: 成绩: 指导教师: 开课时间:2013学年第2 学期
一.设计题目 兼职网站 二.主要内容 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。 (1)用户的登录判定 (2)录入兼职的信息,并保存到数据库中 (3)根据用户的需求选择查询方式,查询相关兼职信息 (4)将信息从数据库中删除 三.具体要求 (1)建立数据库表格存储用户数据(用户名及密码)。 (2)建立数据库表格存储兼职信息,主要包括ID、兼职名称、地点、工资和联系方式。 (3)编写jsp 语句连接数据库 (4)利用request函数提交表单,获取输入信息 (5)以SQL语句对数据库进行操作,完成信息的添加,查询及删除等功能。四.进度安排 五.成绩评定 正文 1、系统的需求分析和功能设计 随着电子信息在人们生活中的的使用比重不断增加,人们越来越习惯在网站上查找自己所需
要的信息不仅仅只是因其快捷,更因其接触的面更加广泛,信息的基础量足够大,足以满足人们更加细化的需求。在寻找兼职体验工作生活或赚取生活费用时,可以减少时间的浪费及其他不必要的消耗。 本网站涉及兼职信息、用户信息的数据管理。从管理的角度可将信息分为两类:兼职信息管理、用户数据管理。用户数据管理为用户的登录判定,兼职信息管理包括兼职信息显示及兼职信息的录入、查询和删除。用户登录后可以根据自己的需要对信息进行添加、查询和删除的操作 2、源程序及注释 主页:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>