web编程实验指导书.docx
- 文档编号:2555558
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:32
- 大小:976.81KB
web编程实验指导书.docx
《web编程实验指导书.docx》由会员分享,可在线阅读,更多相关《web编程实验指导书.docx(32页珍藏版)》请在冰点文库上搜索。
web编程实验指导书
《Web编程》
实验参考资料
实验二:
熟悉JSP内置对象
一、实验目的
1、熟悉Tomcat服务器,熟悉在服务器端开发Web页面的基本操作。
2、熟悉JSP内置对象,如request、response、session、out和application等。
3、熟悉内置对象的方法,能够应用到实际编程中。
二、实验内容
1、熟悉Tomcat服务器的服务目录
可以在WEB浏览器下访问Tomcat服务器的服务目录中的WEB页面。
如输入:
http:
//localhost:
8080,可以显示Tomcat服务器中的默认页面,表明服务器运行正常。
2、熟悉JSP的内置对象,熟悉内置对象的方法,能够应用到实际编程中
使用JSP的内置对象,编写一个聊天室程序,使用户输入自己的ID后进入聊天室,在聊天室中可以输入消息,发送给消息显示页面,消息显示页面会显示所有人的发送来的消息,供所有用户查看。
见goto_index.jsp和index.jsp演示结果图,其中goto_index.jsp为登录页面,index.jsp为聊天室页面。
图1登录页面(goto_index.jsp)
图2聊天室页面index.jsp
(1)登录页面的设计
通过表单中的文本框和按钮提交ID信息给index.jsp页面。
ID信息可以通过session对象进行保存,便于其他页面使用。
其代码框架如下:
<%@pagecontentType="text/html;charset=GB2312"%>
请输入您的ID:
<%
if(request.getParameter("s")!
=null)
{
//
(1)利用session对象设置一个属性,把属性的值设置成文本框输入的ID信息
//
(2)利用response重定向的方法,将页面重定向到index.jsp
}
%>
(2)聊天室主页面设计
聊天室主页面index.jsp内含两个页面:
send.jsp(发送聊天消息)和show.jsp(显示聊天消息)。
可以通过html的frameset标记进行设置。
其代码框架如下:
<%@pagecontentType="text/html;charset=GB2312"%>
<%
//防止使用空ID登录,防止直接调用index.jsp页面,如果出现上述情况,使用response对象的重定向将页面定向到登录页面
if((session.getAttribute("name")==null)||(session.getAttribute("name").equals("")))
response.sendRedirect("goto_index.jsp");
%>
(3)发送聊天消息页面的设计
发送聊天消息页面send.jsp通过文本框和按钮提交聊天消息,保存在一个容器(Vector)中,并将此Vector作为值放入一个application设置的属性中,便于所有用户查看。
注意:
自己发送的消息实时显示的问题。
可以通过top.location.reload()方法刷新show.jsp解决。
其代码框架如下:
<%@pagecontentType="text/html;charset=GB2312"import="java.util.*"%>
输入聊天内容:
<%!
Vectorv=newVector();//定义一个Vector对象,用于存放聊天信息
%>
<%
//
(1)定义一个字符串变量,如message,用于存放文本框提交的消息(使用request.getParameter()方法)
//
(2)定义一个字符串变量,如name,用于存放登录者ID(session.getAttribute()方法)
//(3)如果消息不为空:
if(!
message.equals(“”))
{
//将字符串组合放入Vector对象中,如:
v.add(name+":
"+message),并使用application.setAttribute(),将此Vector对象放入一个属性中,便于show.jsp调用。
%>
top.location.reload();
<%
}
%>
(4)聊天消息显示页面的设计
聊天消息显示页面show.jsp显示所有聊天消息,即从application中取出Vector的值,通过out.print()显示在客户端。
并且通过不断刷新本页面的方法来显示最新的消息。
其代码框架如下:
<%@pagecontentType="text/html;charset=GB2312"import="java.util.*"%>
<%
//
(1)显示“欢迎你,xxx“的字符串,ID可以从session对象中获得
//
(2)定义一个Vector对象,从application中获得值,即目前所有消息的信息
//(3)如果Vector对象值不为空,则把其中的String类型的消息都打印出来:
if(v!
=null)
{
for(inti=0;i out.print(" "+(String)v.elementAt(i)); } //(4)定时刷新本页面,使用response对象的刷新方法 %> 三、思考题 思考如何对聊天室进行扩展,比如添加在线人员名单、防止重复ID登录等等。 实验三: 使用JSP操作文件 一、实验目的 1、熟悉JAVA操作文件的方法 2、熟悉JSP中操作文件的方法,能够在实际应用中编写JSP操作文件的Web程序 二、实验内容 1、熟悉JAVA操作文件的方法 包括JAVA的字节流、字符流、数据流、对象流和RandomAccessFile类的用法。 自己动手演示课堂上讲授的典型的例子。 2、熟悉JSP中操作文件的方法,能够编程应用在实际Web页面中 使用RandomAccessFile类操作文件,实现JSP在线测试页面。 客户请求首页面,首页面处理试题文件,将文件中的每一行(每一行表示一道题目)读出,存放在session对象的属性中,然后点击按钮进入练习页面。 练习页面从第一题开始显示,即按顺序获取session对象的属性并显示。 用户通过单选按钮选择答案,并进行提交,然后页面下部显示得分和正确答案。 提交完最后一题,页面显示结束信息,并给出最后得分。 程序运行结果如图1、2、3所示。 图1首页面toindex.jsp 图2在线测试页面(试题测试中) 图3在线测试页面(测试结束) (1)试题文件的格式 试题文件中,每一行表示一道题目,题目、四个备选答案和正确答案之间用“#”隔开,如: #JSP内置对象中,用于输出数据到客户端进行显示的对象是: #out#session#request#response#A# #JSP内置对象中,用于提交客户端请求的对象是: #out#session#request#response#C# #session对象的ID值是存放在客户端的#windows目录下的系统文件中#cookie中#WEB服务器的服务目录下文件中#缓冲区中#B# (2)首页面的设计 设置成绩和题目号数的初始值,放入session属性中存储,并使用RandomAccessFile类访问test.txt文件,把每个题目所包含的信息用session对象进行存储。 通过按钮进入练习页面。 其代码框架如下: <%@pagecontentType="text/html;charset=GB2312"import="java.io.*,java.util.*"%>
以下练习题为教材第二章第三节课后习题
<%
//
(1)初始化一些需要的变量
inti=0;
Stringstr=null;
//
(2)使用session对象设置两个属性,表示成绩和题号,初始值都是0
//(3)使用RandomAccessFile操作文件,将文件中的每一行读出(可以使用readLine()方法),并存入到session对象中
try{
......//生成RandomAccessFile类对象
while((str=random.readLine())!
=null)
{
......//分别将文件的每行内容放入到session对象的属性中,属性名字可以使用1、2、3等。
}
}
catch(IOExceptione){}
%>
<--表单,提交后进入练习页面-->
(3)练习页面的设计
首先取得题号值,然后将本题号对应的session属性的信息提取出来,并进行显示。
提交选择后,处理选择是否和题目答案一致,将当前分数和正确答案进行显示,并显示下一题。
提交完最后一题后,显示结束信息和最终分数。
其代码框架如下:
<%@pagecontentType="text/html;charset=GB2312"import="java.io.*,java.util.*"%>
<%!
publicStringgetStr(Stringstr){
try{
Stringtemp_p=str;
byte[]temp_t=temp_p.getBytes("ISO8859-1");
Stringtemp=newString(temp_t);
returntemp;
}
catch(Exceptione){
}
return"null";
}
%>
<%
//
(1)防止直接调用index.jsp页面
if(request.getParameter("s")==null)
response.sendRedirect("toindex.jsp");
Stringoption[]=newString[6];//定义一个字符串数组,用来存放题干\备选答案\正确答案
inttihao=0;//定义一个int,用来存放题号
//
(2)使用session对象的getAttribute()方法获得题号,对目前题号值加1,为新题目号,然后再放回该属性
//(3)获取新题目在文件中的对应行,使用session.getAttribute()方法,结果存入一个字符串,如str
if(str!
=null)//如果还可以取到内容(即没到文件末尾,没到最后一题的末尾)
{
StringTokenizertokenizer=newStringTokenizer(str,"#");
while(tokenizer.hasMoreTokens())
{
option[i]=tokenizer.nextToken();//将#之间的字符串分别赋给option[]数组
i++;
}
tihao=number.intValue();
session.setAttribute("answer"+tihao,option[5]);//设置每题的正确答案属性
//(4)使用out对象打印题目信息
//(5)得出上题的提交答案和正确答案,放入到字符串中,分别使用request.getParameter()和session.getAttribute()方法
//(6)判断提交答案是否为空
if(result==null)
{
result="没有给出答案";
}
//(7)判断提交答案是否和正确答案一致,一致则对分数属性加1,使用session.getAttribute()和session.setAttribute()方法
//(8)使用out.print()方法打印现在的分数、上一题提交的答案和上一题的正确答案
}
else//到了文件末尾,即最后一题已提交
{
//(9)取出最后一个的提交答案和最后一题的正确答案,判断是否正确,成绩是否加1
//(10)打印“练习结束”的字样和最终成绩的结果
}
%>
实验四和实验五:
使用JSP操作数据库
一、实验目的
1、掌握JAVA操作数据库的方法,包括连接数据库、查询、更新、添加和删除数据记录的方法。
2、使用JSP操作数据库,能够在实际编程中使用JSP操作数据库。
二、实验内容
1、掌握JAVA操作数据库的方法
包括连接数据库、查询、更新、添加和删除数据记录的方法。
自己动手演示课堂上讲授的典型的例子。
2、熟悉JSP中操作数据库的方法,能够编程应用在实际Web页面中
使用JSP操作后台SQLSERVER数据库,编写一个留言本,包括用户的注册、登录和留言功能。
(1)建立数据库,并连接到一个ODBC数据源之上
实现数据库程序的第一步必须要建一个数据库供程序使用。
在MicrosoftSQLServer中,我们通过“企业管理器”客户端工具来建立一个用户自己的数据库。
选择“程序”—“MicrosoftSQLServer”—“企业管理器”,进入SQLServer的客户端控制台,点开树形目录,进入数据库项,见图1。
图1SQLServer企业管理器
图中可以看到有许多系统数据库。
用户需要自己创建一个新的数据库来使用,创建方法十分简单,在树形目录“数据库”上单击右键,选择“新建数据库”,系统会给出向导,输入数据库名后选择“确定”,就会在数据库项下出现刚刚新建的数据库的名字,表示数据库已经新建完成。
建好数据库后,我们需要在操作系统中建立一个ODBC数据源,然后连接到我们刚刚新建的数据库中,然后用户通过使用ODBCAPI就可以操作数据库了。
建立ODBC数据源的步骤如下:
1、在“控制面板”中选择“管理工具”,然后双击“数据源(ODBC)”,进入“ODBC数据源管理器”。
见图2。
图2ODBC数据源管理器
我们选择“系统DSN”,点击“添加”按钮,进入新建数据源设置。
1)首先选择创建什么类型的数据源,这里选择SQLServer,见图3。
进入下一步。
2)输入数据源的名字,选择服务器,如果是本地数据库,选择Local。
见图4。
进入下一步。
3)设置SQLServer验证方式,这里按图5设置的方式进行验证,输入我们安装SQLServer时设置的sa用户和密码,进入下一步。
4)通过选择“更改默认的数据库”,将数据源连接到新建的数据库上。
见图6。
进入下一步,点击“完成”,显示刚刚配置的ODBC信息。
见图7。
图3选择数据源类型
图4输入数据源名和选择服务器
图5设置SQLServer验证方式
图6更改默认的数据库
图7ODBC数据源配置信息
5)点击“测试数据源”,如果配置成功,则会显示连接成功的信息,如图8。
图8ODBC数据源创建成功
(2)在数据库中建表
数据库和ODBC数据源创建成功后,我们开始设计数据库。
由于我们需要保存用户注册信息和用户留言信息,所以需要在数据库中建两个表。
进入SQLServer的企业管理器,开始操作数据库。
点击树形目录下“数据库”的“test”,在“表”上点击右键,选择“新建表”,进入新表的设计界面,见图9。
图9新建表
首先建立留言本用户注册信息表,其中需要两项信息:
用户名和密码,即需要在表中设置两个列名用来存储对应信息。
接下来设置两个列名的数据类型,这里设置成varchar类型,可以输入50位长度的字符串。
然后我们点击右键,选择“保存”,输入表名并确定后,这个表就成功被创建了。
这时我们双击test下的“表”,发现新建的表已经出现在右侧的类表中了。
如果我们打算再修改表的设计,可以在表名上点击右键,选择“设计表”,可以进入表设计界面。
如果我们打算向表中添加内容,可以在表名上点击右键,选择“打开表”—“返回所有行”,就可以进行表内容输入了。
同样步骤建立留言信息表,需要三列:
留言用户名、留言内容和留言时间。
(3)用户登录页面的设计
用户注册页面的运行结果图如图10所示。
图10用户登录页面
用户在本页面中输入名字和密码,进行留言本的登录。
本页面的程序对用户输入的信息在数据库的表中进行查询,如果存在此姓名,并且姓名和密码匹配,则允许用户进入留言本页面,否则重新登录。
另外如果是新用户,首先要进行注册,点击“注册”后进入注册页面。
其程序代码框架如下:
<%@pagecontentType="text/html;charset=gb2312"%>
<%@pagelanguage="java"import="java.sql.*"%>
<%!
publicStringgetStr(Stringstr){
try{
Stringtemp_p=str;
byte[]temp_t=temp_p.getBytes("ISO8859-1");
Stringtemp=newString(temp_t);
returntemp;
}
catch(Exceptione){
}
return"null";
}
%>
<%
if(request.getParameter("sub1")!
=null){
//定义两个字符串,用于存放用户输入的名字和密码
//定义一个字符串sql,用于写SQL语句
//定义数据库连接、结果集对象,执行sql语句
try
{
//查找是否有结果集内容,如果有,则说明用户名和密码匹配,使用一个标记,如rowscount++
//关闭数据库连接
}
catch(Exceptione){}
if(rowscount!
=0)
{
//说明用户名和密码匹配,登录成功
//设置一些session属性,提供给其他页面使用
session.setAttribute("Ok","yes");
session.setAttribute("username",request.getParameter("logname"));
//重定向到留言本页面
response.sendRedirect("liuyanben.jsp");
}
}
elseif(str1!
=null)
{
//如果选择“注册”按钮,则重定向到注册页面
response.sendRedirect("zhuce.jsp");
}
%>
//表单,注意action为空
名字:
密码:
(4)用户注册页面的设计
用户注册页面见图11。
图11用户注册页面
首先判断两次输入的密码是否一直,然后判断使用的用户名是否已经存在,符合条件的话,将用户名和密码的信息添加到数据库的表中,并回到登录页面。
其代码框架如下:
<%@pagecontentType="text/html;charset=GB2312"import="java.sql.*,java.util.Date"%>
<%!
publicStringgetStr(Stringstr){
try{
Stringtemp_p=str;
byte[]temp_t=temp_p.getBytes("ISO8859-1");
Stringtemp=newString(temp_t);
returntemp;
}
catch(Exceptione){
}
return"null";
}
%>
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- web 编程 实验 指导书