第一篇:JSP内置对象实验报告
JSP程序设计实验报告
(三)院系:计算机科学与工程学院
【实验题目】
JSP内置对象
【实验目的】
1、了解JSP中4个内置对象request、reponse、session、pagecontext的基本概念。
2、理解JSP内置对象的常用方法的功能。
3、掌握JSP内置对象的应用。
【实验内容】
1、request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2、response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
3、session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
4、pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者。
5、练习(自己完成)
【实验代码】
实验1 request对象使用
<%@ page language=“java” import=“java.util.*” pageEncoding=“GBK”%> <%
%>
+ request.getServerName()+ “:” + request.getServerPort()+ path + “/”;
请求方式:<%=request.getMethod()%>
请求的资源:<%=request.getRequestURI()%>
请求用的协议:<%=request.getProtocol()%>
请求的文件名:<%=request.getServletPath()%>
请求的服务器的IP:<%=request.getServerName()%>
请求服务器的端口:<%=request.getServerPort()%>
客户端IP地址:<%=request.getRemoteAddr()%>
客户端主机名:<%=request.getRemoteHost()%>
表单提交来的值:<%=request.getParameter(”qwe“)%>
<%
%> String str = ”“;if(request.getParameter(”qwe“)!= null){ Enumeration enumt = request.getParameterNames();while(enumt.hasMoreElements()){ str = enumt.nextElement().toString();out.println(str + ”:“ + request.getParameter(str)+ ”
");} }
第二篇:JSP内置对象讲解教案
第5章 JSP内置对象
在JSP中预先定义好了一些常用的对象,在Web应用中可以直接使用这些对象。内置对象的应用大大简化了Web开发工作。
5.1 JSP内置对象概述
因为java是区分大小写的,所以在JSP中对象名要注意字母的大小写。
JSP内置对象有9个 request对象 response对象 out对象 session对象 application对象 exception对象 page对象
pageContext对象 config对象
5.2 request对象
request对象用于接收客户端通过HTTP协议传送给服务器端的数据。
而response对象主要用来向客户发送信息,它包含了Web服务器对客户的响应信息。
request和response对象是JSP中很重要的两个内置对象,是实现客户端和服务器交互的基础。
5.2.1 request对象的功能
request对象用来接收客户端提交的请求
例如:接收用户提交的表单信息
infoReceive.jsp代码
<% String str1=request.getParameter(“RdName”);%> <% String str2=request.getParameter(“PhName”);%> 您输入的信息为:
姓名: <%=str1%>
电话: <%=str2%>
5.2.4 request对象常用方法
在客户访问页面时,向服务器的JSP引擎提交一个HTTP请求,该请求包含一个请求行、主机头和上载信息。例如:
◦ POST /chapt5/infoReceive.jsp HTTP/1.1
//请求行 ◦ Host localhost
//头,host是头名字
request对象也提供了一些其他方法,用来获得客户传来信息的其他部分。 request对象常用方法:
1.getProtocol():获取客户端向服务器端传送数据所使用的协议名称和版本号 2.getServerName():获得服务器的名字
3.getServerPort():获得服务器所使用的端口号。4.getRemoteAddr():获得客户端的IP地址。
5.getRemoteHost():获得客户端主机的名字,若失败,则返回客户端的IP地址。6.getMethod():返回客户端向服务器端传送数据的方法,一般方法为get或post。
7.getCookies():返回客户端的cookie对象,结果是一个cookie数组。如果客户端没有发送cookie,则返回空值。
8.getSession(boolean create):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对象关联,那么当create变量为true,则创建一个HttpSession对象并返回;反之,返回null。9.getHeader(String name):获得http协议定义的传送文件头信息。
10.getAttribute(String name):返回name指定的属性值,若不存在指定的属性,就返回null。
11.getAttributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。12.getHeaderNames():返回所有request header的名字,结果集是一个Enumeration(枚举)类的实例。
13.getHeaders(String name):返回指定名字的request header的所有值,结果集是一个Enumeration(枚举)类的实例。
14.getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回null。通常是表单中的参数.15.getParameterNames():返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。
16.getParameterValues(String name):以字符串数组的形式返回指定参数所有值。
17.getQueryString():返回查询字符串,该字符串由客户端以GET方法向服务器端传送。18.getRequestURI():获得发出请求字符串的客户端地址
19.getServletPath():获得客户端所请求的脚本文件的文件路径。
20.setAttribute(String name,Java.lang.Object o):设定名字为name的request参数值,该值由Object类型的o指定。
21.getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。22.getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,那么返回-1。23.getInputStream():以二进制的形式将客户端的请求以一个ServletInputStream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。
24.isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false。25.getDateHeader():返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。26.getInitHeader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。27.getContextPath():返回环境路径.对于JSP来说,一般是当前Web应用程序的根目录。
28.isRequestedSessionIdValid():返回一个指示客户端请求发送Session ID是否仍然有效的布尔值。
29.isRequestedSessionIdFromCookie():返回一个指示客户端请求发送Session ID是否存在于Cookie中的布尔值。
30.isRequestedSessionIdFromURL():返回一个指示客户端请求发送Session ID是否存在于URL中的布尔值。
5.2.5 request对象常用方法应用案例
【例5.2】 使用request对象的常用方法,获取客户端提交信息的不同部分。
本例中的用户输入页面infoInput2.html只需要把例5.1的文件infoInput.html的form的action属性值改为infoReceive2.jsp即可。infoReceive2.jsp主要代码
<%
out.println(“姓名文本框提交信息:” + request.getParameter(“RdName”)+ “
”);out.println(“电话文本框提交信息:” + request.getParameter(“PhName”)+ “
”);out.println(“客户端协议名和版本号:” + request.getProtocol()+ “
”);out.println(“客户机名:” + request.getRemoteHost()+ “
”);out.println(“客户机的IP地址:” + request.getRemoteAddr()+ “
”);out.println(“客户提交信息的长度:” + request.getContentLength()+ “
”);
%> out.println(“---------
”);
out.println(“getContextPath:” +request.getContextPath()+ “
”);out.println(“requestURI=” + request.getRequestURI()+ “
”);out.println(“requestURL=” + request.getRequestURL()+ “
”);out.println(“servletPath=” + request.getServletPath()+ “
”);// getServletPath 不建议使用 因为当servlet映射成/*时 无法获得
String uri = request.getRequestURI();String servletPath = uri.substring(request.getContextPath().length());out.println(“servletPath=” + servletPath + “
”);总结:
request.getRequestURI()与request.getRequestURL()与request.getServletPath()区别
a)getRequestURI()获得的信息:/day6/servlet/RequestServlet b)getRequestURL()获得的信息:http://localhost/day6/servlet/RequestServlet c)getServletPath()获得的信息: servlet/RequestServlet
getServletPath 不建议使用
因为当servlet映射成/*时 无法获得。
d)request.getContextPath()获得的信息: /day6
那如何获取serverpath String uri = request.getRequestURI();
// /day06aaa/servlet/RequestDemo1
String servletPath = uri.substring(request.getContextPath().length());
System.out.println(“servletPath=” + servletPath);5.3 response对象
◦ ◦ 把服务器端的数据以HTTP的格式发送到客户端浏览器 它的功能和request对象的功能相反
request对象用于得到用户提交的信息 而response对象是向用户发送信息
两者结合起来完成动态页面的交互功能。
5.3.1 response对象的功能
response对象提供的几种输出结果的主要方法:
◦ sendRedirect():页面重定向方法。◦ setStatus():设置状态行方法。
◦ setContentType():设置文本类型方法。
5.3.2 sendRedirect()方法
将客户端浏览器转向新的页面,页面中重定向语句后的代码不再被执行。 它可以根据用户的不同要求转向不同的页面。 例如:防盗链。(第3章 http协议中讲解)
【例5-3】response对象的使用。
用户在登录界面输入用户名和密码,提交后验证登录者输入的用户名和密码是否正确,根据判断结果转向不同的页面。
◦ 其中userLogin.html为用户输入界面
◦ userReceive.jsp为接收用户输入信息并判断输入是否正确页面
◦ loginCorrect.html和loginError.html分别为登录成功界面和登录失败界面。
userLogin.html页面主要代码:
userReceive.jsp页面源代码:<% String Name = request.getParameter(“RdName”);String Passwd = request.getParameter(“RdPasswd”);if(Name.equals(“Mary”)&& Passwd.equals(“123456”))
response.sendRedirect(“loginCorrect.html”);else
response.sendRedirect(“loginError.html”);%>
需要注意的是,在实际的Web开发中,用户的信息保存在数据库中,判断用户登录时所输入的用户名和密码是否正确需要连接到数据库,和数据库中的数据进行匹配。此处为了演示sendRedirect方法的使用,简单的和常量进行比较。
5.3.3 response的状态行
1.状态行的作用
当页面出现错误时,服务器会自动响应,将相应的出错信息返回客户端。状态行包含3位数字的状态代码,代表错误的性质和处理方法。共有5类状态码,如下:
1XX(1开头的3位数):主要是实验性质的。例如101表示服务器正在升级协议。
2XX:表示请求成功。如200表示请求成功。
3XX:表示在请求满足之前应采取的进一步行动。如302请求重定向; 305表示请求必须通过代理来访问。
4XX:浏览器不能满足请求时,返回的状态码。如404表示请求的页面不存在。
5XX:服务器执行出现错误时,返回的状态码。如500表示服务器内部发生错误,不能服务。
2.setStatus()方法
程序中可以使用response对象的setStatus()方法设置状态码。在一般情况下,不需要在程序中设置状态码。页面出现问题时,服务器会自动响应,并发送相应的状态码提示用户。
使用response.setStatus(int n)方法设置状态行
◦ 例如response.setStatus(501)取得错误信息为501的出错信息,返回该出错页面到客户端。◦ 如果状态代码为出错码,页面中 response.setStatus()后面的语句将不被执行。
[例5-4]状态行的应用
本例包含4个文件 : StatueCode.html
显示不同的状态行
href=“statusCode200.jsp”>200请求成功信息
第三篇:JSP实验报告
中南民族大学管理学院
学生实验报告
课程名称: JSP程序设计 年
级: 2010 专
业: 姓 名: 学 号: 指导教师:
实验地点: 管理学院综合实验室
学年至 学第 学期
第一章 JSP简介
实验 Tomcat服务器的安装与配置
一、实验目的
本实验的目的是让学生掌握怎样设置Web服务目录、怎样访问Web服务目录下的JSP页面、怎样修改Tomcat服务器的端口号。
二、实验要求
1、将下载的apache-tomcat-6.0.13.zip解压到硬盘某个分区,比如D。
2、在硬盘分区D下新建一个目录,名字为student,见stuent设置为Web服务目录,并为该Web服务目录指定名字为good的虚拟目录。
3、修改端口号为5678.在server.xml文件中找到修改端口号的部分,将端口号修改为5678.4、启动Tomcat服务器。
5、用文本编辑器编写一个简单的JSP页面biao.jsp,并保存到Web服务目录student中。
6、用浏览器访问Web服务目录student中的jsp页面biao.jsp。
三、实验内容
1、Tomcat安装成功并运行
2、编码实现乘法表 3.代码
四、实验结果
biao.jsp页面
五、实验结果分析
1、默认的端口号为8080,若修改,在conf目录下的server.xml文件中修改端口号。
2、设置虚拟目录。在conf目录下的server.xml中前加入:
3、Tomcat服务器必须保持启动。第二章 JSP页面与JSP标记 实验1 JSP页面的基本结构
一、实验目的
本实验的目的是让学生掌握怎样在JSP页面中使用成员变量,怎样使用Java程序片、Java表达式。
二、实验要求
本实验将用户输入的单词按字典顺序。需要编写两个JSP页面,名字分别为inputWord.jsp和showDictionary.jsp。
1、inputWord.jsp的具体要求 该页面有一个表单,用户通过将该表单输入若干个单词,并提交给showDictionary.jsp页面。
2、showDictionary.jsp的具体要求
该页面负责排序单词,并将排序的全部单词显示给用户。
(1)该JSP页面有个名字为dictionary、类型是TreeSet成员变量。
(2)该JSP页面有public void addWord(String s)方法,该方法将参数s指定的字符串添加到成员变量dictionary中。
(3)该JSP页面在程序片中操作dictionary,即显示全部的单词。
三、实验内容
1)inputWord.jsp页面有一个表单,用户通过该表单输入若干个单词,并提交给showDictionary.jsp页面。
2)showDictionary.jsp负责排序单词,并将排序的全部单词显示给用户。3)代码
四、实验结果
inputWord.jsp页面
showDictionary.jsp页面
五、实验结果分析
1、jsp页面由html标记、jsp标记、成员变了和方法的声明、java程序片和java表达式组成。
2、jsp页面中的成员变量是被所有用户共享的变量。Java程序片可以操作成员变了,任何一个用户对jsp页面成员变量操作的结果,都会影响到其他用户。
实验2 JSP指令标记
一、实验目的
本实验的目的是让学生掌握怎样在JSP页面中使用include指令标记在JSP页面中静态插入一个文件内容。
二、实验要求
该实验要求使用include指令标记使得每个页面都包含有导航条。在进行实验之前将名字是leader.txt的文件保存到本实验所使用的web服务目录中。实验要求编写3个JSP页面,具体要求如下。first.jsp的具体要求
first.jsp使用include指令静态插入leader.txt.second.jsp的具体要求
second.jsp使用include指令静态插入leader.txt.third.jsp的具体要求
third.jsp使用include指令静态插入leader.txt.三、实验内容
leader.txt编写3个JSP页面。
1)frist.jsp使用include指令静态插入leader.txt文本文件。2)second.jsp使用include指令静态插入leader.txt文件。3)third.jsp使用include指令静态插入leader.txt。3)代码 1
2.3.4.4)
四、实验结果
frist.jsp页面
second.jsp页面
third.jsp页面
五、实验结果分析
1、include指令标记是在jsp页面出现该指令的位置处,静态的插入一个文 件。被插入的文件必须是可访问和可使用的。Include指令标记是在编译 阶段就处理所需要的文件,被处理的文件在逻辑和语法上依赖与当前jsp 页面,优点是执行速度快。
实验3 JSP动作标记
一、实验目的
本实验的目的是让学生掌握怎样在JSP页面中使用include标记动态加载文件,使用forward实现页面的转向。
二、实验要求
编写3个JSP页面:giveFileName.jsp、readFile.jsp和error.jsp。
1、giveFileName.jsp的具体要求
要求giveFileName.jsp页面使用include动作标记动态加载readFile.jsp页面,并将一个文件的名字比如ok.txt传递给被加载的readFile.jsp页面。
2、readFile.jsp的具体要求
要求readFile.jsp负责根据giveFileName.jsp页面传递过来的文件名字进行文件的读取操作,如果该文件不存在就使用
Forward动作标记将用户转向error.jsp页面。
3、error.jsp的具体要求 负责显示错误信息。
三、实验内容
1)giveFileName.jsp页面使用include动作标记动态加载readFtle.jsp页面,并将一个文件的名字ok.txt传递给被加载的readFtle.jsp页面。
2)readFile.jsp页面负责根据giveFileName.jsp页面传递过来的文件名字进行文件的读取操作,如果该文件不存在就使用forward动作标记将用户转向error.jsp。
3)error.jsp负责显示错误信息。4)代码
四、实验结果
giveFileName.jsp页面
error.jsp页面
五、实验结果分析
1、include动作标记是在jsp页面运行时才处理加载的文件,被加载的文件在逻辑和语 法上独立与当前jsp页面,include指令标记可以使用param子标记向被加载的jsp 文件传递信息。第三章 Tag文件与Tag标记
实验1 JSP页面的基本结构
一、实验目的
本实验的目的是让学生灵活掌握在Tag标记中使用标记体。
二、实验要求
编写一个JSP页面giveMess.jsp和一个Tag文件handleMess.tag。JSP页面通过调用Tag文件在表格中的单元格显示文本,该JSP页面通过使用标记体将要显示的文件传递给被调用的Tag文件。
三、实验内容
1、giveMess.jsp页面使用带标记体的Tag标记来调用Tag文件,其中标记体是一行文本,如下所示:
2、handelMess.tag使用
3、分别写出giveMess.jsp和handelMess.tag的代码。4.代码
四、实验结果
giveMess.jsp页面
五、实验结果分析
1、tag文件中可以有html标记符、特殊的指令标记、成员变了和方法、java程序片和java表达式。
2、jsp页面使用tag标记动态执行一个tag文件。
3、当jsp页面调用一个tag文件时可能希望动态地向该tag文件传递信息,那么就可以使用带有标记体的tag标记来执行一个tag文件。
实验2 使用attribute指令
一、实验目的
本实验的目的是让学生灵活掌握在Tag标记中使用attribute指令。
二、实验要求
编写一个ShowCalendar.tag文件,该Tag文件负责显示日历。编写一个JSP页面giveYearMonth.jsp,该JSP页面使用Tag标记调用ShowCalendar.tag文件,并且向ShowCalendar.tag文件传递年份和月份。
三、实验内容
1、giveYearMonth.jsp通过tag标记调用ShowCalendar.tag文件,并且向ShowCalendar.tag文件传递年份和月份。
2、ShowCalendar.tag文件根据jsp页面传递过来的年份和月份显示日历。该文件能对jsp页面传递过来的数据进行判断,比如,如果jsp页面传递过来的数据不是数值型数据,tag文件负责显示错误信息。4.代码
四、实验结果
giveYearMonth.jsp页面
五、实验结果分析
1、一个tag文件中通过使用attribute指令,使得jsp页面在调用tag文件时,可以 向该tag文件中的对象传递一个引用。tag文件中使用attribute指令:
<%@ attribute name=“对象名字” required=“true”|“false” type=“对象的类型”%>
实验3 使用variable指令
一、实验目的
本实验的目的是让学生灵活掌握在Tag标记中使用variable指令。
二、实验要求
编写一个Tag文件GetWord.tag,负责分解出字符串中的全部单词,并将分解出的全部单词返还给调用该Tag文件的JSP页面。编写一个JSP页面giveSoring.jsp,该页面负责向Tag文件传递一个由英文单词构成的字符串,并负责显示Tag文件返回的全部单词。
三、实验内容
1、giveSoring.jsp通过tag标记调用GetWord.tag,并传递一个由英文单词构成的字符串,显示tag文件返回的全部单词。
2、GetWord.tag使用attibute指令得到jsp页面传递过来的字符串,并用vatiable指令返回全部的单词。
3.代码
四、实验结果 giveSoring.jsp页面
五、实验结果分析
1、Tag文件可以使用variable指令把一个对象返回给调用它的jsp页面
Tag文件使用variable指令给出返回的对象的名字、类型和有效范围:
<%@ variable name-given=“对象名字” variable-class=“对象的类型” scope=“有效范围”%>
第4章 JSP内置对象 实验1 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页面。
4)代码
四、实验结果
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”)
实验2 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。
3)代码
四、实验结果
1、在输入要求的范围以内:
inputRadius.jsp页面
drawCircle.jsp页面
2、当输入的数据不符合要求的结果显示:
inputRadius.jsp页面
drawCircle.jsp页面
五、实验结果分析:
1、response的作用就是把服务器端的数据以HTTP的格式发送到客户端浏览器
2、与request相比,它的功能和request对象的功能相反。request对象用于得到用户提交的信息而response对象是向用户发送信息,两者结合起来完成动态页面的交互功能。
3、response对象的主要方法:
sendRedirect():页面重定向方法 setStatus():设置状态行方法
setContentType():设置文本类型方法
实验3 session对象
一、实验目的
本实验的目的是让学生掌握怎样使用session对象存储和用户有关的数据。
二、实验要求
使用session对象模拟购物车。编写两个JSP页面choiceBook.jsp和orderForm.jsp。
三、实验内容 1)用户在choiceBook.jsp页面通过超链接将自己要购买的图书信息传递到orderForm.jsp页面。
2)orderForm页面将用户购买的图书信息存储到session对象中,然后生成一个图书订单并显示给用户。
3)代码
四、实验结果:
choiceBook.jsp页面
orderForm页面
五、实验结果分析:
1、session的作用就是记住客户的连接信息,可以使用会话对象(session)。session对象记录了每个客户与服务器的连接信息
2、判断session是否失效有三种情况1)、客户是否关闭浏览器。2)、是否到达最大的发呆时间3)、是否调用validate()函数
3、session对象常用方法:
setAttribute(String name,java.lang.Object value):设定指定名字的属性值,并且把它存储在session对象中。getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null
第5章 JSP中的文件操作(实验)实验1 使用文件字节流读写文件
1、相关知识点。
Fileunputstream流以字节(byte)为单位顺序地读取文件,只要不关闭流,每次调用read的方法就书讯地读取源中其余的内容,直接原到尾末或流被关闭。
Fileunputstream流以字节(byte)为单位顺序地写文件,只要不关闭流,每次调用writer方法就顺序地向输出流写入内容。2.实验目的。
本实验的目的是掌握使用文件输入,输出字节流读写文件。3.实验要求。
1)giveContent.jsp页面提供一个表单,要求该表单提供一个text文件输入框、select下拉列表和一个TextArea文本区,用户可以在text输入框中输入文件的名字、在select下拉列表选择一个目录、通过TextArea输入多行文本。
2)writeContent.jsp页面首先获得giveContent.jsp页面提交的文件所在目录、名字以及TextArea文本区中的内容传递给WriteTag.tag。
3)lookContent.jsp页面提供一个表单,该表单提供两个text文本输入框,用户可以在这两个text文本框中输入目录和文件名字。单击表单的“提交”按钮将text中输入的文件目录以及文件名字提交给readContent.jsp。
4)readContent.jsp页面首先获得lookContent.jsp页面提交的文件目录、名字,然后使用Tag标记调用Tag文件ReadTag.tag,并将文件所在目录、名字传递给ReadTag.tag。
5)writeTag.tag文件使用attribute指令获得writeCintent.jsp页面传递过来的文件目录 文件名字和文件内容,然后使用文件字节输入流将文件内容写入到文件中,给文件所在目录就是writeCintent.jsp页面传递过来的文家目录,名字就是writeCintent.jsp页面传递过来的文家名字。
6)ReadTag。Tag的具体要求
Read.Tag文件使用attribute指令获得readContent.jsp页面传递过来的文件目录 文件名字和文件内容,然后使用文件字节输入流读取文件,并负责现实所读取的内容。
7)代码
4、实验结果:
giveContent.jsp页面
writeContent.jsp页面
lookContent.jsp页面
readContent.jsp页面
5、实验结果分析
1、把输入流的指向称做源,程序从指向源的输入流中读取源中的数据。而输出流的指向是数据要去的一个目的地,程序通过向输出流中写入数据把信息传递到目的地。所有字节输入流类都是InputStream(输入流)抽象类的子类,而所有字节输出流都是OutputStream(输出流)抽象类的子类。
2、int read(): 输入流调用该方法从源中读取单个字节的数据,该方法返 回字节值,如果未读出字节就返回-1。
3、void write(int n): 输出流调用该方法向输出流写入单个字节
实验2 使用文件字节流加密文件
1、相关知识点
fileinputstream流和filereader流都是顺序的读取文件,只要不关闭,每次调用read方法就顺序的读取源中其余的内容,只到源的末尾或流被关闭;二者的区别是fileinputstream流以字节为单位读取文件,filereader流以字符为单位读取文件
Fileoutstream流和filewtiter流顺序地写文件,只要不关闭流,每次调用writer方法的就顺序的向输出流写入内容,只到流被关闭。二者额区别是fileoutstream流以字节为单位些文件,filewtiter流以字符为单位文件
2、实验目的
本实验目的是掌握使用文件字符输入输出读写文件
3、实验要求
编写3个jsp页面inputcontent,jsp write,jsp read.jsp ,两个tag文件write.Tag和read.Tag 1).inputcontent,jsp的具体要求
inputcontent,jsp页面提供一个表单,要求该表单提供textarea的输入界面 用户可以通过textarea的输入界面多行文本提供交给write。Jsp界面 2.)write,jsp 的具体要求
write,jsp页面调用一个tag文件write,jsp将inputcontent,jsp 页面提交的文本信息加密后写入文件save.txt中。
3)read.jsp 的具体要求
read.jsp 页面提供一个表单,该表单提供两个单选按钮,名字分别是读取加密的文件和读取解密的文件 该页面选中的单选按钮的值提交给本页面如果该页面提交的值是单选按钮读取加密的文件的值 该页面调用tag文件read.tag读取文件save.txt如果该页面提交的值是单选按钮读取解密文件的值,该页面负责显示read.tag文件返回的有关信息 4)write.Tag的具体要求
write.Tag文件使用attribute指令获得write.jsp页面传递过来的文本信息,并使用文本文件输出流其写入到文件save.txt 5)read.Tag的具体要求 read.Tag文件使用文件输入流读取文件save.txt,并根据read.jsp的要求决定是否进行 6)代码
四、实验结果:
7)inputContent.jsp页面
8)write.jsp页面
9)read.jsp页面
10)
五、实验结果分析:
11)
1、FileInputStream流和FileReader流都是顺序的读取文件,只要不关闭流。每次调用read方法就顺利的读取源中其余的内容,直到源的末尾或流被关闭。两者的区别是Fileinputstream流以字节为单位读取文件,FileReader流以字符为单位读取文件。
12)
2、FileOutStream流和FileReader流都是顺序的写文件,只要不关闭文件,每次调用write方法就顺序的向输出流写入内容,直到流被关闭。二者的区别是FileOutStream流以字节为单位读取文件,FileReader流以字符为单位读取文件。
实验3 使用数据流读写Java数据
1、实验目的
本实验的目的是掌握使用数据流读写Java数据。
2、实验要求
编写两个JSP页面writeData.jsp和readData.jsp。
3、实验内容
1)writeData.jsp页面使用Java程序片将一个int型数据、一个long型数据、一个char型数据、一个String型数据和一个double型数据写入到名字为javaData.data的文件中。
2)readData.jsp页面读取javaData.data文件中的数据并显示出来。3)代码
4、实验结果
writeData.jsp页面
readData.jsp页面
5、实验结果分析
1、Java使用流(stream)来执行输入输出(I/O)的功能,流是一种数据的源头和目的之 间的通信途径.用于读入数据称为输入流(input stream), 用于写出数据称为输出流(output stream).2、当使用流时需要使用java.io包,因此在涉及数据流操作的程序中都要先导入 java.io包:import java.io.*;
第六章 JSP中使用数据库
要求在webapps目录下新建一个web服务目录chapter6。除特别要求外,本章实验所涉及的jsp页面均保存在chapter6中;tag文件保存在chapter6web-inttags目录中。
实验中用到的数据库为book,其中的表为bookform表。在进行实验之前首先完成下列任务:
1、使用microsoft access 2003 创建一个数据库book(book.mdb)。
2、在数据库book中创建名名字为bookform的表,表的字段及属性如图6-1所示。
3、讲数据库book设置为名字为information的数据源。
实验1 查询记录
1、相关知识点
本实验使用jdbc-odbc桥接器方式和数据库建立连接,查询数据库中表的记录的步骤是:(1)与数据库information建立连接;
Connection con=DriverManager.get Connection(‘jdbc:odbc: information’);(2)返回Statement对象;
Statement sql=con.createStatement();(3)向数据库发送关于查询记录的sql语句。返回查询结果,即Resultset对象
2、实验目的
本实验的目的是掌握使用jdbc查询数据库中表的记录。
3、实验要求
编写一个jsp页面inputMess.jsp。编写一个tag文件FindBook.tag。1)inputMess.jsp的具体要求
inputMess.jsp页面提供表单。表单允许用户输入要查询的内容,以及选择针对该内容的查询条件,比如,输入“实用”,那么可以指定该内容是书名的一部分或作者姓名等。inputMess.jsp页面查询条件条件提交给当前页面,当前页面调用FindBook.tag文件完成查询操作。2)FindBook.tag的具体要求
FindBook.tag文件的使用attribute指令获得inputMess.jsp页面传过来的字段的查询条件,然后与数据源information建立连接、根据得到的查询条件查询bookForm表。FindBook.tag文件使用variable指令的将查询结果返回给inputMess.jsp页面。
4、jsp页面的效果示例
inputMess.jsp的效果如图6-2所示。
5、参考代码
可以按照实验要求,参考本代码编写代码。1)jsp页面参考代码、实验结果
inputMess.jsp
7、实验结果分析:
1、DriverManager类:用语跟踪可用的JDBC驱动程序并产生数据库连接。
2、Connection接口:用于取得数据库信息、生成数据库语句,并管理数据库事务。
3、Statement接口:用于在基层连接上运行SQL语句,并且生成一个结果集。
4、查询结果一般封装在ResultSet对象中。ResultSet实际上是一张数据表。ResultSet对象有多种方法用来从查询结果中读取数据
5、在tag文件通过使用 attribute指令,就可以让调用该tag文件的jsp页面向该tag文件传递在jsp页面输入的查询内容的数据。tag文件通过使用variable属性可以从tag文件向jap页面返回符合查询条件的内容的数据
实验2 更新记录
1、相关知识点
本实验使用jdbc-odbc桥接器方式和数据库建立连接,查询数据库中表的记录的步骤如下:(1)与数据库information建立连接;
Connection con=DriverManager.get Connection(‘jdbc:odbc: information’);(2)返回Statement对象;
Statement sql=con.createStatement();(3)向数据库发送关于更新记录的sql语句: int m=sql.executeUpdate(更新记录的sql语句);更新成功m的值为1,否则为0。
2、实验目的
本实验的目的是掌握使用jdbc更新数据库中表的记录。
3、实验要求
编写一个jsp页面updateRecord.jsp和两个tag文件UpdateRecord.tag、GetRecord.tag。updateRecord.jsp负责调用GetRecord.tag文件,显示GetRecord.tag返回待更新的记录的有关字段的值;updateRecord.jsp调用UpdateRecord.tag文件,并显示UpdateRecord.tag返回的有关更新记录是否成功的信息。1)updateRecord.jsp的具体要求 updateRecord.jsp页面提供一个表单,该表单允许用户输入某种图书的isbn号以及针对该isbn号的图书的更新信息;该页面负责将图书的isbn号传递给GetRecord.tag,将图书的更新信息传递给UpdateRecord.tag。2)GetRecord.tag的具体要求
GetRecord.tag文件使用attribute指令获得updateRecord.jsp页面传递过来的图书的isbn号,并显示和该图书对应的记录。3)UpdateRecord.tag的具体要求
UpdateRecord.tag文件使用attribute指令获得updateRecord.jsp页面传递过来的图书更新信息,然后更新数据库中bookForm表中的记录,并返回更新成功的消息给updateRecord.jsp页面。
4、jsp页面效果示例
updateRecord.jsp的效果如图6-3所示。
5、参考代码
6、实验结果
updateRecord.jsp
7、实验结果分析
1、在数据库的连接于实验一是一样的,只是调用的方法不一样,在查询时Statement对象调用方法public int executeUpdate(String sql)
2、在jsp页面输入图书的ISBN号,GetRecord.tag文件使用attribute指令获得updateRecord.jsp页面传递过来的图书的ISBN号,在数据库里进行查找,并显示和该图书对应的记录
3、UpdateRecord.tag文件使用attribute指令获得updateRecord.jsp页面传递过来的图书更新信息即图书价钱的变化从39到25.5,然后更新数据库中bookForm表中的记录,并返回更新是否成功的消息给updateRecord.jsp页面。这样,如果在查询该图书,那么显示的信息就是更新后的。
实验3 删除记录
1、相关知识点
本实验使用jdbc-odbc桥接器方式和数据库建立连接,那么删除数据库中表的记录的步骤如下:
(1)与数据库information建立连接;
Connection con=DriverManager.get Connection(‘jdbc:odbc: information’);(2)返回Statement对象;
Statement sql=con.createStatement();(3)向数据库发送关于删除记录的sql语句: int m=sql.executeUpdate(更新记录的sql语句);删除成功m的值为1,否则为0。
2、实验目的
本实验的目的是掌握使用jdbc删除数据库中表的记录。
3、实验要求
编写一个jsp页面inputDeletedISBN.jsp和一个tag文件DelRecord.jsp.1)inputDeletedISBN.jsp的具体要求
inputDeletedISBN.jsp页面提供一个表单,该表单允许用户图书的ISBN提交到本页面。2)DelRecord.jsp的具体要求
inputDeletedISBN.jsp页面首先获得本页面提交的图书的ISBN,然后使用tag标记调用DelRecord.jsp删除数据库中表的相应的记录。
4、jsp页面效果示例
inputDeletedISBN.jsp的效果如图6-4所示:
5、参考代码
可以按照实验要求,参考本代码编写代码。
6、实验结果
inputDeletedISBN.jsp
7、实验结果分析:
1、在连接方法和所用的方法都与更新语句相同,因为executeUpdate()方法执行SQL的INSERT,UPDATE或DELETE语句,返回int值,给出受查询影响的行数
2、将图书的ISBN输入到件jsp页面,然后由tag文件进行相应的处理
3、将满足条件的图书直接删除,并将结果显示在本页面。
第七章 jsp与javabean 要求在webapps目录下新建一个web服务目录chapter7。除特别要求外,本章实验所涉及的jsp页面均保存在chapter7中。实验涉及的Javabean的包名均为bean.date,因此,要求在chapter7下建立子目录webclassesbeandate,Javabean的字节码文件保存在该子目录中。
实验1 有效范围为request的bean 1.相关知识点
JSP页面使用useBean标记调用一个有效范围是request的bean:
本实验的目的是掌握使用有效范围是request的bean的存储信息。3.实验要求
编写一个JSP页面inputAndShow.JSP和一个名字为computer的javabean,其中computer由pc.class类负责创建。
1)inputAndShow.jsp的具体要求
inputAndShow.jsp页面提供一个表单。其中表单允许用户输入计算机的品牌 型号和生产日期,该表单将用户输入的信息提交给当前调用名字为compter的bean,并使用表单提交的数据设置computer的有关属性的值,然后显示compter的各个属性值。2)pc.java的具体要求
编写的pc.java应当有描述计算机品牌 型号 生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修复这些属性的值。Pc.java中试用package语句,起的包名是bean.data。将pc.java编译后的字节码文件pc.class保存到chapter7WEB-INFclassesbeandata的目录中、4.JSP页面效果示列
inputAndShow.jsp的效果如图:
5、参考代码
可以按照实验要求,参考本代码编写代码。1)jsp页面参考代码、实验结果
inputAndShow.jsp页面
7、实验结果分析
1、JavaBean是一种可复用,跨平台的组件。
2、如果request的bean那么request是用户请求访问的当前组件、以及和当前web组件共享同一用户请求的web组件。范围是指在一个jsp网页发出请求到另一个jsp网页之间,随后这个属性就失效,设定request的范围时可利用request对象中的setattribute()和getattribute(),简单的讲就是客户端的一次请求。
实验2 有效范围为session的bean 1.相关知识点
JSP页面使用useBean标记调用一个有效范围是session的bean:
本实验目的是让学生掌握使用有效范围是session的bean显示计算机的信息,3.实验要求
本实验2要求和实验1类似,但是和实验1不同的是,要求编写两个jsp页面input.jsp和show,jsp。编写一个名字为compter的javabean,其中compter由pc.class类负责创建。
1)input.jsp的具体要求
input.jsp页面提供一个表单。其中表单允许用户输入计算机的品牌 型号和生产日期,该表单将用户输入的信息提交给当前调用名字为compter的bean,并使用表单提交的数据设置computer的有关属性的值。要求在input.jsp提供一个超链接以便用户单机这个超链接访问show.jsp页面。13)show.jsp的具体要求
Show.jsp调用名字为computer的bean,并显示bean的各个属性的值。3)pc.java的具体要求
编写的pc.java应当有描述计算机品牌 型号 生产日期的属性,并提供相应的getXxx和setXxx方法,来获取和修复这些属性的值。Pc.java中试用package语句,起的包名是bean.data。将pc.java编译后的字节码文件pc.class保存到chapter7WEB-INFclassesbeandata的目录中。4.JSP页面效果示列 Input.jsp的效果如图
show.jsp的效果如图
6、实验结果
input.jsp页面
Show.jsp页面
7、实验结果分析
1、session就是JavaBean对象被创建后,一直存在于当前回话中,在同一会话中,共享同一JavaBean
2、session基于会话的,当用户网页关闭的话,session就清空了或是到达了session最大的发呆时间。
实验3 有效范围application的bean 1.相关知识点
JSP页面使用useBean标记调用一个有效范围是application的bean:
本实验目的是掌握使用有效范围是application的bean制作一个简单留言板。3.实验要求
要求编写两个jsp页面inputMess.jsp和show.jsp。编写一个名字为board的javabean,其中board由MessBoard.class类负责创建.。第6章 inputMess.jsp的具体要求
inputMess.jsp页面提供一个表单。其中表单允许用户输入留言者的姓名 留言标题和留言内容,该表单将用户输入的信息提交的当前页面,当前页面调用名字为board的bean,并使用表单提交的数据设置board的有关属性的值。要求在inputMess.jsp中提供一个连接,已便用户单击这个超链接是访问show.jsp页面 第7章 show.jsp的具体要求
Show.jsp调用名字为board的bean,并显示该bean的allMessage属性的值 3)MessBoard.class的具体要求
编写MessBoard.java应当有刻画留言者的姓名.留言标题 和留言内容属性,并刻画全部留言信息的属性allMessage。将MessBoard.java保存到chapter7WEB-INFclassesbeandata的目录中。4.JSP页面效果示列
inputMess.jsp的效果如图 show.jsp的效果如图
5、参考代码
6、实验结果
inputMess.jsp页面
show.jsp 页面
7、实验结果分析
1、如果在scope指定范围内,该JavaBean已存在,则
3、Application:在服务器运行期间有效,当运行Tomcat时,就会生成Application,而且所有用户在访问相同服务目录项的文件时,application对象都是相同的,当关闭Tomcat时,Application对象失效。
第四篇:JSP实验报告(范文模版)
(1)创建名称为“UserInfo.java”类文件,该文件的主要代码如下:
package com;
public class UserInfo { private String username=“";
private String password=”“;
private String repassword=”“;
private String realname=”“;
private String sex=”“;
private String age=”“;
private String born=”“;
private String address=”“;
private String introduce=”“;
public String getUsername(){
return username;
} public void setUsername(String username){
this.username = username;
} public String getPassword(){
return password;
} public void setPassword(String password){
this.password = password;
} public String getRepassword(){
return repassword;
} public void setRepassword(String repassword){
this.repassword = repassword;
} public String getRealname(){
return realname;
} public void setRealname(String realname){
this.realname = realname;
} public String getSex(){
return sex;
} public void setSex(String sex){
this.sex = sex;
} public String getAge(){
return age;
} public void setAge(String age){
this.age = age;
} public String getBorn(){
return born;
} public void setBorn(String born){
this.born = born;
} public String getAddress(){
return address;
} public void setAddress(String address){
this.address = address;
} public String getIntroduce(){
return introduce;
} public void setIntroduce(String introduce){
this.introduce = introduce;
}
}
(2)用户注册页面的代码如下:
<%@ page contentType=”text/html;charset=gb2312“ language=”java“
im port=”java.sql.*“ errorPage=”“%>
第五篇:JSP编程实验报告
JSP编程实验报告
学生姓名:学生班级:学生学号:指导教师:实验n(n-实验顺序号):实验名称
一、实验目的二、实验内容及步骤
三、源代码
四、运行界面
五、收获和体会