jsp代码编写简单的BBS论坛项目的总结

来源:互联网 发布:南京java开发培训机构 编辑:程序博客网 时间:2024/04/25 03:52

    写一个简单的论坛,在建模等其他操作省略的情况下是要先设计数据库。在这个简单的BBS项目中,仅涉及四个表:用户表,主题帖表,回复贴表,板块表。其中四个表都是要主外键关系的,比如用户表与主题表回复表的联系,板块表和主题帖表的父板块的关系:

用户表:

create table tbl_user(
    userid varchar2(40) primary key,
    uname varchar2(20),
    upass varchar2(100),
    head varchar2(100),
    regtime date,
    gender int
)

板块表:

create table tbl_board(
    boardid int primary key ,
    boardname varchar2(50),
    parentid int
)

主题表:

create table tbl_topic(
    topicid varchar2(40)  primary key ,
    title varchar2(50),
    content varchar2(1000),
    publishtime date,
    modifytime date,
    userid varchar2(40),
    boardid int
)

回复表:

create table tbl_topic(
    topicid varchar2(40)  primary key ,
    title varchar2(50),
    content varchar2(1000),
    publishtime date,
    modifytime date,
    userid varchar2(40),
    boardid int
)

当然需要建立外键。这里就省略了。四个表两两间都有联系的。

在注册的时候,表单的验证也很重要的,在其中的用户对填写的用户名失去焦点的时候查询数据库提醒是否重复用户名中用到了Ajax和json(XMLHTTPRequest对象:核心,异步访问服务器)。

登陆的时候用到的验证码技术,以及通过http协议传参:例如:

 <a href="xxx.jsp?键=值&键=值">       ->  get方式
  <form action="页面.jsp" method="post">
  <input type="hidden" name="键"  value="值" />方式。

除了大量对数据库的业务操作外。用的最多的就是request和session的传递参数,java代码和html的结合,例如用户权限的修改和删除,用session存储判断当前用户和内容的用户进行对比来控制html代码的显示。

<%                                 User checkUser=(User)session.getAttribute("nowUser");                                if(t.getUserid().equals(checkUser.getUserid())){                        %>                            <A href="doDeleteTopic.jsp?topicid=<%=t.getTopicid()%>">[删除]</A>                            <A href="">[修改]</A>                        <%         }                                                  %>

 这里用自定义标签也可以更快实现。

还有一个用的很多的就是服务器转发和重定向来实现页面跳转时候的选择和灵活运用,通过这个项目的运用对这两种对服务器请求的次数了解和request传参的理解更深了,服务器转发时可以用request的setattribute和getattribute传递参数。

另一个收获就是对获取表单的参数值的封装和分页的封装:

RequestUtil把复杂的get和set 两个方法获取到的参数利用反射把这些值存到javabean中,省去了大量代码并请求提高了代码的可读性。

分页的封装是将分页中的数据写到一个pageModel类中,将当前页数,页数的传递以及他们之间的逻辑判断写在了这个类中,所以将三个参数:当前页,总数据数,每页的数据数拿到后便可以通过这个类操作。

暂时就总结到这了。



1 2
原创粉丝点击