src/main/java/util
JDBCUtil.java
package util; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JDBCUtil { static ComboPooledDataSource dataSource = null; static{ dataSource = new ComboPooledDataSource(); } public static DataSource getDataSource(){ return dataSource; } /** * 获取连接对象 */ public static Connection getConn() throws SQLException{ return dataSource.getConnection(); } /** * 释放资源 */ public static void release(Connection conn , Statement st , ResultSet rs){ closeRs(rs); closeSt(st); closeConn(conn); } public static void release(Connection conn , Statement st){ closeSt(st); closeConn(conn); } private static void closeRs(ResultSet rs){ try { if(rs != null){ rs.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ rs = null; } } private static void closeSt(Statement st){ try { if(st != null){ st.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ st = null; } } private static void closeConn(Connection conn){ try { if(conn != null){ conn.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ conn = null; } } }
TextUtil.java
package util; public class TextUtil { /** * 判断某一个字符串是否为空。 */ public static boolean isEmpty(CharSequence s){ return s==null || s.length() == 0; } }
src/main/webapp
src/main/webapp/WEB-INF
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>ch7_test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>addServlet</servlet-name> <servlet-class>AddServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>addServlet</servlet-name> <url-pattern>/AddServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>showServlet</servlet-name> <servlet-class>ShowServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>showServlet</servlet-name> <url-pattern>/ShowServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>deleteServlet</servlet-name> <servlet-class>servlet.DeleteServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>deleteServlet</servlet-name> <url-pattern>/DeleteServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>goodsListPageServlet</servlet-name> <servlet-class>servlet.GoodsListPageServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>goodsListPageServlet</servlet-name> <url-pattern>/GoodsListPageServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>goodsListServlet</servlet-name> <servlet-class>servlet.GoodsListServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>goodsListServlet</servlet-name> <url-pattern>/GoodsListServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>searchGoodsServlet</servlet-name> <servlet-class>servlet.SearchGoodsServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>searchGoodsServlet</servlet-name> <url-pattern>/SearchGoodsServlet</url-pattern> </servlet-mapping> </web-app>
add.jsp
<%@ page contentType="text/html;charset=UTF-8" %> <html> <head> <title>register.jsp</title> </head> <body> <jsp:include page="head.jsp" flush="true"/> <font size=3> <h1>请添加商品</h1> <form action="AddServlet" method="get"> <table> <tr> <td>商品名:</td> <td><input type="text" name="gname"></td> </tr> <tr> <td>价格:</td> <td><input type="text" name="price"></td> </tr> <tr> <td><input type="submit" value="提交"></td> </tr> </table> </form> </font> <script> var Null= '<%=request.getParameter("Null")%>'; if(Null=='yes'){ alert("信息不得为空!"); } </script> </body> </html>
head.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String col = request.getParameter("col"); %> <link href="style.css" rel="stylesheet" type="text/css"/> <div id="top" class="layout"> <img src="logo.jpg" width="100" height="100"> </div> <div id="nav" class="layout"> <ul> <li><a href="add.jsp">增加商品</a></li> <li><a href="GoodsListPageServlet?currentPage=1">显示商品</a></li> </ul> </div>
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="bean.*" %> <%@page import="java.util.*" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>商品列表页面</title> <script type="text/javascript"> function doDelete(sid) { /* 如果这里弹出的对话框,用户点击的是确定,就马上去请求Servlet。 如何知道用户点击的是确定。 如何在js的方法中请求servlet。 */ var flag = confirm("是否确定删除?"); if(flag){ location.href="DeleteServlet?id="+id; } } </script> </head> <body> <jsp:include page="head.jsp"></jsp:include> <form action="SearchStudentServlet" method="post"> <table border="1" width="700"> <tr > <td colspan="8"> 按名称查询:<input type="text" name="gname"/> 按价格查询:<input type="text" name="price"/> <input type="submit" value="查询"> <a href="add.jsp">添加</a> </td> </tr> <tr align="center"> <td>编号</td> <td>商品名</td> <td>价格</td> </tr> <c:forEach items="${pageBean.list }" var="goods"> <tr align="center"> <td>${goods.id }</td> <td>${goods.gname }</td> <td>${goods.data}</td> <td><a href="#" onclick="doDelete(${goods.id})">删除</a></td> </tr> </c:forEach> </table> </form> </body> </html>
list_page.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>商品列表页面</title> <script type="text/javascript"> function doDelete(sid) { /* 如果这里弹出的对话框,用户点击的是确定,就马上去请求Servlet。 如何知道用户点击的是确定。 如何在js的方法中请求servlet。 */ var flag = confirm("是否确定删除?"); if(flag){ //表明点了确定。 访问servlet。 在当前标签页上打开 超链接, //window.location.href="DeleteServlet?sid="+sid; location.href="DeleteServlet?id="+id; } } </script> </head> <body> <jsp:include page="head.jsp"></jsp:include> <form action="SearchStudentServlet" method="post"> <table border="1" width="700"> <tr > <td colspan="8"> 按名称查询:<input type="text" name="gname"/> 按价格查询:<input type="text" name="price"/> <input type="submit" value="查询"> <a href="add.jsp">添加</a> </td> </tr> <tr align="center"> <td>编号</td> <td>商品名</td> <td>价格</td> </tr> <c:forEach items="${pageBean.list }" var="goods"> <tr align="center"> <td>${goods.id }</td> <td>${goods.gname }</td> <td>${goods.price }</td> <td><a href="#" onclick="doDelete(${goods.id})">删除</a></td> </tr> </c:forEach> <tr> <td colspan="8"> 第 ${pageBean.currentPage } / ${pageBean.totalPage } 每页显示${pageBean.pageSize }条 总的记录数${pageBean.totalSize } <c:if test="${pageBean.currentPage !=1 }"> <a href="StudentListPageServlet?currentPage=1">首页</a> | <a href="StudentListPageServlet?currentPage=${pageBean.currentPage-1 }">上一页</a> </c:if> <c:forEach items="${pageBean.list }" var="goods"> <tr align="center"> <td>${goods.id }</td> <td>${goods.gname }</td> <td>${goods.price }</td> <td><a href="#" onclick="doDelete(${goods.id})">删除</a></td> </tr> </c:forEach> <c:if test="${pageBean.currentPage !=pageBean.totalPage }"> <a href="StudentListPageServlet?currentPage=${pageBean.currentPage+1 }">下一页</a> | <a href="StudentListPageServlet?currentPage=${pageBean.totalPage }">尾页</a> </c:if> </td> </tr> </table> </form> </body> </html>
main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>首页</title> </head> <body> <jsp:include page="head.jsp" flush="true"/> </body> </html>
style.css
*{ margin: 0 ; padding: 0; } nav{ text-align: center; /*margin:0px auto; /*没有宽度不能居中*/ } ul{ display: inline-block;/*ul设为内联元素便于居中*/ } ul li{ float: left; list-style-type: none; /*去掉圆点*/ } ul li + li{ border-left: 1px solid #333; } ul li a{ background: #999; text-align: center; text-decoration: none; color: #000; display: block; padding: 3px 10px; } ul li a:hover{ color: red; background: #333; cursor: pointer; }