java从入门到精通----servlet08

1.重定向

(1)什么是重定向?

服务器通知浏览器向某个地址发送请求。

java从入门到精通----servlet08

注:
    服务器可以发送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;
    }
}