目录
一、前言
上几篇文章讲了一些理论知识点如:什么是Servlet、Servlet执行过程介绍、表单提交中文参数乱码问题、get和post提交方式等,
原创 java服务器端开发-servlet:1、认识Servlet,如:web开发背景、什么是servlet、如何开发一个servlet等
原创 java服务器端开发-servlet:2、Servlet执行过程介绍:常见错误及解决方式、响应数据包、get请求与post请求、编码相关等
后面还做了这些知识点的实战代码案例。因为上篇文章实战代码讲了:录入、读取、输出员工数据的操作,
那么今天主要讲的知识点是入库等操作,如:Servlet使用jdbc访问数据库、mysql的简单使用、重定向等
二、Servlet使用jdbc访问数据库、重定向
1、使用jdbc访问数据库
step1, 添加驱动
将jdbc驱动拷贝到WEB-INF\lib下。
step2, 要注意异常的处理
关于资源的关闭:
connection关闭之后,跟这个连接对应的
statement、resultset会自动关闭。所以,一
般情况下,只需要关闭connection即可。
但是,在使用连接池的时候,调用connection
的close方法,实际上并没有真正地关闭连接,
对应的statement、resultset也就没有关闭,
有可能会占用过多内存资源。
所以,在关闭连接之前,应该先关闭statement, resultset。
2、mysql的简单使用
(1)登录mysql
mysql -u root;
-----目前我的mac需要这样登录
cd /usr/local/mysql/bin
mysql -u root -p
password:q。。。4
(2)查看当前有哪些数据库
show databases;
(3)创建一个新的数据库
比如,创建一个名称jsd1108db的数据库,
该数据库使用的字符集是utf-8
create database jsd1108db default character set utf8;
(4)使用某个数据库
use jsd1108db;
(5)查看当前数据库有哪些表
show tables;
(6)建表
create table t_emp(
id int primary key auto_increment,
name varchar(50),
salary double,
age int
);
type=innodb 的作用:让这个表支持事务。【因这句会报错,所以省略,具体原因再说】
auto_increment: 自增长列,当插入记录时,
数据库自动为该列赋一个唯一的值。
(7)查询表
select *from t_emp; 查询表
DESC t_emp; 查看表结构
另外需要注意
1、有时候要回到命令行执行:control + c
2、命令行退出 mysql:quit
3、删除表里面的所有数据:delete from t_emp;
4、删除数据库:drop database jsd1108db;
练习:
写一个ListEmpServlet,以表格的方式展现所有
员工的信息。
比如 http://ip:port/web03_lab/list
3、重定向
(1)什么是重定向?
服务器发送一个302状态码和一个Location消息头
(值是一个地址,称为重定向地址),当浏览器收到之后,
会立即向重定向地址发请求。
(2)编程
//url:重定向地址
response.sendRedirect(String url);
(3)特点
1)重定向地址是任意的。
2)重定向之后,浏览器地址栏的地址变成重
定向地址。
(4)重定向需要注意的两个问题
1)重定向之前,不能够调用out.close方法。
2)重定向之前,会先清空response上缓存的数据。
练习:
完成删除员工的操作(从数据库里删除指定员工的
信息,删除之后重定向到员工列表)