门户网站的设计与开发
第四章 详细设计
4.1 新闻显示功能
首页(index.jsp)负责显示新闻列表,点击新闻标题将显示出新闻详细内容,新闻标题上加有链接,链接到showNewsDeatil.Jsp页面,此页面负责显示新闻详细内容(标题,发表时间,内容,作者)。根据新闻条数NewsTurnPageAction.java负责新闻列表分页,点击“上一页”“下一页”实现分页。
新闻内容都存与UserBean 的实例化对象user中,数据封装好后存放到session中供用户读取。
4.2 用户注册功能
register.jsp页面负责提交新用户注册信息,信息提交给Struts,有RegisterActionForm.java把表单数据接收过来封装,Register.java从FormBean(RegisterActionForm.java)中把数据提取出来,进行检测,首先检测用户名,检查是否已被注册,此过程用到myutils包中的UserUtils类。
此系统支持汉化用户名,所以用户名还要进行编码处理,用以保障用汉字注册用户名的用户。
注册成功返回success.jsp 否则返回error.jsp页面。
4.3 修改注册信息功能
此模块登陆后才能被激活,此模块是普通用户设计的,管理员不可以在客户端修改信息,modifyUserMess.jsp页面负责修改。
当用户登陆后,点击修改,GetUserOldMessAction.java负责查询用户信息,得到信息后,把信息存放到UserMessage.java的实例化对象userMess中,然后modifyUserMess.jsp页面引入userMess对象获得旧的信息,修改后提交给ActionServlet.java类,ActionServlet根据Struts-config.xml中的URL配置再转发到ModifyUserMessAction.java,经过处理后最终存入数据库中。
17
第四章 详细设计
4.4 管理新闻功能
此模块登录后被激活,普通用户登陆后仅可以管理自己的新闻,管理项目包括(删除,修改)。
管理员登陆后可管理数据库中所有的新闻,管理项目包括(删除,修改)。 删除新闻基本实现流程:managerUserAction.jsp显示新闻列表,单击“删除”——>confirmDeleteNews.Jsp——>DeleteNewsAction.java最终SqlUtils.java工具类根据接收到的id号,从数据库的news表把相应的新闻删除。
编辑新闻基本实现流程:单击“修改”——>modifyNews.jsp(负责显示当前新闻,并提交新新闻)——>ModifyNewsAction.java(处理后存入数据库)。
4.5 添加新闻功能
添加新闻的最低用户级别是普通用户,用户登录后可以在addNews.jsp页面
添加新闻,新闻提交给Struts,ActionServlet.java负责分发给相应的Action类处理,给据配置文件的FormBean把提交的新闻信息封装,然后AddNews.java类从FormBean(AddNewsActionForm.java)中取出数据处理后存入news表中。
添加新闻基本流程:addNews.jsp——>AddNewsAction.java——>SqlUtils.java(工具类)——>news新闻表。
4.6管理用户
此模块系统管理员专有,系统管理员登录后,此模块被激活。
managerUserList.jsp页面负责显示用户列表,管理员可以根据需要对个别
用户进行封号处理。点击删除,把对应用户的用户名最终传递给SqlUtils.java(工具类),由工具类实施删除。
封号实现流程:点击“删除”——>confirmDeleteUser.jap——>DeleteUserAction.java——>SqlUtils.java(工具类:根据接收到的用户名,在数据库mynews的User表中删除相应用户)。
4.7注销
ExitAction.java负责注销,当用户登录后,不再进行操作点击导航栏上的“注销”系统会销毁当前session。
18
门户网站的设计与开发
基本实现流程:点击“注销”——>ExitAction.java(销毁当前session对象)。
19
门户网站的设计与开发
第五章 功能实现
5.1 新闻显示功能
NewsBean.java部分代码(负责新闻数据封装):
private CachedRowSetImpl row; private int pageSize; private int pageCount; private int rowCount; private int currentPage; public NewsBean(){ pageSize= 10; currentPage = 1; String sql = \ List
(rowCount%pageSize==0)?(rowCount/pageSize):(rowCount/pageSize+1); } catch (SQLException e) { e.printStackTrace(); rowCount = 0; pageCount = 0; } } public NewsBean(String username){ pageSize= 10; currentPage = 1; String sql; boolean ok; List
20
=
第五章 功能实现
try { row.last(); rowCount = row.getRow(); pageCount
(rowCount%pageSize==0)?(rowCount/pageSize):(rowCount/pageSize+1); } catch (SQLException e) { e.printStackTrace(); rowCount = 0; pageCount = 0; } } showNewsList.jsp主要代码(负责首页新闻题目列表): <% NewsBean news = null; news = (NewsBean)session.getAttribute(\ if(news==null){ response.sendRedirect(\ }else{ news.setPageSize(12); CachedRowSetImpl row = news.getRow(); int pageCount = news.getPageCount(); int currentPage = news.getCurrentPage(); int rowCount = news.getRowCount(); int pageSize = news.getPageSize(); %>
String str;//声明一个截取时间的临时字符串 for(int i = 1; i<= pageSize;i ++){ str = row.getString(\ %> ' target=\ ><%=row.getString(\ <%=str.substring(0,11) %>
21
=