一、 实验目的
1、搭建Web编程环境,能正确安装配置java运行环境、WEB服务器
2、 掌握正确运行jsp文件的方法
二、 实验内容
1、 安装并配置java运行环境JDK和JRE 2. 安装Web服务器tomcat, 配置Tomcat服务器
三、 实验步骤
1、 JDK、JRE安装结果:
2、 Classpath和path、Java_Home设置
path为java的bin目录,Classpath为 jre中rt.jar目录,Java_Home为及java安装目录
3、 安装并配置Tomcat
安装Tomcat服务器后并启动之。即:
启动Tomcat服务器目录中bin\startup.bat文件。
在“开始菜单--运行”中输入http://localhost:8080/ 点击确定。
4、 第一个JSP文件
在Tomcat服务器目录webapps\ROOT下: 1) 新建一个文本文件,改名为first.jsp. 2) 右击此文件,选择打开方式为记事本。 3)编辑内容如下:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY BGCOLOR=cyan>
<FONT Size=4>
<P>JSP页面的测试
<% int x=100,y=500,z; z=x+y; %>
<P> x+y的和为: <%= z %>
</FONT></BODY>
</HTML>
4)在地址栏或者运行菜单输入http://localhost:8080/first.jsp回车,然后观察运行结果
五、 结果分析与总结
通过该实验,进一步掌握了JSP运行环境等基本知识点,对Myeclipse软件,Tomcat服务器等重点掌握的内容有了进一步的了解。
一、 实验目的
本实验的目的是让学生掌握在JSP页面中使用page指令设置contentType的值;使用include指令在JSP页面中静态插入一个文件的内容。
二、 要求
编写三个JSP 页面:first.jsp 、second.jsp和third.jsp。另外,要求用“记事本”编写一个txt文件hello.txt。hello.txt的每行有若干个英文单词,单词之间用空格分隔,每行之间用“<BR>”分隔,如下所示:
Hello123.txt
package apple void back public <BR>
private throw class hello welcome
1. first.jsp的具体要求
first.jsp使用page指令设置contentType属性的值是"text/html",使用include指令静态插入hello.txt文件。
2. second.jsp的具体要求
second.sp使用page指令设置contentType属性的值是"application/vnd.ms-powerpoint",
3. third.jsp的具体要求
third.jsp使用page指令设置contentType属性的值是"application/msword", 使用include指令静态插入hello.txt文件。
4.JSP页面效果示例
first.jsp(效果如图2-3)
五、 结果分析与总结
通过该实验,进一步掌握了JSP与使用Page指令的基本知识点,对include指零的使用及注意事项和应该重点掌握的内容有了进一步的了解。
一、实验目的
本实验的目的是让学生掌握在JSP页面中使用include标记动态加载文件,使用forward实现页面的转向。
二、实验要求
编写三个JSP页面:giveFileName.jsp、readFile.jsp和error.jsp。
三、实验内容
1)giveFileName.jsp页面使用include动作标记动态加载readFtle.jsp页面,并将一个文件的名字ok.txt传递给被加载的readFtle.jsp页面。
2)readFile.jsp页面负责根据giveFileName.jsp页面传递过来的文件名字进行文件的读取操作,如果该文件不存在就使用forward动作标记将用户转向error.jsp。
3)error.jsp负责显示错误信息。
四、实验结果
实验所用代码如下:
giveFileName.jsp
<%@ page contentType="text/html;charset=GB2312"%> <HTML>
<BODY BGCOLOR=yellow>
读取名字是ok.txt的文件:
<jsp:include page="readFile.jsp"> <jsp:param name="file" value="D:/Program Files/tomcat/webapps/chapter2/ok.txt"/> </jsp:include> </BODY> </HTML>
readFile.jsp
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.io.*"%> <HTML>
<BODY BGCOLOR=cyan>
<P><FONT Size=2 color=bule> This is readFile.jsp. </FONT> <FONT Size=4> <%
String s= request.getParameter("file"); File f=new File(s); if(f.exists()) {
out.println("<BR>文件"+s+"的内容:"); FileReader in=new FileReader(f);
BufferedReader bIn=new BufferedReader(in); String line=null;
while((line=bIn.readLine())!=null) {
out.println("<BR>"+line);
} } else { %>
<jsp:forward page="error.jsp">
<jsp:param name="mess" value="File Not Found"/> </jsp:forward> <% } %>
</FONT> </BODY>
</HTML> error.jsp
<%@ page contentType="text/html;charset=GB2312"%> <HTML>
<BODY BGCOLOR=yellow>
<P><FONT Size=5 color=red> This is error.jsp. </FONT> <FONT Size=2> <%
String s= request.getParameter("mess"); out.println("<BR>本页面得到的信息:"+s);
%>
</FONT>
</BODY>
</HTML
五、实验结果分析
include动作标记是在jsp页面运行时才处理加载的文件,被加载的文件在逻辑和语 法上独立与当前jsp页面,include指令标记可以使用param子标记向被加载的jsp 文件传递信息
一、实验目的
1、了解JSP中9个内置对象request、reponse、 out的基本概念。
二、实验原理
在JSP页面的转换阶段,JSP引擎在_jspService()方法中声明并初始化了隐含对象,它们主要是为了方便在JSP页面对这些对象的访问。这些隐含对象包括: request、response、out、等。
三、实验内容
1. request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
参考源代码:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body bgcolor="#FFFFF0">
<form action="" method="post">
<input type="text" name="qwe">
<input type="submit" value="提交">
</form>
请求方式:<%=request.getMethod()%><br>
请求的资源:<%=request.getRequestURI()%><br>
请求用的协议:<%=request.getProtocol()%><br>
请求的文件名:<%=request.getServletPath()%><br>
请求的服务器的IP:<%=request.getServerName()%><br>
请求服务器的端口:<%=request.getServerPort()%><br>
客户端IP地址:<%=request.getRemoteAddr()%><br>
客户端主机名:<%=request.getRemoteHost()%><br>
表单提交来的值:<%=request.getParameter("qwe")%><br>
<%
String str = "";
if (request.getParameter("qwe") != null) {
Enumeration enumt = request.getParameterNames();
while (enumt.hasMoreElements()) {
str = enumt.nextElement().toString();
out.println(str + ":"+request.getParameter(str)+ "<br>");
}
}
%>
</body>
</html>
2、response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
本例演示如何进行客户端重定向。
参考源代码:
index.jsp代码如下:(mypage.jsp代码略,请同学们自己编写)
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>你想重定向去哪个网站?</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
String address = request.getParameter("where");
if (address != null) {
if (address.equals("sohu"))
response.sendRedirect("http://www.sohu.com");
else if (address.equals("avceit"))
response.sendRedirect("http://www.avceit.cn");
else if (address.equals("mypage"))
response.sendRedirect("mypage.jsp");
}
%>
<b>Please select:</b>
<br>
<form action="" method="GET">
<select name="where">
<option value="sohu" selected>
go to sohu
<option value="avceit">
go to avceit
<option value="mypage">
go to mypage
</select>
<input type="submit" value="go">
</form>
</body>
</html>
4.out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象
参考源代码:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%
for (int i = 0; i < 2000; i++)
out.println(i + "{" + out.getRemaining() + "}");
%><br>
缓存大小:<%=out.getBufferSize()%><br>
剩余缓存大小:<%=out.getRemaining()%><br>
自动刷新:<%=out.isAutoFlush()%><br>
<%--out.clearBuffer();--%>
<%--out.clear();--%>
</body>
</html>
五、 结果分析与总结
通过该实验,进一步掌握了JSP与JSP内置对象的基本知识点,对request、response、session、application的作用范围、注意事项和应该重点掌握的内容有了进一步的了解。
一、 实验目的
本实验的目的是让学生掌握使用有效范围是request的bean显示汽车的基本信息、是sessiont的bean显示汽车的基本信息和是application的bean制作一个简单的留言板。
二、 实验仪器或设备
学院提供公共机房,1台/学生微型计算机 JSP相关的软件
三、 总体设计(设计原理、设计方案及流程等)
(1) 设计原理:利用JSP与JavaBean(包括session、request、
application等)显示汽车的相应基本信息
(2) 设计方案:首先,要编写一个JSP的文挡,然后再编写Java,两者
结合,方可显示需要的相应信息
(3) 流程:首先,必须熟悉课本中的内容
然后,自学Java的两个章节以及上学期的Java
最后,根据所学知识做本次实验
四、 实验步骤(包括主要步骤、代码分析等)
(1) 首先规划一下,编写JSP与Java所需要的资源 (2) 编写JSP与Java,使用基本语法
inputAndShow.jsp的代码如下:
<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head>
<title>javaBean实例2</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor=yellow ><font size=5 color=blue>
<jsp:useBean id="car" class="tom.jiafei.Car"
scope="request"/>
<form action="" name="" method="post">
汽车牌号:<input type="text" name="number">
<br>汽车名称:<input type="text" name="name"> <br>汽车生产日期:<input type="text" name="birthday"
<input type="submit" value=提交 name="submit"> </form>
<jsp:setProperty name="car" property="*" /> <table border=3 width=50%> <tr>
<td>汽车牌号</td><td>汽车名称</td><td>汽车生产日期</td>
</tr> <tr>
<td><jsp:getProperty name="car" property="number"/></td>
<td><jsp:getProperty name="car" property="name"/></td>
<td><jsp:getProperty name="car" property="birthday"/></td>
</tr>
</table> </font> </body> </html>
input.jsp的代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title> </head>
<body bgcolor=cyan> <jsp:useBean id="car" class="tom.jiafei.Car" scope="session"/>
<form action="" method="post">
汽车牌号:<input type="text" name="number">
<br>汽车名称:<input type="text" name="name">
<br>汽车生产日期:<input type="text" name="birthday">
<input type="submit" value=提交 name="submit"> </form>
<p><a href="show.jsp">查看</a>
<jsp:setProperty name="car" property="*" /> </body> </html>
show.jsp的代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>wode</title> </head>
<body bgcolor=yellow> <jsp:useBean id="car" class="tom.jiafei.Car" scope="session"/><br><br><br><br><br>
<table border=3 width="50%" align="center">
<font align=center color=green>
<tr>
<td>汽车牌号</td><td>汽车名称</td><td>汽车生产日期</td>
</tr> <tr>
<td><jsp:getProperty name="car" property="number"/></td>
<td><jsp:getProperty name="car" property="name"/></td>
<td><jsp:getProperty name="car" property="birthday"/></td>
</tr> </font> </table> </body> </html>
inputMess.jsp的代码如下:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>wede</title> </head>
<body bgcolor="yellow"> <font size=5>
<jsp:useBean id="board" class="tom.jiafei.MessBoard" scope="application"/>
<form action="" method="post">
姓名:<input type="text" name="name"><br>
<br> 留言标题:<input type="text" name="tap"></br> <br> 留言内容:
<br><textArea name="text" rows=5 cols=50></textArea> <br>
<input type="submit" value=提交 name="submit"> </form>
<jsp:setProperty name="board" property="*" />
<p><a href="showtwo.jsp">查看留言表</a></p></font>
</body> </html>
showtwo.jsp的代码如下:
<html> <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>wede</title> </head>
<body bgcolor="yellow"> <font size=5>
<jsp:useBean id="board" class="tom.jiafei.MessBoard" scope="application"/>
<br><br>
<table border=2 width="60%" align="center" > <tr>
<th>姓名</th><th>标题</th><th>留言内容</th><th>留言时间</th>
</tr> <tr>
<td><jsp:getProperty name="board" property="name"/></td>
<td><jsp:getProperty name="board" property="tap"/></td>
<td><textArea name="text" rows=7 cols=50><jsp:getProperty name="board" property="text"/></textArea></td>
<td><%=new java.util.Date()%></td> </tr> </table>
<a href="inputMess.jsp">我要留言</a> </font> </body> </html>
五、 结果分析与总结
通过该实验,进一步掌握了JSP与JavaBean(实验)的基本知识点,对request、session、application的作用范围、注意事项和应该重点掌握的内容有了进一步的了解。
一、实验目的
1.掌握使用jdbc连接数据库的方法
2.熟悉使用DatabaseMetaData对象的作用及常用方法的使用
二、实验环境
1.PC系列微机,Windows XP。
2.myeclipse
3.mysql数据库
三、实验步骤
1.使用mysql的jdbc驱动程序连接mysql数据库
2.掌握使用jdbc连接数据库的方法
3. DatabaseMetaData对象获取数据的库的基本信息
四、实验代码
(1)首先连接 Test 数据库,使用 getMetaData 方法获得数据库的元数据,然后声明一些必要的 变量。代码如下所示:
try{
//载入 Oracle 驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e){System.out.println("Driver loading error!");} Connection con;
try{
//连接 Test 数据库
String url="jdbc:oracle:thin:@localhost:1521:Test";
con=DriverManager.getConnection(url,"system","admin"); }catch(SQLException e){ e.printStackTrace();}
//获得数据库元数据
DatabaseMetaData dbmd=con.getMetaData(); String DBInfo;
int n;
boolean b;
(2)下面的代码使用包含数据库源数据的 dbmd 对象获得数据库的基本信息。 //获得驱动程序的名称
DBInfo=dbmd.getDriverName();
System.out.println("驱动程序的名称是: "+DBInfo); System.out.println(" ") ;
//获得驱动程序版本号
DBInfo=dbmd.getDriverVersion();
System.out.println("驱动程序版本号:"+DBInfo); System.out.println(" ");
//获得连接数据库的 URL
DBInfo=dbmd.getURL();
System.out.println("连接数据库的 URL: "+DBInfo); System.out.println(" ") ;
//获得数据库名称
DBInfo=dbmd.getDatabaseProductName();
System.out.println("数据库名称是:"+DBInfo); System.out.println(" ");
//获得数据库版本号
DBInfo=dbmd.getDatabaseProductVersion();
System.out.println("此数据库版本号:"+DBInfo); System.out.println(" ");
//获得用户名
DBInfo=dbmd.getUserName();
System.out.println("用户名: "+DBInfo); System.out.println(" ") ;
//获得 SQL 的关键字
DBInfo=dbmd.getSQLKeywords();
System.out.println("SQL 中的关键词是:"+DBInfo); System.out.println(" ");
//获得系统函数
DBInfo=dbmd.getSystemFunctions();
System.out.println("数据库的系统函数有:"+DBInfo); System.out.println(" ");
//获得日期函数
DBInfo=dbmd.getTimeDateFunctions();
System.out.println("数据库的时间与日期函数有:"+DBInfo); System.out.println(" ");
//获得数学函数
DBInfo=dbmd.getNumericFunctions();
System.out.println("数据库的数学函数有:"+DBInfo); System.out.println(" ");
//获得字符串函数
DBInfo=dbmd.getStringFunctions();
System.out.println("数据库的字符串函数有:"+DBInfo); System.out.println(" ");
//获得表名的最大长度
n=dbmd.getMaxTableNameLength();
System.out.println("表名的最大长度:"+n); System.out.println(" ");
//获得目录名的最大长度
n=dbmd.getMaxCatalogNameLength();
System.out.println("目录名的最大长度:"+n); System.out.println(" ");
//获得列名的最大长度
n=dbmd.getMaxColumnNameLength();
System.out.println("数据列的列名的最大长度:"+n); System.out.println(" ");
//获得允许的最多列数
n=dbmd.getMaxColumnsInTable();
System.out.println("数据表中允许的最多列数:"+n); System.out.println(" ");
//获得在一个 SELECT 子句中使用的最多数据列数
n=dbmd.getMaxColumnsInSelect();
System.out.println("允许在一个 SELECT 子句中使用的最多数据列数:"+n); System.out.println(" ");
//获得在一个索引中使用的最多数据列数
n=dbmd.getMaxColumnsInIndex();
System.out.println("允许在一个索引中使用的最多数据列数:"+n); System.out.println(" ");
//获得可以并发访问的用户数
n=dbmd.getMaxConnections();
System.out.println("可以并发访问的用户数:"+n); System.out.println(" ");
//获得一个 SELECT 语句最多可访问表的个数
n=dbmd.getMaxTablesInSelect();
System.out.println("一个 SELECT 语句最多可访问表的个数:"+n); System.out.println(" ");
//获得 SQL 语句的最大长度
n=dbmd.getMaxStatementLength();
System.out.println("SQL 语句的最大长度:"+n); System.out.println(" ");
//获得可同时打开的 SQL 命令数
n=dbmd.getMaxStatements();
System.out.println("可同时打开的 SQL 命令数:"+n); System.out.println(" ");
//获得一个数据行的最大长度
n=dbmd.getMaxRowSize();
System.out.println("一个数据行的最大长度:"+n); System.out.println(" ");
//获得游标名的最大长度
n=dbmd.getMaxCursorNameLength();
System.out.println("游标名的最大长度:"+n); System.out.println(" ");
//获得存储过程名的最大长度
n=dbmd.getMaxProcedureNameLength();
System.out.println("存储过程名的最大长度:"+n); System.out.println(" ");
(3)下面的代码使用 dbmd 对象获得数据库的一些属性信息。 //判断数据库是否处于只读模式
b=dbmd.isReadOnly();
System.out.println("此数据库是否处于只读模式:"+(b==true?"是":"否")); System.out.println(" ");
//判断排序时,null 值是否排在开始位置
b=dbmd.nullsAreSortedAtStart();
System.out.println("排序时,null 值是否排在开始位置:"+(b==true?"是":"否")); System.out.println(" ");
//判断此数据库是支持批量更新
b=dbmd.supportsBatchUpdates();
System.out.println("此数据库是支持批量更新:"+(b==true?"是":"否")); System.out.println(" ");
//判断此数据库是否支持存储过程
b=dbmd.supportsStoredProcedures();
System.out.println("此数据库是否支持存储过程:"+(b==true?"是":"否")); System.out.println(" ");
(4)下面的代码需要使用结果集(ResultSet)来获取数据库的信息。 //获得数据库的模式名
ResultSet rs=dbmd.getSchemas();
System.out.println("此数据库的模式名有:"); while(rs.next())
System.out.print(rs.getString(1)+" "); System.out.println();
//获得数据库的类型信息
rs=dbmd.getTypeInfo();
while(rs.next()){
System.out.print(" 数据类型名"+rs.getString(1));
System.out.print(" 数据类型"+ rs.getString(2));
System.out.print(" 精度"+ rs.getString(3));
System.out.println(" 基数"+ rs.getString(18));
}
System.out.println(" ");
//获得表 HR 的信息
String[] table={ "TABLE", "VIEW" };
rs=dbmd.getTables(null, "HR", "%", table); while(rs.next()) {
System.out.print("目录名 "+rs.getString(1));
System.out.print(" 模式名 "+rs.getString(2));
System.out.print(" 表名 "+rs.getString(3));
System.out.print(" 表的类型 "+rs.getString(4));
System.out.println(" 注释 "+rs.getString(5));
}
System.out.println(" ");
//获得表 HR 的主键列的信息
rs=dbmd.getPrimaryKeys(null, "HR","EMPLOYEES"); while(rs.next()) {
System.out.print(" 目录名 "+rs.getString(1));
System.out.print(" 模式名 "+rs.getString(2));
System.out.print(" 表名 "+rs.getString(3));
System.out.print(" 列名顺序号 "+rs.getString(4));
System.out.print(" 列名顺序号 "+rs.getString(5));
System.out.println(" 主键名 "+rs.getString(6));
}
System.out.println(" ");
//获得表的类型信息
rs=dbmd.getTableTypes();
System.out.println(" 表的类型有 ");
while(rs.next()){
System.out.print(" "+ rs.getString(1)); System.out.println();
System.out.println(" ");
}
//获得表 HR 的列的信息
rs=dbmd.getColumns(null, "HR", "EMPLOYEES", "%");
System.out.println(" 表名 "+" 列名 "+" 数据类型"+" 本地类型名"+" 列的大小"+
" 小数位数"+" 数据基数"+" 是否可空"+" 索引号");
while(rs.next()) {
System.out.print(rs.getString(3) +" ");
System.out.print(rs.getString(4) +" ");
System.out.print(rs.getString(5) +" ");
System.out.print(rs.getString(6) +" ");
System.out.print(rs.getString(7) +" ");
System.out.print(rs.getString(9) +" ");
System.out.print(rs.getString(10) +" ");
System.out.print(rs.getString(11) +" ");
System.out.println(rs.getString(17) +" ");
}
System.out.println(" ");
//获得索引信息
rs=dbmd.getIndexInfo(null, "HR", "EMPLOYEES", false, false);
System.out.println(" 表名"+" 索引名"+" 索引类型"+" 索引列名"+" 索引顺序"+
" 小数位数"+" 数据基数"+" 是否可空"+" 索引号");
while(rs.next()) {
System.out.print(rs.getString(3)+" ");
System.out.print(rs.getString(6)+" ");
System.out.print(rs.getString(7)+" ");
System.out.print(rs.getString(9)+" ");
System.out.println(rs.getString(10)+" ");
}
System.out.println(" ");
rs.close();
五、 结果分析与总结
通过该实验,进一步掌握了JSP与数据库连接的基本知识点,JDBC连接数据库的方法及内容有了进一步的了解。