介绍
本文是写给某位小朋友用来准备课堂测试的,为了防止他一直纠缠我,索性将那样浪费的时间用来写成一个教程。
项目要求文档与资料:https://github.com/MarK-YANG/EnterpriseJavaEE-Test1/tree/master/BookStore
项目源码:https://github.com/MarK-YANG/EnterpriseJavaEE-Test1/tree/master/myBook
主要是关于JSTL
,EL
和Connection Pool
的一个练习。
操作系统:MacOS Yosemite
IDE: IntelliJ IDEA 14
服务器: Tomcat 8.0.21
目录
一、将Book.sql文件导入到数据库中
二、创建JavaBeans
三、创建JDBC
四、创建控制器
五、创建BookList.jsp(View)
六、测试
详细步骤
一、将Book.sql文件导入到数据库中:(用MySQLWorkbench或IDE中Database工具)
- 进入
System Prefenrences
选择MySQL
打开Start MySQL Server
开关,开启3306端口 打开
MySQLWorkbench
,选择Local instance 3306
进入Workbench,选择create a new schema
,新建一个database,名称为boostore
(或用 IntelliJ中集成的Database工具)。然后选择中的
Open a SQL Script
,导入目录下的bookstore.sql
。⌘+A
全选bookstore.sql中的内容,点击执行,数据导入部分完成
二、创建JavaBeans
- Books:按数据库的字段创建
private
的私有变量,然后生成Getter
和Setter
方法。 - Sources:按数据库的字段创建
private
的私有变量,然后生成Getter
和Setter
方法。
三、创建JDBC
- 将MySQL Driver的
jar包
导入项目中,或放入tomcat目录下的lib
文件夹中。 - 创建数据库连接工具类:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
四、创建控制器
- 创建名ShowBooks的
Servlet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
|
- 添加
listAllBooks(request, response)
方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
- 添加
findBooks(title, request, response)
方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
- 添加
searchAuthor(author, request, response)
方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
|
- 添加
searchPublisher(publisher, request, response)
方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
五、创建BookList.jsp(View)
- 首先,在目录己经提供了现成的BookList.html模板,可将其中的主要内容复制过来
- 我们要以
table
的方式列出所有书籍的信息,而每一本书的信息都封装在名为Books类的JavaBean
中,所有的JavaBean又存储在一个名为books
的ArrayList
中(从Servlet
中传入)。 明白了这些,我们首要工作就是要遍历名为
books
的ArrayList
,于是我们用到了JSTL中的<c:foreach>
标签。<c:foreach>标签的简要使用方法是:- item项为要遍历的数据结构
- var项为迭代器所指向的当前变量
- e.g.
1 2 3
<c:foreach item=“${books}” var=“var”> <td>${var}</td> </c:foreach>
其次,如果某书籍可外借数量不足5本,我们需要用另一种方式展示出来,这里就用到了JSTL的
<c:if>
标签。<c:if>标签的简单使用方法是:- test项为判断条件
- 标签内为条件成功执行代码
- e.g.
1 2 3
<c:if test=“{var == 5}”> <td>${var}</td> </c:if>
最后,我们需要将table中的某列的内容以
HyperLink
的方式展示,可以使用JSTL中的<c:url>
标签。<c:url>标签的简单使用方法是:- value项是HyperLink的地址
- <c:param name=“” value=“”></c:param>是通过get方法传入的值
- e.g.
1 2 3 4
<c:url value=“ShowBooks”> <c:param name=“action” value=“author”></c:param> <c:param name=“author” value=“${var.author_name}”></c:param> </c:url>
注,使用JSTL时,要将
jstl-1.2-2.jar
和standard-1.1.2-2.jar
导放到项目目录下,或将他们导入tomcat目录的lib
文件夹下- 最后,我们的BookList.jsp的body部分是这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
|
六、打开tomact
服务器,在浏览器中输入http://localhost:8080/项目名称/ShowBooks(ServletURLPattern)
测试一下。