天天看点

Jsp新闻发布系统(六)

新闻类别列表实现 一. 当前位置菜单实现

1.在NewsTypeDao中新建一个NewsType类型的getNewsTypeById方法,参数是connection和newsTypeId

2.定义一个newsType和sql语句(select * from t_newsType where newsTypeId=?)

3.使用prepareStatement执行返回pstmt,参数是sql,pstmt设置第一个值为newsTypeId,返回一个resultSet值。如果rs有值,调用newsType中的setNewsTypeId和setTypeName,返回newsType。

4.封装一个导航工具类NavUtil,新建一个genNewsListNavigation方法,参数是typeName和typeId。定义一个StringBuffer属性的navCode。navCode拼接出导航,然后返回navCode的toString方法

5.在NewsServlet.java中,new一个newsTypeDao。在newsList方法中,newsTypeDao调用getNewsTypeById再获取其getTypeName,返回typeName

6.将NavUtil中的genNewsListNavigation,参数是typeName和typeId。通过request放入navCode中

7.在newsList.jsp中添加navCode

二. 新闻类别列表实现

1.在NewsServlet.java中,new一个dbUtil和newsDao。

2.在newsList方法中,定义一个page,从request中获取值。如果page是空的话,设默认值为1.

3.定义一个空connection,实例化一个s_news,对象为News。如果typeId不为空的话,s_news调用setTypeId方法。

4.获取数据库连接,对pageBean进行封装,参数是page和pageSize(在配置文件中定义pageSize=5)

5.调用newsDao的newsList方法进行查询,返回一个List类型属性为News的newestNewsListWithType。将newestNewsListWithType放入request中。

6.修改newsList.jsp

三. 简单分页实现

1.导入pageBean类

2.在newsDao.java中新建一个List属性为News的newsList类,参数是connection,news,pageBean

3.定义一个List属性为News的newsList,对象为arrayList。再定义一个stringBuffer(select * from t_news t1,t_newsType t2 where t1.typeId = t2.newsTypeId)

如果s_news的typeId值不等于-1,sb拼接一个语句("and t1.typeId="+s_news.getTypeId()),否则拼接(order by t1.publishDate desc)。如果pageBean不等于null,sb拼接一条语句("limit"+pageBean.getStart()+","+pageBean.getPageSize())

4.使用prepareStatement执行,参数是sb.toString(),返回一个resultSet值。如果rs有值,new一个news,将rs中的值塞入 news中,将news赋值进newsList。返回newsList值。

5.新建一个方法newCount,参数是connection和news。定义一个stringBuffer(select count(*) as total from t_news),如果s_news的typeId值不等于-1,sb拼接一个语句("and typeId="+s_news.getTypeId())。

6.使用prepareStatement执行,参数是sb.toString().replaceFirst("and","where"),返回一个resultSet值。如果rs有值,返回rs的total值,如果没有,则返回0

7.封装一个分页工具类PageUtil,新建一个getUpAndDownPagetion方法,参数是totalNum,currentPage,pageSize,typeId。定义totalPage,如果totalNum%pageSize等于0的话,totalPage就是totalNum/pageSize,否则就是totalNum/pageSize+1.定义一个stringBuffer类型的pageCode,拼接分页的代码。

8.在newsServlet中的newsList方法中,定义一个total,从newsDao的newsCount中获取值。将pageUtil中的getUpAndDownPagetion方法值塞入request中的pageCode

9.在newsList.jsp中添加pageCode