本文是作者原创文章,欢迎转载,请注明出处 from:@Eric_Lai
昨天因为有事情,没有时间来做实验。今天接着前面的来做了一下,前面已经完成了数据库与开发环境的连接配置。今天要做的就是写一个简单的demo来通过网页操作数据库里面的资源。几个交互的网页那当然是一下子就写完了,代码将会在下面给出。在这次的小实验当中,最令我困惑的就是如何把网页提交的比如说查询的目标参数,传入到JSTL的语句里面来进行查询。为此,我浪费了不少时间,但是要经过一番努力。原来有一种叫做EL(expression language)的东西非常有用。关于这个的详细资料,大家可以参看这里。
首先需要建立一个数据库,有关数据库的不在我们的讨论范围之内。相信建立数据库和创建数据表大家都是可以比较轻易的完成的。 其次是建立数据库与开发环境的连接,这里可以参看我的前一篇文章。 最后要提示一下,在使用JSTL库之前需要下载相关的JRE,并将他们放到tomcat的相关目录下,这里也可以参看我的上一篇文章。
首先是整个工程的目录架构 图中可以看到的.jsp文件有四个:
下面给出,最重要的response的代码:
<%--
Document : response
Created on : 2015-7-19, 14:16:11
Author : ERIC_LAI
--%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>response</title>
</head>
<center>
<body>
<h1>查询结果</h1>
<span style="color:#ff0000;"><!-- JSTL的数据库标签,用来处理和数据库相关的内容,这里使用的是查询 --></span>
<sql:query var="result" scope="request" dataSource="jdbc/DbTest">
SELECT * FROM sendtable WHERE rePhone=${param.phone}
<span style="color:#ff0000;"><!-- ${param.phone} 这里是整个的关键,使用EL将查询页面的请求参数读取出来,给select语句使用 --></span>
</sql:query>
<table border="1" width="60%">
<thead>
<tr>
<td>收件人手机</td>
<td>收件人地址</td>
<td>寄件人手机</td>
<td>寄件人地址</td>
<td>id</td>
</tr>
</thead>
<tbody>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.rePhone}"/></td>
<td><c:out value="${row.reAddress}"/></td>
<td><c:out value="${row.sePhone}"/></td>
<td><c:out value="${row.seAddress}"/></td>
<td><c:out value="${row.id}"/></td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</center>
</html>
下面是index的代码:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DataBase Test Welcome</title>
</head>
<center>
<body>
<h1>数据库实验</h1>
<input type="button" value="我要快递" name="create" onClick="window.open('create.jsp');"/>
<input type="button" value="我要查询" name="query" onClick="window.open('query.jsp');"/>
</body>
</center>
</html>
下面是query的代码,这里使用了表单和http的POST方法将请求参数传到服务器上:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>query an iteam</title>
</head>
<center>
<body>
<h1>查询我的快递</h1>
<form action="response.jsp" method="POST">
<p><input type="radio" name="query method" value="rePhone" checked="checked" />按照收件人手机查询</p>
<p><input type="radio" name="query method" value="sePhone" />按照寄件人手机查询</p>
<p>请输入手机号<input type="text" name="phone" ></p>
<br>
<input type="submit" value="提交数据">
</form>
</body>
</center>
</html>
至此,完成了本次实验。总而言之,最重要的是数据传递的问题,这个问题使用EL可以很容易的解决,现在,基本主流的浏览器都能够支持这个的运行。