软件应用开发实验指导书打印精简版V1130Word文件下载.docx
《软件应用开发实验指导书打印精简版V1130Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件应用开发实验指导书打印精简版V1130Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。
![软件应用开发实验指导书打印精简版V1130Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/10/fb32d6b7-1b9a-4dad-a6fd-9e006c0b8c16/fb32d6b7-1b9a-4dad-a6fd-9e006c0b8c161.gif)
三、实验原理与内容4
实验三JSP的文件操作6
一、实验目的6
二、实验工具6
三、实验原理与内容6
实验四JSP中的数据库编程8
一、实验目的8
二、实验工具8
三、实验原理与内容8
实验五JavaServlet12
一、实验目的12
二、实验工具12
三、实验原理与内容12
实验六综合程序设计(提高型)13
一、实验目的13
二、实验工具13
三、实验原理与内容13
实验一JSP页面与JSP标记
一、实验目的
1.掌握JDK的安装配置
2.熟悉Tomcat的配置
3.测试JSP的运行环境
4.掌握JSP的页面的基本结构
5.掌握JSP的指令标记和动作标记
二、实验工具
1.JDK1.6,可以从SUN公司的网站免费下载
2.编辑工具:
editPlus
3.Tomcat服务器,也可以从网上免费下载
三、实验原理与内容
1.实验课之前,下载最新版本的JDK和Tomcat,并在自备微机上安装配置。
2.实践内容:
根据实验任务1~任务3要求,编写程序,调试运行。
3.该实验共有3个任务。
要求在webapps目录下新建一个Web服务目录:
test1。
除特别要求外,本章实验中涉及的JSP页面均保存在test1中。
任务1JSP页面的基本结构
1.相关知识点
一个JSP页面可由普通的HTML标记、JSP标记、成员变量和方法的声明、Java程序片以及Java表达式组成。
JSP引擎把JSP页面中的HTML标记交给用户的浏览器执行显示;
JSP引擎负责处理JSP标记、变量和方法声明;
JSP引擎负责运行Java程序片、计算Java表达式,并将需要显示的结果发送给用户的浏览器。
JSP页面中的成员变量是被所有用户共享的变量。
Java程序片可以操作成员变量,任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
如果多个用户访问一个JSP页面,那么该页面中的Java程序片就会被执行多次,分别运行在不同的线程中,即运行在不同的时间片内。
运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。
2.实验要求
编写两个JSP页面,分别为inputName.jsp和people.jsp。
(1)inputName.jsp的具体要求
该页面有一个表单,用户通过该表单输入自己的姓名并提交给people.jsp页面。
(2)people.jsp的具体要求
1.该页面有名字为person、类型是StringBuffer以及名字是count、类型为int的成员变量。
2.该页面有publicvoidjudge()方法。
该方法负责创建person对象,当count的值是0时,judge()方法创建person对象。
3.该页面有publicvoidaddPerson(Stringp)方法,该方法将参数p指定的字符串添加到成员变量person末尾,同时将count作自增运算。
4.该页面在程序片中获取inputName.jsp页面提交的姓名,然后调用judge()创建person对象、调用addPerson方法将用户的姓名添加到成员变量person末尾。
5.如果inputName.jsp页面没有提交姓名,或姓名含有的字符个数大于10,就使用<
jsp:
forwardpage="
要转向的页面"
/>
标记将用户转到inputName.jsp页面。
6.通过Java表达式输出person和count的值。
任务2JSP指令标记
page指令<
%@page属性1="
属性1的值"
属性2="
属性2的值"
…%>
用来定义整个JSP页面的一些属性和这些属性的值。
比较常用的两个属性是contentType和import。
page指令只能为contentType指定一个值,但可以为import属性指定多个值。
include指令标记<
%@includefile="
文件的URL"
%>
的作用是在JSP页面出现该指令的位置处,静态插入一个文件。
被插入的文件必须是可访问和可使用的,如果该文件和当前JSP页面在同一Web服务目录中,那么“文件的URL”就是文件的名字;
如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。
include指令标记在编译阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖于当前JSP页面,其优点是页面的执行速度快。
2.实验目的
本实验的目的是让学生掌握怎样在JSP页面中使用page指令设置contentType的值;
使用include指令在JSP页面中静态插入一个文件的内容。
3.实验要求
编写三个JSP页面:
first.jsp、second.jsp和third.jsp。
另外,要求用“记事本”编写一个TXT文件hello.txt。
hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“<
BR>
”分隔,如下所示:
hello.txt
packageapplevoidbackpublic
<
privatethrowclasshellowelcome
(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文件。
任务3JSP动作标记
include动作标记<
includepage="
文件的URL"
是在JSP页面运行时才处理加载的文件,被加载的文件在逻辑和语法上独立于当前JSP页面。
include动作标记可以使用param子标记向被加载的JSP文件传递信息。
forward动作标记<
/>
的作用是:
从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。
forward标记可以使用param动作标记作为子标记,以便向要转向的JSP页面传送信息。
本实验的目的是让学生掌握怎样在JSP页面中使用include标记动态加载文件;
使用forward实现页面的转向。
编写四个JSP页面:
one.jsp、two.jsp、three.jsp和error.jsp。
one.jsp、two.jsp和three.jsp页面都含有一个导航条,以便让用户方便地单击超链接访问这三个页面,要求这三个页面通过使用include动作标记动态加载导航条文件head.txt。
导航条文件head.txt的内容如下所示:
head.txt
%@pagecontentType="
text/html;
charset=GB2312"
<
tablecellSpacing="
1"
cellPadding="
width="
60%"
align="
center"
border="
0"
>
trvalign="
bottom"
>
td>
Ahref="
one.jsp"
fontsize=3>
one.jsp页面<
/font>
/A>
/td>
two.jsp"
two.jsp页面<
three.jsp"
three.jsp页面<
/tr>
/Font>
/table>
(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页面能显示有关的错误信息和一幅图像。
实验二JSP与JavaBean
(本实验写实验报告)
1.理解JavaBean的作用
2.能够定义JavaBean
3.能在jsp页面中使用JavaBean
1.实验课之前,认真复习教材上关于第五章中的例题,例如教材上5.4.1三角形bean。
2.设计一个定书程序,实现:
可以进行定书功能并查看订单信息。
要求:
⑴要求在webapps目录下新建一个Web服务目录:
test2。
除特别要求外,本章实验中涉及的JSP页面均保存在test2中。
⑵设计三个JSP页面和一个Java类,其中三个JSP页面的效果如下:
index.jsp页面效果
图2-1输入书的相关信息
saveinfo.jsp页面效果
图2-2提交后的页面
viewbook.jsp页面效果:
图2-3书的详细信息
实验三JSP的文件操作
1.继续掌握JavaBean的概念。
2.掌握JSP的输入和输出流。
3.掌握在页面中读写文件中的数据。
4.掌握如何进行文件操作。
1.课余时间且在实验课之前,认真复习教材上关于文件操作的例题。
2.实现一系统,具体要求:
该系统能够实现文件上传功能和下载功能,显示文件列表和读取文件内容功能。
3.要求在webapps目录下新建一个Web服务目录:
test3。
除特别要求外,本章实验中涉及的JSP页面均保存在test3中。
upfile.jsp实现文件上传功能,顶部为三个页面的超链接。
页面效果如图3-1所示:
图3-1文件上传页面
listdir.jsp实现列出服务目录所有文件和子目录的功能,并且能够显示指定文件内容功能。
页面效果如图3-2所示:
图3-2显示文件列表以及文件内容页面
downfile.jsp实现文件下载功能,示例中为直接指定能够下载的文件,学生应该进行改进,实现能够根据服务目录的变化而变化的效果。
页面效果如图3-3所示:
图3-3文件下载页面
实验四JSP中的数据库编程
1.掌握在JSP中使用JDBC实现数据库的连接、查询、修改。
2.掌握在JSP中实现数据库表的分页查询。
3.进一步学习使用JSP+JavaBeans的设计模式,将有关数据库操作的方法指派给JavaBean来实现。
1、建立实验所用的数据库,打开MicrosoftAccess,出现建立数据库的对话框,选“空Access数据库”,如图12-1所示,点击【确定】后,出现保存数据库的对话框,将数据库以“mydata.mdb”名字保存在“D:
\”根目录下。
图4-1新建数据库图4-2选择数据库名并保存
图4-3图4-4新建表student的各个字段
在出现的对话框中双击【使用设计器创建表】,即可在此数据库中添加表格,如图12-3所示。
若建立一个student表,该表有ID、学号、姓名、操作系统、微机原理、数据结构六个字段,则在图12-4所示的对话框中以此输入六个字段的名称(用中文缩写的形式),注意各个字段的数据类型。
选择id字段为主键(工具栏的小钥匙)。
关闭“表设计器窗口”,提示保存表的名字,如图12-5所示,输入“student”并按【确定】,此时已经向数据库中添加了一个空的student表格。
在主界面双击“student”,即可为该表添加数据,如图12-6所示
图4-5
图4-6表student的数据
2、不采用bean实现数据库的连接、查询和修改。
(1)创建与指定数据库的连接
JSP中连接数据库有两种方式:
JDBC-ODBC桥接方式和纯Java驱动程序方式。
若使用JDBC-ODBC桥接方式与数据库建立连接,需要3个步骤:
●创建ODBC数据源(以Access数据库为例)
图4-7添加或删除ODBC数据源图4-8为ODBC数据源选择驱动
①在windows中添加ODBC数据源
选择【控制面板】【管理工具】【ODBC数据源】,出现如图12-7所以界面,选择“系统DSN”,点【添加…】,出现如图12-8所示的界面,伪数据源选择驱动。
②为数据源选择驱动
如果待连接的数据库是SQLServer数据库,则选择“SQLServer”选项,点击【完成】即可。
若待连接的数据库是Access数据库,则选择“DriverdoMicrosoftAccess”选项,点击【完成】。
③指定数据源的名称和所在位置
在图12-9对话框中,填写数据源的名称为mydata,点击【选择…】可以为这个数据源指定数据库,如图12-10所示。
点选驱动器,找到D:
盘,左侧备选框中即可出现mydata.mdb,点击mydata.mdb,即可指向刚刚建立的数据库mydata。
数据库选择完毕,一直按【确定】退出ODBC数据源的创建对话框,到此,一个ODBC的数据源成功建立。
图4-9图4-10
●建立JDBC-ODBC桥接器
现在,我们已经有了ODBC数据源:
mydata,这个数据源就是一个数据库:
mydata.mdb(建立数据源时,数据源的名字和数据库的名字可以不同),里面有个表格student。
为了连接这个数据库,首先要建立一个JDBC-ODBC的桥接器:
try{Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}
catch(ClassNotFoundExceptione){}
●和ODBC数据源指定的数据库建立连接
try{Connectioncon=DriveManager.getConnection(“jdbc:
odbc:
mydata”,””,””);
catch(SQLExceptione){}
●建立查询结果集ResultSet
和数据库连接之后,就可以进行执行查询、修改等操作,而对数据库的操作都是SQL语言为基础的,所以,在执行特定的“查询/修改”操作前,必须使用Statement声明一个SQL语句对象
try{Statementsql=con.createStatement();
【注意】:
若想查询结果分页显示,必须要求查询生成的结果集是可滚动的结果集,所以在Statementsql=……声明的这个语句中,要改成
try{Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
有了SQL语句对象后,这个对象就可以调用相应的方法,实现对数据库表的查询和修改,并将结果存放在一个ResultSet类声明的对象中。
ResultSetrs=sql.executeQuery(“SELECT*FROMstudent”)
或ResultSetrs=sql.executeQuery(“SELECTxh,xm,wjylFROMstudent”)
若要其他不同功能的查询,只需要改变executeQuery方法中的SQL语句就可以。
ResultSet对象的主要方法有:
booleanrs.next()//将游标点移动到结果集的下一行
voidrs.close()//关闭结果集
Xxxrs.getXxx(StringcolumnName)//得到结果集某一列的值
Xxxrs.getXxx(intcolumnIndex)//得到结果集某一列的值
滚动结果集ResultSet对象的主要方法还有:
publicvoidrs.last()//将游标点移动到结果集的最后一行
publicbooleanrs.previous()//将游标点移动到结果集的上一行
publicbooleanrs.isLast()//检测游标是否在结果集最后一行
publicbooleanrs.isFirst()//检测游标是否在结果集第一行
publicintrs.getRow()//得到游标当前行号,从1开始
publicbooleanrs.absolute(introws)//将游标点移动到结果集的指定行
publicbooleanrs.isBeforeFirst()//检测游标是否在结果集第一行之前
publicbooleanrs.isAfterLast()//检测游标是否在结果集最后一行之后
publicvoidrs.beforeFirst()//将游标点移动到结果集的第一行之前
publicvoidrs.afterLast()//将游标点移动到结果集的最后一行之后
若使用纯Java驱动程序方式与数据库建立连接,需要2个步骤:
●加载纯Java驱动程序(无需创建ODBC数据源)
●和指定的数据库建立连接
(2)参数查询
exa4_5.jsp输入查询条件,可以按姓名查询成绩,也可以按分数段查询成绩。
若按照姓名查询,提交给byname.jsp;
若按照分数段查询,请求提交给byscore.jsp
代码略。
(3)更新记录
下例使用executeUpdate()方法更新记录中的字段值。
exa4_8.jsp输入学生姓名和各科成绩,并将请求提交给newResult.jsp,该页面实现更新记录,运行下列程序,观察结果。
(4)分页显示
下例中showByPage.jsp访问student表,分页显示表中内容,观察运行结果。
四、实验思考题
1、修改实验内容(3),使得能按照指定的姓名删除该学生的记录。
2、修改实验内容3的ShowRecordByPage.java和showBypage.jsp的源代码,在分页显示的基础上,加入“首页”、“末页”的链接。
实验五JavaServlet
(1)、掌握怎样编写和使用Servlet。
(2)、掌握编写和配置和Servlet有关的web.xml文件。
(3)、掌握在Servlet中使用session的方法;
熟悉把用户对某JSP页面或Servlet的请求转发给另一个JSP页面或Servlet的方法。
(1)、有些Web应用可能需要JSP+JavaBean+Servlet来完成,需要服务器再创建一些Servlet对象,配合JSP页面来完成整个Web应用程序的工作。
本小节实验将介绍怎样编写创建Servlet对象的类,怎样在Tomcat服务器上保存编译后的字节码、编写部署文件,怎样请求Tomcat服务器创建一个Servlet对象。
①复制需要的jar文件:
为了编译Servlet源文件,需要HttpServlet、HttpServletRequest等类,JDK内置包中并不包含这些类文件,用户需要将Tomcat服务器中common\lib目录下的servlet-api.jar文件复制到JDK安装目录的\jre\lib\ext子目录中。
②添加Servlet类的字节码文件:
使用Jcreator或Netbeans中编写如下的Servlet类:
Computer.java,保存在D:
盘根目录下,编译该类,形成star\moon\Computer.class,将此文件夹保存到Tomcat当前Web目录(如:
ROOT目录)下的\WEB-INF\classes子目录中,重新启动Tomcat。
③编写部署文件:
在Web当前目录\WEB-INF\classes子目录中,用记事本打开web.xml文件,在“<
!
--JSPCservletmappingsstart-->
”标记下,添加如下几行并保存:
④运行Servlet:
编写givenumber.jsp文件,该文件通过表单向Servlet提交一个正实数,Servlet负责计算这个数的平方根并返回给客户。
(2)、当用户请求一个Servlet时,Sevlet会调用doPost()或doGet()方法响应用户的请求。
doPost()或doGet()方法的两个参数类型都是HttpServletRequest和HttpServletResponse,而且由服务器负责实例化,