Servlet 02
DAO 层
data access object (数据访问对象) .
User
- UserDao
- insert
1. 连接数据库
2. 执行sql语句
3. 根据影响的行数 返回true或false
- delete
- update
- query
1. 连接数据库
2. 执行SQL查询
3. 遍历结果集
4. 将结果存储到集合中
5. 返回这个集合
查询user35表格, 将查询的数据 打印到网页上.
web3.0版本之前, 配置访问地址: 熟悉
1. 编辑 web-inf/web.xml文件
2. 给根节点 加入子节点servlet.
<servlet>
<servlet-name>别名</servlet-name>
<servlet-class>包名.类名</servlet-class>
</servlet>
3. 给根节点 加入子节点servlet-mapping
<servlet-mapping>
<servlet-name>对应第二步的别名</servlet-name>
<url-pattern>/访问地址</url-pattern>
</servlet-mapping>
注意: 第三步可以编写多个
Servlet的生命周期 ***
指的是Servlet对象 从创建到被垃圾回收的过程.
创建时机:
默认情况下 , 当用户第一次访问Servlet时 , 对象创建.
后续重复访问这个Servlet , 是在重复使用第一次创建的对象.
销毁时机:
服务器关闭时 或 应用被卸载时 会导致servlet被垃圾回收.
因为servlet的对象 不是我们来维护的, 是tomcat进行创建, 销毁操作的.
为了便于我们更好的使用servlet , JavaEE 为servlet 提供了创建 与 销毁的事件处理.
生命周期存在三个方法:
1. init : 当servlet对象初始化完毕时, 方法执行. 我们通常在这里缓存一些用户请求时 使用的资源.
2. service : 当用户每访问一次servlet, service方法在新的线程中执行一次.
3. destroy : 当servlet准备销毁时. 执行. 我们通常在这里释放缓存的资源.
线程安全问题 *
异步即并行, 同步即排队.
线程同步:
1. 同步方法
2. 同步代码块
锁对象:
Java中的同步机制, 就像是生活中的君子协定.
不是真的给代码上了锁, 而是指定一个锁对象, 向对象中加入锁标记, 其他线程执行线程同步代码时, 先观察锁对象是否有锁标记 ,有锁标记时排队.
同步代码块的锁对象: 由程序员指定传入.
静态同步方法的锁对象: 类名.class
非静态同步方法的锁对象: this
接收请求中携带的参数 ***
1. 根据参数的名称, 获取单个值:
String value = request.getParameter(String name);
2. 根据参数的名称, 获取一组值:
String[] values = request.getParameterValues(String name);
处理请求时:
方式一: 可以使用 service方法, 处理所有类型的请求.
方式二: 也可以使用doGet方法 处理get请求, doPost方法 处理post请求.
GET请求 和 POST请求的区别 *****
GET请求:
1. 没有请求体 , 请求的数据在网址的?后拼接
2. 只能传递字符串
3. 网址的最大容量为: 4kb
4. 数据传输时 , 参数在网址中以明文方式显示, 不安全.
POST请求:
1. 存在请求体 , 请求的参数会单独存储在一个数据包中.
2. 可以传递任意类型的数据, 上传文件操作必须使用POST请求.
3. 可以传输的数据大小 , 理论上是无限制的.
4. 数据传输时 , 参数存储在请求体中 , 不会显示出来, 较为安全.
什么请求是get 什么请求是POST
GET:
- 浏览器输入网址回车
- 点击超链接跳转
- 通过js的localtion对象 进行网页跳转
- form表单 method=get
- ajax的get请求
POST:
- form表单 method="post"
- ajax的POST请求
请求中文乱码问题
tomcat8.5版本之前, GET请求乱码 , post请求乱码
tomcat8.5开始 , GET请求不乱码, post请求依然乱码.
.