新闻发布系统

                   新闻发布系统

工具:myeclipse+MySQL

技术定位:jsp+servlet+html+jstl+el表示式

拿到一个项目,首先先想到的是就是分析出各个实体类或者是对应的表。

首先知道这个项目必须要用户所以我就创建了userinfo表,字段有uid,uname,upwd,
/*
SQLyog v10.2
MySQL - 5.7.12-log
***********************************
*/
/*!40101 SET NAMES utf8 */;
create table `userinfo` (
 `uid` int (11),
 `uname` varchar (96),
 `upwd` varchar (150)
);
insert into `userinfo` (`uid`, `uname`, `upwd`) values('1','Admin','admin')

数据库截图如下:

新闻表:

标题表:

用户表:

截图如下:
1. 登录模块
1.页面跳转,跳转index.jsp
2.强session中的值清除
 
首先登录页面,截图如下:
 
首先,我们得在dao层中的IUserInfo中定义一个登录的接口,截图如下:
 
然后,我们在impl中实现isLogin这个接口,实现类UserInfoDAOImpl如下,截图如下:
 
在这个登陆中,我可是吃亏了,因为executeQuerty()方法中返回的是ResutSet结果集。我就想着用while(rs.next){i++;},无论怎么样都会登陆进去,可能是很久没有写这样的代码了,忘了rs结果集中getInt(1或者是自己定义的别名)。就因为这个问题,我可是弄很久。
登陆,注销,第一次登陆的Servlet的截图如下:
 
 
 
在后台中,怎么知道是登陆还是注销,因为有他,截图如下:
 
 
这个很重要,要不然后台的servlet是识别不了的。

2. 登录页面的新闻
 这个展示新闻的也得需要一个盛新闻的容器,因为还是展示数据但和之前不同的是,是以分页的形式展示数据,所以必须的变动SQL语句,所是我还是准备好了ArrayList集合,方法截图如下:
 
但是因为上一页和下一页不能不能让展示新闻的当前页面出现展示异常。所以就在UserInfoServlet中,做了许多的限制,列如上一页不能小于等于零等等,截图如下:
 
当时,我在这里弄上下一页的时候,因为这个servlet中变量太多了,我怎么弄就是不对。缓了一会儿之后,我突然又想到了,上一页肯定不能小于一呀,下一页肯定不能大于最大页码呀。经过一番思绪整理之后,才发现非常简单。在页面上展示新闻代码截图如下:
 
3.新闻列表
首先,你要想你拿到的不是单独的某一条数据,而是要拿到一个表中的数据,所以需要需要一个承载所有数据的容并且是用来随机访问的所以我很果断的使用List接口下的ArrayList集合,这样的选择会使整个项目的性能较好。
 
  在ITopicDAO接口中的方法:
 
在TopicDAOImpl实现类中实现getAllTopics方法截图如下:
 
实现了方法之后,那我们可以在servlet中把List
放在request作用域中,截图如下:
 
那么我们就得想办法在页面上,怎么能拿到这个集合,截图如下:
 

还未完成!

原文地址:https://www.cnblogs.com/quliang/p/6775431.html