java从入门到精通----servlet08
1.重定向
(1)什么是重定向?
服务器通知浏览器向某个地址发送请求。
注:
服务器可以发送302状态码和Location消息头
(该消息头的值是一个地址,一般称之为重定向
地址)给浏览器,浏览器收到之后,会立即向
重定向地址发送请求。
(2)如何重定向?
response.sendRedirect(String url);
注:
url是重定向地址。
容器在重定向之前,会清空response对象上存放的
所有数据。
(3)特点
a.重定向之后,浏览器地址栏的地址会发生改变。
b.重定向的地址是任意的。
2. DAO (Data Access Object)
(1)DAO是什么?
是一个封装了数据访问逻辑的对象。
(2)如何写一个DAO?
step1.写一个java类(一般称之为实体类)。
注:
该类与要访问的表的结构保持一致,即
表有哪些字段,该类要有与之对应的属性,属性
类型要与表的字段类型匹配。
我们可以将记录中保存的信息添加到实体对象
里面,方便处理。
public class User {
private int id;
private String username;
private String pwd;
private String email;
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", pwd=" + pwd + ", email=" + email + "]";
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
step2.写一个java类,提供一些访问数据库的方法。
public class UserDAO {
/**
* 查询出所有用户的信息。
* 注:
* 关系数据库里面存放的是一条条记录,
* 而java是面向对象的语言。在设计
* DAO时,我们经常将查询到的记录转换成
* 一个对应的java对象。
*/
public List<User> findAll()
throws Exception{
List<User> users =
new ArrayList<User>();
Connection conn = null;
PreparedStatement stat = null;
ResultSet rs = null;
try {
conn = DBUtils.getConn();
String sql =
"SELECT * FROM t_user";
stat = conn.prepareStatement(sql);
rs = stat.executeQuery();
while(rs.next()) {
int id = rs.getInt("id");
String username =
rs.getString("username");
String pwd =
rs.getString("password");
String email =
rs.getString("email");
User user = new User();
user.setId(id);
user.setUsername(username);
user.setPwd(pwd);
user.setEmail(email);
users.add(user);
}
} catch (Exception e) {
e.printStackTrace();
throw e;
}finally {
DBUtils.close(conn, stat, rs);
}
return users;
}
}