11: <title>continue</title>
12: </head>
13: <body bgcolor="#ffffff">
14: <sql:setdatasource driver="com.mysql.jdbc.driver"
url="jdbc:mysql://${l}/${d}?user=${u}&password=${p}"/>
15: <sql:query var="result">
16: select * from <c:out value="${t}"/>
17: </sql:query>
18: <c:foreach var="row" items="${result.rowsbyindex}">
19: <c:out value="${row[0]}"/><br>
20: </c:foreach>
21: </body>
22: </html>
(请注意文本左侧的数字只是为你提供一些标记信息,你不需要将他们输入到你的代码文件中。)
这就是我们所有的代码了,是不是非常不错?现在我门来解释一下上面这些代码的作用。
行1 是 html 的注释说明。
行2--3 这些 jsp 标签是为了引用外部的 标签库,更确切的说这里是引用了jstl库中的 core 和sql标签库部分。我们为他们都设置了前缀名称,以便于我们通过这些前缀名称访问被引入的标签库中的功能方法。
行4---8正如 hello.jsp 真正运行的样子,他将请求continue.jsp,continue.jsp获得请求后就需要得到并解析来自hello.jsp的若干变量,我们使用了这样的方式${param.your_var}。在第4行<c:set标签,将变量${h}设置为 "localhost",第五行变量${l}将获取我们在 hello.jsp中的login文本域中输入的信息,第6,7,8行的变量将分别获得来自hello.jsp中用户所输入的密码,数据库名称,数据表名称。
行9--13是一些我经常用来常见html网页头的简单的html标签,马上,重要的功能马上要到了。
行14,我们试图用我们先前获得的mysql驱动程序(com.mysql.jdbc.driver)建立数据库连接,在url中,我们指明数据库连接所需要的参数,象数据库名称,主机名称,登陆名及登陆密码。依此,我们可以用其它任何的jdbc驱动程序连接其相对的数据库。如果我们需要连接其他的sql数据库,只需更改这个 url就够了。
行15--17 这里我们执行了一个select 查询,请特别注意第16行,我们使用了另一个jstl功能函数<c:out 用来输出我们所获取的数据表名称,这里我们同样可以使用其他的sql命令,比如说 insert,delete,等等。要执行这些没有返回值的查询请求,你就需要使用<sql:update jstl功能函数了。他可以直接执行他们就象<sql:query一样,只是执行它是不需要特别指定结果变量来存储语句执行返回的结果。