Using Transactions
//web.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <resource-ref> <res-ref-name>jdbc/address</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql" %> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <html> <head> <title>Using Transactions</title> <sql:setDataSource var="conn" dataSource="jdbc/address" /> </head> <body> <h1>Modify Address List</h1> <sql:transaction dataSource="${conn}" isolation="TRANSACTION_SERIALIZABLE"> <sql:update> INSERT INTO AddressList (name, street, city, country, telephone) VALUES (?, ?, ?, ?, ?) <sql:param value='${param["name"]}'/> <sql:param value='${param["street"]}'/> <sql:param value='${param["city"]}'/> <sql:param value='${param["country"]}'/> <sql:param value='${param["tel"]}'/> </sql:update> <sql:query var="addresses"> SELECT * FROM AddressList </sql:query> <table width="90%" border="1"> <tr> <!-- add the table column headings --> <c:forEach var="columnName" items="${addresses.columnNames}"> <th> <c:out value="${columnName}"/> </th> </c:forEach> </tr> <!-- add the table rows from the result set --> <c:forEach var="row" items="${addresses.rowsByIndex}"> <tr> <c:forEach var="column" items="${row}"> <td><c:out value="${column}"/></td> </c:forEach> </tr> </c:forEach> </table> </sql:transaction> </body> </html>