《JSP程序设计》实验指导
实验一:动态网页设计基础
一.实验目的
1.掌握HTML常见标记
2.熟悉JavaScript脚本
3. 熟悉div+css布局
二.实验内容
1.编写一个个人简历页。
2.使用CSS对上述页面重新布局、美化
三.实验软件
JDK5.0、Tomcat5.0
四.实验步骤
参考案例:用户注册表单实现
1.在Tomcat的Webapps/root下新建如下reg.html文件
function validate(){
var userName=document.forms[0].userName.value;
if(userName.length<=0) alert("用户名不能为空!");
else{
alert("验证通过,表单可以提交!");
document.forms[0].submit();
}
}
2.测试reg.htm文件
在IE浏览器中输入 http://127.0.0.1:8080/reg.html
实验二: JSP基础语法
一.实验目的
1.掌握JDK的安装配置
2.熟悉Tomcat的配置
3.测试JSP的运行环境
4.掌握JSP的页面的基本结构
5.掌握JSP的指令标记和动作标记
二.实验内容
编写四个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页面 |
(1)one.jsp的具体要求
要求one.jsp页面有一个表单,用户使用该表单可以输入一个1~100之间的整数,并提交给该页面;如果输入的整数在50~100之间(不包括50)就转向three.jsp,如果在1~50之间就转向two.jsp;如果输入不符合要求就转向error.jsp。要求forward标记在实现页面转向时,使用param子标记将整数传递到转向的two.jsp或three.jsp页面,将有关输入错误传递到转向的error.jsp页面。
(2)two.jsp、three.jsp和error.jsp的具体要求
要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error.jsp页面能显示有关的错误信息和一幅图像。
三.实验软件
JDK5.0、Tomcat5.0
四.实验步骤
one.jsp(效果如图1-6所示)
图1-6 使用include动作标记加载导航条
two.jsp(效果如图1-7所示)
图1-7 得到param子标记传递来的值
three.jsp(效果如图1-8所示)
图1-8 得到param子标记传递来的值
error.jsp(效果如图1-9所示)
图1-9 显示错误信息
5.参考代码
代码仅供参考,学生可按照实验要求,参考本代码编写代码。
JSP页面参考代码
one.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%
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)
{
%>
}
catch(Exception e)
{
%>
<% }
%>
two.jsp
<%@ page contentType="text/html;charset=GB2312" %>
This is two.jsp.
<%
String s=request.getParameter("number");
out.println("
传递过来的值是"+s);
%>
three.jsp
<%@ page contentType="text/html;charset=GB2312" %>
This is three.jsp.
<%
String s=request.getParameter("number");
out.println("
传递过来的值是"+s);
%>
error.jsp
<%@ page contentType="text/html;charset=GB2312" %>
This is error.jsp.
<%
String s=request.getParameter("mess");
out.println("
传递过来的错误信息"+s);
%>
实验三: JSP内置对象
一.实验目的
1.掌握表单的提交
2.掌握常用内置对象的使用方法。
二.实验内容
1.编写一个用户登录页面、用户选择商品页面、用户结算页面模拟用户购物过程
三.实验软件
JDK5.0、Tomcat5.0
四.实验步骤
参考代码:
1.建立一个Web应用,在主页面实现登录见面,在其中输入用户名,密码,发送到登录
验证页面,登录成功,显示成功提示,登录失败,显示失败页面。
2.在登录成功之后,在成功页面中显示当前站点的被访问的次数,如果同一用户已经登录,
多次刷新此页面,不重计数。
<%//10秒后一个session自动失效,也就是10秒后再次刷新页面认为是一次新的登录。//获取系统生成的会话id。
String userSessionId=session.getId();
String
storedSessionId=(String)session.getAttribute("storedSessionId");
//站点访问次数处理
//如果以前没有用户访问,此次为第一次访问,则设置计数器值为1
if(application.getAttribute("webVisitedCount")==null){
application.setAttribute("webVisitedCount","1");
session.setAttribute("storedSessionId",userSessionId);
out.println("欢迎,您是第1位访客!");
}
else{
//如果以前已有用户访问,则根据次用户是新登录用户还是已经登录的用户决定是否计数。
if(!userSessionId.trim().equals(storedSessionId))
{ //新登录用户,则进行一次新的计数,计数值增加1。
int i =
Integer.parseInt((String)application.getAttribute("webVisitedCount")) ;
i++;
application.setAttribute("webVisitedCount",String.valueOf(i));
session.setAttribute("storedSessionId",userSessionId);
out.println("欢迎,您是第"+i+"位访客!");
}
else
{ //登已经登录用户,不计数。
int i =
Integer.parseInt((String)application.getAttribute("webVisitedCount")) ;
out.println("欢迎,您是第"+i+"位访客!");
}
}
%>
实验四: JavaBean和表单
一.实验目的
1.熟练掌握表单的提交
2.掌握Javabean的概念和使用方法
二.实验内容
1.编写用户注册、注册后显示提示信息的JavaBean
三.实验软件
JDK5.0、Tomcat5.0
四.实验步骤
参考P175 例子7-1
实验五: 文件操作
一.实验目的
1.熟练掌握表单的提交
2.掌握Javabean的概念和使用方法
二.实验内容
1.课余时间且在实验课之前,认真复习教材上关于文件操作的例题。
2.实现一系统,具体要求:该系统能够实现文件上传功能和下载功能,显示文件列表和读取文件内容功能。
3.要求在webapps目录下新建一个Web服务目录:test3。除特别要求外,本章实验中涉及的JSP页面均保存在test3中。
三.实验软件
JDK5.0、Tomcat5.0
四.实验步骤
实例参考
upfile.jsp实现文件上传功能,顶部为三个页面的超链接。页面效果如图所示:
文件上传页面
listdir.jsp实现列出服务目录所有文件和子目录的功能,并且能够显示指定文件内容功能。页面效果如图所示:
显示文件列表以及文件内容页面
downfile.jsp实现文件下载功能,示例中为直接指定能够下载的文件,学生应该进行改进,实现能够根据服务目录的变化而变化的效果。页面效果如图3-3所示:
文件下载页面
参考代码:代码仅供参考,学生可按照实验要求,参考本代码编写代码。
upfile.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.UpFile" %>
选择要上传的文件:
<% upFile.setRequest(request);
upFile.setSession(session);
%>
downfile.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.DownLoadFile" %>
<%@ page import="java.io.*" %>
选择要下载的文件:
<% downFile.setResponse(response);
%>
listdir.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="tom.jiafei.ReadFile" %>
该目录
有如下文件:
文件内容如下: