2015春季学期中法班JSP程序设计实验报告-陈亭宇 - 图文
更新时间:2023-09-19 02:15:01 阅读量: 小学教育 文档下载
- 春季学期工作计划推荐度:
- 相关推荐
JSP程序设计实验报告
国际教育学院 中法计122班
陈亭宇 122918
2015秋季学期
实 验 说 明
《JSP编程技术》JSP(Java Server Pages)是基于Java 语言的一种Web应用开发技术,利用这一技术可以建立安全、跨平台的先进动态网站。该课程作为电子商务专业的一门专业课,主要介绍JSP程序设计的基本知识,为日后学生进行编程设计打下牢固的程序设计语言基础。
实验课是《网络编程技术--JSP》的重要实践环节。通过实验,使学生加深理解、验证、巩固课堂教学内容,加深对JSP编程设计的过程、方法的理解,充分发挥学生的想象力和创新能力。本实验课程共开设5个实验项目。
实验方式与基本要求: 学生须在实验前预习相应实验内容,熟悉实验的基本原理、方法及要求、制定好上机步骤,弄清实验目的;实验每次均为4学时,学生须按时到场;要求学生掌握程序设计的各种基本方法与步骤,并在实验中得到提高。
考核及报告: 实验时立将各种问题与结果记录下来,实验内容可以通过截图等方式存入U盘,并在课后完成实验报告内容;课程总成绩应为理论考核、实验成绩、平时成绩的综合;其中实验课程成绩在平时成绩中,平时成绩共占30%,理论课成绩占70%。
实验一 JSP基本操作
1.实验目的
(1)掌握怎样设置Web服务目录、怎样访问Web服务目录下的JSP页面。 (2)掌握怎样在JSP页面中使用成员变量、怎样使用Java程序片、Java表达式。
2.实验内容
第一部分:在JSP页面中实现面向过程编程 1. 输出所有1到1000内的完数。(perfect.jsp)
一个数如果恰好等于除它本身外的因子之和,这个数就称为\完数\,也叫“完美数”。例如6=1+2+3.(6的因子是1,2,3),因此,6 就是一个完数。
代码: <%@ page language=\ contentType=\ pageEncoding=\%>
输出界面:
2. 输出乘法口诀表。(multi.jsp)
代码:
<%@ page language=\ contentType=\charset=ISO-8859-1\ pageEncoding=\%>
输出界面:
第二部分:Web服务目录
1、实验内容 编写两个JSP 页面,名字分别为inputName.jsp和people.jsp。 2、实验要求
1)在硬盘分区D下新建一个目录,名字为:student,将student设置为Web服务目录,并为该Web服务目录指定名字为practice的虚拟目录。
2)启动Tomcat服务器(如果已经启动,必须关闭Tomcat服务器,并重新启动)。 3)用文本编辑器编写一个JSP页,并保存到Web服务目录student中。 4)用浏览器访问Web服务目录student中的JSP页面。 5)inputName.jsp的具体要求
该页面有一个表单,用户通过该表单输入自己的姓名并提交给people.jsp页面。 6)people.jsp的具体要求
(1) JSP页面有名字为person、类型是StringBuffer以及名字是count,类型为int的成员变量。
(2) JSP有public void judge ()方法。该方法负责创建person对象,当count的值是0 时,judge ()方法创建person对象。
(3) JSP有public void addPerson(String p)的方法,该方法将参数p指定的字符串尾加到操作成员变量person,同时将count作自增运算。
(4) JSP页面在程序片中获取inputName.jsp页面提交的姓名,然后调用judge ()创建person对象、调用addPerson方法将用户的姓名尾加到成员变量person。
(5) 如果inputName.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用 (6) 通过Java表达式输出person和count的值。 ( 7)写出jsp文件的源代码、运行结果(给出截图)。 代码: InputName.jsp <%@ page language=\ contentType=\charset=ISO-8859-1\ pageEncoding=\%>
程序结果界面。 inputName.jsp
图1 输入姓名
people.jsp(效果如图2所示)
图2 显示姓名和人数
实验二 JSP指令标签的使用
1.实验目的
(1)掌握怎样在JSP页面中使用page指令设置contentType的值;使用include指令在JSP页面中静态插入一个文件的内容。
(2)掌握怎样在JSP页面中使用include标记加载文件;使用动态标签forward实现页面的转向。
2.实验内容
(1)编写三个JSP 页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事本”编写
一个txt文件hello.txt。hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“
”分隔,如下所示: hello.txt
package apple void back public
private throw class hello welcome
(2)编写四个JSP 页面:one.jsp 、two.jsp、three.jsp和error.jsp。one.jsp 、two.jsp和three.jsp页面都含有一个一个导航条,以便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件:head.txt。导航条文件head.txt的内容如下所示: head.txt
<%@ page contentType=\
3.实验要求
(1)first.jsp的具体要求
first.jsp使用page指令设置contentType属性的值是text/plain,使用include指令静态插入hello.txt文件。
(2)second.jsp的具体要求
second.jsp 使用 page 指令设置 contentType 属性的值是 application/vnd.ms-powerpoint,使用include指令静态插入hello.txt文件。 (3)third.jsp的具体要求
third.jsp 使用 page 指令设置 contentType 属性的值是 application/msword,使用include指令静态插入hello.txt文件。 (4)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页面
(5) two.jsp、three.jsp和error.jsp的具体要求
要求two.jsp和three.jsp能输出one.jsp传递过来的值,并显示一幅图像,该图像的宽和高刚好是one.jsp页面传递过来的值。error页面能显示有关错误信息,和一幅图像。 (6)写出jsp文件的源代码、运行结果(截图)。 代码:
First.jsp <%@ page language=\ contentType=\ pageEncoding=\%> <%@include file =\ %> <%@include file = \ %> Second.jsp <%@ page language=\ contentType=\ pageEncoding=\%> <%@include file =\ %> <%@include file = \ %> Third.jsp <%@ page language=\ contentType=\ pageEncoding=\%> <%@include file =\ %> <%@include file = \ %>
One.jsp <%@ page language=https://www.bwwdw.com/plus/\ contentType=https://www.bwwdw.com/plus/\ pageEncoding=https://www.bwwdw.com/plus/\%> <%@include file =https://www.bwwdw.com/plus/\ %>
error.jsp <%@ page language=https://www.bwwdw.com/plus/\ contentType=https://www.bwwdw.com/plus/\ pageEncoding=https://www.bwwdw.com/plus/\%> <%@include file =https://www.bwwdw.com/plus/\ %>
程序界面:
实验三 JSP内建对象的使用
1.实验目的
(1)掌握怎样在JSP中使用内置对象request,以及使用response对象动态响应用户的请求。
(2)掌握怎样使用session对象存储和用户有关的数据。
2.实验内容
(1)编写两个JSP页面input.jsp和result.jsp。input.jsp页面提交一个数字给result.jsp页面,result.jsp页面使用response对象做出动态响应。
(2)编写四个JSP 页面letter.jsp、guess.jsp、small.jsp、large.jsp,实现猜字母游戏。
3. 实验要求
(1)input.jsp的具体要求
input.jsp提供表单,用户在表单中输入一个数字,提交给result.jsp页面。 (2)result.jsp的具体要求
result.jsp页面首先使用request对象获得input.jsp页面提交的数字,然后根据数字的大小作出不同的响应。如果数字小与0,response对象的调用setContentType(String s)方法将contentType属性的值设置为text/plain,同时输出数字的平方;如果数字大于等于0并且小于100,response对象的调用setContentType(String s)方法将contentType属性的值设置为application/msword,同时输出数字的立方;如果数字大于等于100,response对象调用setStatus(int n)方法将状态行的内容设置为404;如果用户在input.jsp页面输入了非数字,response对象调用sendRedirect(URL url)方法将用户的重定向到input.jsp页面。 (3)letter.jsp的具体要求
将要猜测的a到z之间的字母放到一个数组中,随机分配给用户。该页面同时负责将这个字母存在用户的session对象中。该页面提供表单,用户可以使用该表单输入自己的猜测,并提交给guess.jsp页面。 (4)guess.jsp的具体要求
判断letter.jsp提交的猜测是否和用户的session对象中存放的那个字母相同,如果相同就输出用户session对象中的数据(猜测的次数及猜测的字母);如果不相同就将用户重定向到large.jsp或small.jsp。
(5)写出jsp文件的源代码、运行结果(截图)。
代码(1): Input.jsp <%@ page language=https://www.bwwdw.com/plus/\ contentType=https://www.bwwdw.com/plus/\ pageEncoding=https://www.bwwdw.com/plus/\%>
Result.jsp <%@ page language=https://www.bwwdw.com/plus/\ contentType=https://www.bwwdw.com/plus/\ pageEncoding=https://www.bwwdw.com/plus/\%> <% String str=request.getParameter(https://www.bwwdw.com/plus/\); try{ } %> double number=Double.parseDouble(str); if(number<0){ } response.sendRedirect(https://www.bwwdw.com/plus/\); response.setContentType(https://www.bwwdw.com/plus/\); out.println(number+https://www.bwwdw.com/plus/\的平方:https://www.bwwdw.com/plus/\+(number*number)); response.setContentType(https://www.bwwdw.com/plus/\); out.println(number+https://www.bwwdw.com/plus/\的立方:https://www.bwwdw.com/plus/\+(number*number*number)); response.setStatus(404); }else if(number>=0&&number<100){ }else{ }catch(Exception e){
程序界面(1):
代码(2): Letter.jsp <%@ page language=\ contentType=\ pageEncoding=\%>
返回重玩 <%} else { char zm[]=str.toCharArray(); char guesszm=zm[0]; char realzm=c.charValue(); if(guesszm==realzm) { int n=((Integer)session.getAttribute(\)).intValue(); n=n+1; session.setAttribute(\,new Integer(n)); int Character out.println(\恭喜你,猜对了\); out.println(\您共猜对了\+count+\次\); out.println(\这个字母就是\+num);%>
请重新获得一个字母<%} int n=((Integer)session.getAttribute(\)).intValue(); n=n+1; session.setAttribute(\,new Integer(n)); response.sendRedirect(\); Character c=(Character)session.getAttribute(\); count=((Integer)session.getAttribute(\)).intValue(); num=((Character)session.getAttribute(\)).charValue(); else if(guesszm>realzm) { }else if(guesszm
Small.jsp <%@ page language=\ contentType=\ pageEncoding=\%>
所采的字母比实际小,请再猜: Large.jsp <%@ page language=\ contentType=\ pageEncoding=\%>
所猜的字母比实际大,请再猜:
程序界面:
实验四
1.实验目的
(1)掌握使用有效范围是request的bean显示汽车的基本信息。 (2)掌握使用有效范围是session的bean显示汽车的基本信息。 (3)对不同有效范围的bean进行对比。
2.实验内容
(1)编写一个JSP页面:inputAndShow.jsp和一个名字为car的Javabean,其中car由Car.class类负责创建。
(2)编写两个JSP页面:inputCar.jsp和showCar.jsp。bean可使用(1)中的Car.java。
3.实验要求
(1) inputAndShow.jsp的具体要求
inputAndShow.jsp页面提供一个表单。其中表单允许用户输入汽车的牌号、名称和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为car的bean,并使用表单提交的数据设置car的有关属性的值,然后显示car的各个属性的值。 (2) Car.java的具体要求
编写的Car.java应当有刻画汽车号码、名称和生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修改这些属性的值。Car.java的包名是practice。 (3) inputCar.jsp的具体要求
inputCar.jsp页面提供一个表单。其中表单允许用户输入汽车的牌号、名称和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为car的bean,并使用表单提交的数据设置car的有关属性的值。要求在inputCar.jsp提供一个超链接,以便用户单击这个超链接访问showCar.jsp页面。。 (4) showCar.jsp的具体要求
showCar.jsp调用名字为car的bean,并显示该bean的各个属性的值。 (5) 写出jsp文件的源代码、运行结果(截图),以及JSP实验课的心得体会。
代码: InputAndShow.Jsp
InputCar.jsp
JSP页面运行结果:
inputAndShow.jsp
图14 使用有效范围是request的bean
inputCar.jsp(效果如图15所示)
图15 设置有效范围是session的bean
showCar.jsp(效果如图16所示)
图16 显示有效范围是session的bean
实验五 JSP的文件操作
一、实验目的
1.继续掌握JavaBean的概念。 2.掌握JSP的输入和输出流。 3.掌握在页面中读写文件中的数据。 4.掌握如何进行文件操作。
二、实验内容
1.课余时间且在实验课之前,认真复习教材上关于文件操作的例题。
2.实现一系统,具体要求:该系统能够实现文件上传功能和下载功能,显示文件列表和读取文件内容功能。
3.要求在webapps目录下新建一个Web服务目录:test3。除特别要求外,本章实验中涉及的JSP页面均保存在test3中。
upfile.jsp实现文件上传功能,顶部为三个页面的超链接。页面效果如下图所示:
listdir.jsp实现列出服务目录所有文件和子目录的功能,并且能够显示指定文件内容功能。页面效果下图所示:
downfile.jsp实现文件下载功能,示例中为直接指定能够下载的文件,学生应该进行改进,实现能够根据服务目录的变化而变化的效果。页面效果如下图所示:
三、参考代码:代码仅供参考,学生可按照实验要求,参考本代码编写代码,并在代码中给出详细的注释。
upfile.jsp
<%@ page contentType=\<%@ page import=\
选择要上传的文件:
<% upFile.setRequest(request);
upFile.setSession(session); %>
<%@ page contentType=\eadFile\