BBS开发详细步骤
BBS编写文档
任务一:
建立数据模型
实现系统的登录模块
详细步骤:
建立数据模型
1、 bbs论坛是什么首先根据需求把数据模型抽象出来,详细参见“Excel文件:BBS论坛数据模型.xls”
2、 在数据库服务器中建立系统的数据模型,即建立数据库和相关的表。数据库的名字大家可以自己命名(我的数据库名字叫newbbs),数据表的名字就遵循“Excel文件:BBS论坛数据模型.xls”中的名字。(提示:此步操作第一次做的时候可以通过mysql图形化客户端软件SQLYog来完成,建好表后,可以把创建表的sql脚本保存下来)。
实现系统的登录模块
1、登录模块分析:
登录功能的时序图如下:
1BBS登录时序图
从图1中我们可以看出,实现登录功能需要编写的页面有index.html,login.jsp。其中index.html是系统首页,容易编写,login.jsp是登录校验页面,在这个页面中需要对用户在in
dex.html中输入的用户名和密码进行合法性校验,如果合法,则登录成功,跳转到main.jsp页面,否则生成错误页面,跳转到首页index.html。
要完成登录功能,需要对用户user进行操作,因此,我们需要编写用户的实体类User,这个实体类很容易编写,它就是一个简单的JavaBean类。另外编写一个用户的数据访问对象,即Dao类,通常我们首先根据需求定义一个Dao接口,然后编写这个接口的实现类。在此我们定义一个UserDao接口,然后编写一个UserDao接口的实现类,在本例中,我们利用jdbc实现。
2、登录模块编写
2.1在Eclipse中新建一个“动态web项目”,名字为BBS(项目名字可以自己命名)。
2.2 编写实体类User,所在的包为cn.my.bbs.domain,代码如下:
bbs.domain;
import java.util.Date;
public class User {
    private long id;
    private String name;
    private String password;
    private String sex;
    private String email;
    private String nickname;
    private Date createTime;
    private char role;
    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        ail = email;
    }
    public String getNickname() {
        return nickname;
    }
    public void setNickname(String nickname) {
        this.nickname = nickname;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        ateTime = createTime;
    }
    public char getRole() {
        return role;
    }
    public void setRole(char role) {
        le = role;
    }
}
2.3 定义一个接口UserDao,在此,我们定义的接口还不是很完善,这需要我们对问题的需求全面分析之后才能做好。UserDao的代码如下:
bbs.dao;
bbs.domain.User;
public interface UserDao {
    //添加用户,在注册调用
    public boolean add(User user);
    //判断用户的合法性,判断条件是usernamepassword
    public boolean valid(User user);
    //判断用户是否存在,判断条件是username
    public boolean exist(User user);
}
2.4 编写Jdbc工具类JdbcUtils,用来获得数据库连接和释放数据库相关资源。当我们的UserDao接口的实现类是利用jdbc方式实现的话,就需要用到这个工具类。
bbs.dao.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public final class JdbcUtils {
    private static String url = "jdbc:mysql://localhost:3306/newbbs";
    private static String user = "root";
    private static String password = "123456";
    private JdbcUtils() {
    }
    static {
        try {
            Class.forName("sql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            throw new ExceptionInInitializerError(e);
        }
    }
    public static Connection getConnection() throws SQLException {
        Connection(url, user, password);
    }
    public static void free(ResultSet rs, Statement st, Connection conn) {
        try {
            if (rs != null)
                rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (st != null)
                    st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                if (conn != null)
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
            }
        }
    }
}
2.5 编写UserDao接口的实现类UserDaoJdbcImpl(利用Jdbc方式实现的),因为我们仅仅实现登录功能,所以在这个类中我们仅仅把UserDao接口中的public boolean valid(User user)方法给实现了。代码如下:
bbs.dao.impl;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。