目录
1、dao (data access object 数据访问对象)
step1,实体类--->entity包,Employee类
step2,dao接口--->dao包,EmployeeDAO接口
step3,实现dao接口--->dao.jdbc包,实现类
1、dao (data access object 数据访问对象)
(1)dao是什么?
封装了数据访问逻辑的模块。
数据访问逻辑:指的是针对数据资源的访问,
数据资源可以是数据库、文件、目录服务器等等。
大部分情况下,都是用数据库来存放数据。
(2)如何写一个dao?
step1,实体类--->entity包,Employee类
比如,可以设计一个Employee类,与t_emp 表对应。
step2,dao接口--->dao包,EmployeeDAO接口
在该接口当中,声明一系列方法,这些方法
不要涉及任何具体的实现技术。
比如:
EmployeeDAO接口
public ResultSet findAll(); //error
public List<Employee> findAll();
step3,实现dao接口--->dao.jdbc包,实现类
比如:
有多个类实现implements接口
EmployeeDAOImpl类,使用jdbc技术来实现数据库访问。
step4,工厂--->util包,Factory类
"工厂"是一种设计模式,工厂为调用者提供
符合接口要求的对象(即产品)。
2、将中文数据插入数据库
要注意两点:
1)数据库要支持中文,即数据库要设置
正确的字符集(比如,gbk,utf-8)
create database jsd1308db default character set utf8;
2)jdbc驱动要能够进行正确的编码和解码:
jdbc驱动在插入中文数据时,要做编码处理;
在查询中文数据时,要做解码处理。
mysql的jdbc驱动的某些版本,不能够正确地
进行编码和解码,必须要加上两个参数:
jdbc:mysql://localhost:3306/jsd1308db?
useUnicode=true&characterEncoding=utf8
练习:
使用dao完成删除员工操作。
3、servlet容器如何处理请求资源路径
比如,在浏览器地址栏输入
http://ip:port/web04_2/abc.html
请求资源路径("/web04_2/abc.html")
step1,查找web.xml中的servlet
容器要依据请求资源路径找到应用所在的文件夹,
接下来,容器会假设访问的是一个servlet,
然后查找web.xml文件中与之匹配的servlet。
step2,匹配
匹配(查找web.xml文件中与之匹配的servlet):
方式一: 精确匹配,
要求web.xml文件当中,必须这样配置:
<url-pattern>/abc.html</url-pattern>
方式二: 通配符匹配,
使用"*"匹配任意的0个,1个或者多个字符。比如
<url-pattern>/*</url-pattern>
方式三: 后缀匹配,
使用"*."开头,后接任意的1个或者
多个字符。比如
<url-pattern>*.do</url-pattern>
匹配所有以".do"结尾的请求。
step3,如果以上都不匹配
如果以上都不匹配,容器会查找相应的文件,
如果找到,则返回,找不到,返回404。
4、如何让一个servlet处理多种请求?
step1,使用后缀匹配模式
step2,分析请求资源路径
//获取请求资源路径
String uri = request.getRequestURI();
练习:
将员工信息管理中的5个servlet合并成一个(ems03)。
ftp上的ems02.zip是员工信息管理2.0的所有代码。