已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
JIANGXI AGRICULTURAL UNIVERSITY本 科 毕 业 论 文(设 计) 题目: 江农数学建模网站的设计与实现 学 院: 理学院 姓 名: 学 号: 2 专 业: 信息与计算科学 班 级: 信计1101 指导教师: 职 称:副教授 二0一五年五月目录摘要IAbstractII1 引言11.1 项目背景11.2 网站开发的意义、目标和内容11.2.1 网站开发的意义11.2.2 网站开发的目标11.2.3 网站开发的内容22 网站开发使用的相关技术22.1 jQuery22.2 Ajax22.3 EasyUI22.4 Spring32.5 Struts232.6 Hibernate33 网站开发需求分析43.1 开发环境需求43.2 功能性需求43.2.1 登录注册43.2.2 网站首页53.2.3 数模协会53.2.4 新闻公告53.2.5 个人中心53.3 数据需求63.4 可行性分析63.4.1 技术可行性分析63.4.2 经济可行性分析64 网站总体设计74.1 网站设计74.1.1 模型层(Model layer)74.1.2 控制层(Controler layer)94.1.3 视图层(View layer)94.2 数据库设计104.2.1 用户信息表 (MMA_USER)104.2.2 专业属性表 (MAJORATTRIBUTE)114.2.3 枚举表 (ENUMNFO)114.2.4 新闻信息表 (NEWS)114.2.5 阅读新闻日志表 (READNEWSLOG)125 网站功能实现125.1 登录注册125.1.1 用户登录125.1.2 退出登录155.1.3 用户注册155.2 网站首页175.3 数模协会185.4 新闻公告215.5 个人中心245.5.1 普通用户登录245.5.2 管理员登录286 网站测试307 结束语31参考文献32附录33致谢36摘要江农数学建模网站,全称江西农业大学数学建模协会官方网站,专为江西农业大学数学建模协会而建,主要目的是能够帮助协会更好的管理日常事务。管理员登录可以发布协会相关新闻资讯,管理用户信息等。本网站是基于当前流行的一种开发模式B/S(Browser/Service,浏览器/服务器)架构模式,比传统的C/S架构更为的简便,利于维护和使用。网站采用MVC(Model View Controller)设计模式,具有很好的解耦性,利于程序的维护。前台程序主要使用了jQuery实现网站的动态效果;Ajax做异步请求,实现网站的局部刷新技术,给用户更好的体验;以及使用前端框架EasyUI作为网站页面的布局。后台使用SSH(Spring/Struts2/Hibernate)框架,以Spring管理后台对象,Struts2主要处理前台请求,Hibernate用来操作数据库。数据库则使用现阶段企业用的比较多的Oracle数据库。关键词:jQuery;Ajax;EasyUI;SSH;OracleIAbstractJiang Nong Mathematical Modeling website,its full name is Jiangxi agricultural university mathematical modeling associations official website.Specially ,it is built for mathematical modeling association of Jiangxi agricultural university and the main purpose is to help better manage the daily affairs of the Association. This website is based on a popular development model -B/S (Browser/Service) architecture model, it is more simple than the traditional C/S architecture and conducive to the maintenance and use. Website adopts MVC (Model View Controller) design pattern, with good decoupling, which will help maintain the program. Foreground program mainly used jQuery to achieve dynamic effects website; Ajax do asynchronous request to achieve partial rendering technology, giving the user a better experience; and the front-end frame EasyUI was used as the layout of the web page.Background uses SSH (Spring/Struts2/Hibernate) framework, with Spring management background object, struts2 mainly deal with the front desk requests, Hibernate for database operation.And database uses Oracle databases which were used frequent by enterprise at this stage.Keywords: jQuery; Ajax; EasyUI; SSH; Oracle.II1 引言1.1 项目背景江西农业大学数学建模协会成立于2011年12月8日,现如今已经是协会的第四年,也有一定的成就。协会事情相对比较杂,比较乱,一有事情则会很忙,特别是在数学建模国赛报名期间,会员们不但要忙着自己的学业,而且还要忙着国赛的各种事情,这必然会影响会员的学业;然而没有事情的时候就会很闲,会员之间几乎很少见面,这必然会导致会员之间的凝聚力下降;再者,协会的宗旨是“培养数学建模人才,提高团队合作意识”,所以协会成立的目的就是培养会员对数学建模的兴趣和提高会员的建模水平。因此协会要有更大更好的发展,必须建立一个良好的管理模式,本网站的开发不但可以很好的管理协会日常事务,而且有助于提高会员乃至本校全体师生对数学建模的认知和兴趣。制作官方网站也一直是协会的一个梦想。1.2 网站开发的意义、目标和内容1.2.1 网站开发的意义大数据的兴起,世界正开始从移动互联网时代迈向大数据时代。大数据给人们带来的利益是不可以估量的,在这个数据爆炸的时代,不但一个企业的发展离不开大数据,政府的发展的也是离不开大数据的。然而数据的分析离不开数学知识和IT力量的支持,数学建模也正是利用数学的手段去分析现实生活中问题,然后通过软件计算相关结果。社会的发展必须依靠年轻人,大学生作为未来社会的一个重要成员,必须时刻想着将来能够为祖国事业做出一份贡献,对数学建模的学习有助于朝大数据的方向发展。然而数学建模网站有助于提高用户对数学建模的认知,以及发现更多具有能力的成员。1.2.2 网站开发的目标1、 实现普通用户注册;2、 实现普通用户登录;3、 实现查询、修改用户信息;4、 实现管理员发布管理新闻公告内容以及用户查看新闻公告内容;1.2.3 网站开发的内容1、 用户注册登录:未注册用户访问本网站的权限是最低的,只有注册登录成为本网站会员后具有更多的权限;2、 网站首页:网站首页是一个网站的核心,进入首页就能对网站内容一目了然,网站首页包括协会新闻公告、协会简介等内容;3、 数模协会:数模协会包括协会简介和协会风采两个模块,用户点击协会简介可以看到协会介绍相关内容;4、 新闻公告:通过新闻公告模块,用户可以了解协会以及学校相关资讯和通告;5、 个人中心:个人中心根据登录用户的权限不同提供不同的功能,未登录用户无法访问个人中心,提示登录后继续访问;普通用户登录可以查看、修改个人资料;管理员登录可以查看和修改本网站的所有用户资料、发布新闻消息等。2 网站开发使用的相关技术2.1 jQueryjQuery是一个优秀的JavaScript框架,一个轻量级的JavaScript库,jQuery兼容各种浏览器,使用户更方便的处理HTML、实现动画效果,并且为网站使用Ajax交互提供方便。2.2 AjaxAjax是Asynchronous JavaScript and XML(异步的JavaScript和XML)的缩写,是一种用来改善用户体验的技术,其实质是使用异步XMLHttpRequest对象异步地向服务器发送请求,服务器返回部分数据,而不是一个完整的页面,以页面无刷新的效果更改页面中的局部内容,比如用户登录时,用户名密码输入有误则返回错误信息,只是局部改变网页内容,而不是刷新整个登录页面,给用户一个很好的体验。2.3 EasyUIEasyUI是一种基于jQuery的用户界面插件集合,使用EasyUI不需要写太多的、太复杂的JavaScript代码,并且只需要写一些简单的HTML标记就可以定义页面。2.4 SpringSpring是一个开源的轻量级的应用程序开发框架,Spring提供了一个整体的方案,用户可以使用Spring整合其他第三方框架,自由选择采用哪种技术开发,比如本网站使用的Struts2和Hibernate,Spring可以很好的整合这两大框架。在Spring中,任何Java类和JavaBean都被当做Bean处理,实现了IOC和AOP机制,简化Bean的管理与维护。本网站主要利用Spring来管理Action、Service和Dao层对象。在Spring中还可以简单的配置数据库信息。2.5 Struts2Struts2是用来开发MVC应用的程序的框架,客户端(浏览器)向Action发送一个请求(Request),服务器接收浏览器发来的请求,并做相应的处理,并将处理结果响应给浏览器(Response)。Stuuts2工作原理:图1 sturts2工作原理资料来源:Struts2官方网站:/2.6 HibernateHibernate是一个Java领域的持久化框架,所谓持久化狭义的理解为把对象永远保持的数据库中,广义的理解为“持久化”包括和数据相关的各类操作,比如数据的更新、保存、删除以及查询等。Hibernate还是一个ORM(Object/Relation Maping) 对象关系映射,数据库与Java对象之间的关系为表1 Hibernate对象关系映射表面向对象概念(Java)面向关系概念(关系数据库,如Oracle)类表对象表的行(数据记录)属性表的列(字段)ORM的思想就是将数据库中的表中的记录映射成Java类中的对象,以对象的形式展现数据库表中记录,更符合Java面向对象的思想。3 网站开发需求分析3.1 开发环境需求一台普通的PC机,笔记本或者台式机、Myeclipse10.0、JDK1.6.0_34、Tomcat6.0和Oracle数据库。3.2 功能性需求3.2.1 登录注册用户未登录时网站右上角会显示登录注册链接,登录后显示登录用户名和退出链接,用户点击退出确认后又会显示登录注册链接。用户注册信息包括以下信息:用户名、真实姓名、密码、性别、院系、专业、学号等个人基本信息。注册基本要求:除真实姓名和学号外,其他字段都必须填写,且不能为空字符串。用户登录,先判断用户名密码是否输入格式正确,输入正确后再向后台请求验证输入用户名和密码是否匹配。 图2 登录流程图3.2.2 网站首页用户进入协会网站,首先进入的是网站首页,在网站首页展示给用户的是社团快讯、通知公告、资讯头条以及协会简介等。3.2.3 数模协会数模协会模块第一版只有协会简介子模块,第二期会有协会风采等内容。协会简介:用户点击进入协会简介,可以查看到江西农业大学数学建模协会简介,这部分内容是所有用户都能查看,包括游客(未登录用户)。3.2.4 新闻公告新闻公告模块分为以下三个模块:社团快讯、通知公告、资讯头条。三个模块展现的形式一致,点击进入任意一个模块,首先进入的是新闻列表,分页展现,每页显示10条消息;点击其中一条新闻就可以进入新闻内容页查看新闻具体信息,包括新闻标题,发布时间,浏览记录以及上一条、下一条新闻。其中社团快讯是指发布本协会乃至本校新闻资讯内容;通知公告则发布协会相关通知,比如数学建模竞赛报名的通知等;资讯头条发布协会或者本校的头条新闻。3.2.5 个人中心访问个人中心是有权限的,游客无法进入个人中心模块,只有登录后才能访问,个人中心又根据普通用户登录和管理员登录具有不同的权限,普通用户登录只能查看个人资料,目前第一版只能查看、修改个人的注册信息,包括用户名密码等的查看与修改;管理员登录可以查看和修改所有用户资料、查询和发布新闻消息内容等功能。3.3 数据需求网站中主要包含的数据需求有:用户/管理员信息、新闻信息、用户查看新闻日志信息。数据库E-R图如图3所示:图3 数据库E-R图3.4 可行性分析3.4.1 技术可行性分析Struts2、Spring、Hibernate都已经是很成熟的框架,完全可以实现网站的需求,而且本人在公司实习期间用的就是SHH+jQuery+Ajax+EasyUI开发江西农信电子档案系统,对这些技术掌握的还是比较牢靠的。3.4.2 经济可行性分析本网站是一个小型网站,只需要一台笔记本电脑外加安装开发环境即可开发,所以不存在经济问题。4 网站总体设计本网站系统采用了MVC设计模式。控制层由Action和Struts2配置文件完成前台发送请求,由Struts2处理请求,传给Action,传输数据使用Dto对象接收;模型层由Dao和Service共同完成,Action将数据传输给Servcie业务逻辑层,Service在根据需求去调用Dao层访问数据库;视图层则是由Jsp文件完成。4.1 网站设计4.1.1 模型层(Model layer)该层由Dao和Service组成,Dao由Hibernate实现,主要是数据库的访问;Service负责业务逻辑的处理。1 数据访问层(Dao)的设计1)LoginDao:用户注册Dao,用作用户登录数据操作,用户登录时通过HQL查询用户信息,另外用户登录是需要判断用户是否为管理员,管理员用户名中文值存在枚举表中,需要根据输入的用户名去枚举表中查找。具体方法如下:(此处省略方法的实体,方法实体见网站功能实现,下同)public List findObjectWidthHQL(String hql) throws Exception;2)RegisterDao:用户注册Dao,用作用户注册的Dao,包括插入新注册用户信息和查询用户输入的用户名是否存在。具体方法如下:public void insertUser(User user) throws Exception;public List findUserByUserName(String hql);3)LoadAttEnumDataDao:加载院系专业Dao,该Dao的主要功能是查询我校所有专业信息,包括专业枚举和所属院系枚举;以及通过枚举去枚举表中查找枚举值,比如专业属性表有数据专业枚举2101,所属院系枚举是21,在通过2101和21去枚举表中查找:21的枚举值是理学院,2101的枚举值是信息与计算科学。这样设计的好处就是有利于维护我校专业与院系。具体方法如下:public List findMajorAttr(String hql) throws Exception;public List findEnunFo(String hql) throws Exception;4)MessagesDao:查看新闻日志,用户点击新闻进入新闻内容页后就会写一条查看日志,以及查询某条新闻的日志数即新闻被阅览的次数。具体方法如下:public void insertLog(ReadNewsLog rLog) throws Exception;public int findTotalCount(Stringhql)/该方法来自深圳市北辰德公司Jar开发包5)PersonCenterDao:个人中心Dao,该Dao主要包含用户信息更新方法、用户信息查询(分页)、查询枚举表方法。具体方法如下:public void update(String hql)throws Exception;public List findByPage(int startIndex,int pageSize,String hql)throws Exception;public List findEnunFo(String hql)throws Exception;2 业务逻辑处理设计(Service)2)IndexService:网站首页Service,该类包含查询资讯头条、社团快讯、通知公告、读取轮播器图片文件、协会简介等方法,具体方法如下:public HashMap informationMethod() throws Exception;public HashMap newsAndNoticeMethod(String dir) throws Exception;public HashMap imagesMethod(HttpServletRequest request) throws Exception;public HashMap introMethod(int index);3)LoginService:该类包含用户登录操作方法、根据枚举Key获取Value方法。具体方法如下:public HashMap listUser(UserDto userDto) throws Exception;public String getEnumValueByKey(String enumKey) throws Exception;4)RegisterService:注册Service类,该类包含用户注册方法、验证用户名注册的用户名是否已被注册。具体方法如下:public HashMap insertUser(UserDto userDto) throws Exception;public boolean isHas(String userName) throws Exception; 5)LoadAttEnumDataService:加载专业属性Service类:该类主要用来加载注册和修改用户信息时院系专业的加载,以及根据枚举获取枚举值的方法。具体方法如下:public HashMap loadAttEnum() throws Exception;public String getEnumValueByKey(String enumKey) throws Exception;6)MessagesService:新闻公告Service:该类包含:读取新闻标题和时间(新闻列表方法,使用分页查询,每页显示10条)、读取新闻内容方法(包括从首页、右侧公告快速导航栏、新闻公告页面进入新闻内容页,其中首页和右侧快速导航栏进入是通过新闻顺序ID查找新闻内容,而首页是通过新闻标题查找新闻内容。)、写阅读新闻日志方法、获取新闻阅读次数方法。具体方法如下:public HashMap readMessagesName(String newsType,int startIndex,int pageSize);public HashMap readMessagesContentByName(String newsType,String newsName,HttpServletRequest request) throws Exception;public HashMap readMessagesContentByIndex(String newsType,String index,HttpServletRequest request) throws Exception;public void writeLog(HttpServletRequest request,String newsName,String filePath) throws Exception;public Integer getCount(String newsName) throws Exception;4.1.2 控制层(Controler layer)1 Action层的设计1)com.jxausmw.mmassociation.index.action包IndexAction:首页Action,包括资讯头条、社团快讯和通知公告、轮播器、数模协会模块方法。2)com.jxausmw.mmassociation.login.action包,该包含用户登录注册以及加载院系专业Action。LoginAction:用户登录Action,包括用户登录方法,用户退出登录方法;RegisterAction:用户注册Action;LoadAttEnumDataAction:加载院系专业信息Action3)com.jxausmw.mmassociation.messages.action包,该包是新闻公告ActionMessagesAction:新闻公告Action,包括加载资讯头条、社团快讯、通知公告新闻列表和新闻内容页方法。4)com.jxausmw.mmassociation.personcenter.action包,该包是个人中心ActionPersonCenterAction:个人中心Action,包括用户信息修改方法,用户信息查询(分页)方法。4.1.3 视图层(View layer)视图层是由Jsp文件实现,主要用来展示控制层处理返回的数据,是和用户直接接触的一个模块,用户在浏览器中所能看到的就是通过Jsp页面实现的。视图层Jsp文件设计如下:1、header.jsp:该文件是网站的头文件,因为网站的头部设计都是一样的,所以这是一个公共的Jsp,其他Jsp文件只要该文件就能将其引入;2、foot.jsp:同理这是网站尾部公共部分,其他Jsp文件只要include该文件就能将其引入;3、index.jsp:首页展示页面;4、messages.jsp:新闻公告展示页面;5、brief.jsp:协会简介展示页面;6、personcenter.jsp:个人中心展示页面;7、modifiymess.jsp:个人中心修改用户信息弹出框公共部分,该Jsp文件被include在个人中心展示页面;8、common.jsp:模块右侧快速导航栏公共Jsp,该页面引用在新闻公告、协会简介页面。4.2 数据库设计江农数模网使用的是Oracle数据库,共有以下6张表:用户信息表、专业属性表、枚举表、新闻信息表、阅读新闻日志表、资料文件信息表。各表具体设计如下:4.2.1 用户信息表 (MMA_USER)用户信息表存的是用户注册后提交的个人信息,包括字段用户ID:用户id,用户名:username,真实姓名:realname,密码:password,性别:gender,院系:department,专业:major,学号:studentid。具体设计如下表:表2 用户信息表(MMA_USER)字段数据类型必填(是/否)PK(是/否)字段名称idNUMBER是是用户IDusernameVARCHAR是否用户名realnameVARCHAR否否真实姓名passwordVARCHAR是否密码genderVARCHAR是否性别departmentVARCHAR是否院系majorVARCHAR是否专业studentidVARCHAR否否学号4.2.2 专业属性表 (MAJORATTRIBUTE)专业属性表记录的是我校所有专业枚举值以及所属院校枚举值。包括以下字段:专业ID:id,专业枚举:major,所属院系:department。具体设计如下表:表3 专业属性表(MAJORATTRIBUTE)字段数据类型必填(是/否)PK(是/否)字段名称idNUMBER是是专业IDmajorVARCHAR是否专业枚举departmentVARCHAR是否所属院系4.2.3 枚举表 (ENUMNFO)枚举表记录的是网站常用词Value以及枚举Key,这样设计的目的是有利于词语的维护,比如学校专业名称和院系名称都会变化,若在程序代码中直接使用院系或者专业中文名称的话不利于维护,以枚举的方式存在数据库中,只要修改枚举值(Value),而枚举(Key)不变,程序中使用Key,若有添加或删除,只要添加或删除键值对(Key-Value)即可。具体(Key-Value)键值对见附录1。枚举表包含以下字段:枚举ID:id,枚举:typeid,枚举值:enumvalue。具体设计如下表:表4 枚举表(ENUMNFO)字段数据类型必填(是/否)PK(是/否)字段名称idNUMBER是是枚举IDtypeidVARCHAR是否枚举enumvalueVARCHAR是否枚举值4.2.4 新闻信息表 (NEWS)新闻信息表记录的是管理员发布新闻消息信息,包括以下字段:新闻ID:newsid,新闻类型:newstype,新闻标题:newsname,发布日期:releasedate,发布人:releasename,新闻文件地址:fileapath。具体设计如下表:表5 新闻信息表(NEWS)字段数据类型必填(是/否)PK(是/否)字段名称newsidNUMBER是是新闻IDnewstypeVARCHAR是否新闻类型newsnameVARCHAR是否新闻标题releasedateVARCHAR是否发布日期releasenameVARCHAR是否发布人fileapathVARCHAR是否新闻文件路径4.2.5 阅读新闻日志表 (READNEWSLOG)阅读新闻日志表记录的是用户点击新闻进入新闻内容页后,系统自动添加的阅读日志,主要用于记录新闻被阅览的次数,每一条记录代表一次阅览。包括以下字段:日志ID:id,新闻标题:newsname,新闻文件路径:filepath,阅读用户:username,阅读时间:readtime。具体设计如下表:表6 阅读新闻日志表(READNEWSLOG)字段数据类型必填(是/否)PK(是/否)字段名称idNUMBER是是新闻IDnewsnameVARCHAR是否新闻标题filepathVARCHAR是否新闻文件路径usernameVARCHAR是否阅读用户readtimeVARCHAR是否阅读时间5 网站功能实现5.1 登录注册登录注册模块,前端代码实现使用的是EasyUI框架,主要利用了EasyUI的表单(form)、验证框(validatebox)、对话框窗口(dialog)、消息窗口(messager)等组件。5.1.1 用户登录用户点击登录弹出如下登录对话框:图4 用户登录界面当用户输入用户名或者密码时,会更具用户输入的信息作出判断,若格式不正确会给相应的提示,比如用户输入空格字符串的时候提示用户名不能为空字符串等。图5 用户输入验证当用户输入用户名密码格式正确后,点击登录,进入到Struts2的配置文件struts.xml中,代码如下: resJSONObject 其中name属性代表请求的action地址:只要地址符合loginAction!都会进入到这个action;“*”处接任意字符,一般为Action中的方法名,如:loginAction!login,login为相应Action中的方法名。method属性定义方法名,其中的1为通配符,表示和action配置中第一个*匹配,即上面说的*一般为方法名。class=”loginAction”,表示类名,struts会根据这个类名去会去Spring配置文件中寻找ID也为loginAction的bean,bean中有配置相关class属性为某个Action类的全路径。Result定义返回结果类型,name属性表示返回名,type返回数据类型为json,param定义返回参数变量为resJSONObject。然后进入到相应的Action中进行相应处理,根据用户提交的用户名去用户信息表中查找是否存在这个用户名,若不存在,则返回界面提示用户名错误;若用户名正确,则根据查询出来的数据库记录中的密码和用户输入的密码是否匹配,若不匹配则返回前端提示密码不正确,若密码匹配则登录成功,前端弹出提示框:图6 登录成功提示消息 点击确定后,页面刷新,显示登录用户信息和退出按钮。 后台具体代码实现如下(本文只列出部分Service代码,Action层和Dao层代码见具体项目文件):Service层代码:public HashMap listUser(UserDto userDto) throws ExceptionHashMap resMap = new HashMap();tryString userName = userDto.getUserName();/用户输入用户名String password = userDto.getPassword();/用户输入密码String hql = from User a where a.userName= + userName + ;/hqlList list = (List) loginDao.findObjectWidthHQL(hql);if(list.size() = 0)resMap.put(userNameMsg, 用户名不正确!);else if(list.size() = 1)User user = list.get(0);String passwordSer = user.getPassword();if(password.equals(passwordSer)/密码验证正确String stystemAdmin = getEnumValueByKey(userName);if(!.equals(stystemAdmin)/系统管理员resMap.put(stystemAdmin, stystemAdmin);resMap.put(flag, true);else/密码不正确resMap.put(passwordMsg, 密码不正确!);catch(Exception e)throw e;return resMap;5.1.2 退出登录用户登录后,点击退出链接弹出退出确认框,如图7所示:图7 退出确认框点击取消则取消退出,点击确定后进入struts.xml配置文件,配置代码同登录。然后进入相应的Action,后台只做删除session处理,所以只有Action方法。若是在个人中心页面退出时返回的网站首页。代码见项目文件。5.1.3 用户注册用户点击注册后会弹出如下登录框,用户根据需要填写的信息填写,带红色*的为必填项,用户输入的信息必须符合要求。图8 用户注册界面当用户输入信息格式都正确后点击确定后,进入struts.xml配置文件,配置代码如下(以下只列出Service层代码,其他代码见项目文件):Service层代码如下:public HashMap insertUser(UserDto userDto) throws ExceptionHashMap resMap = new HashMap();try String gender = userDto.getGender();/获取性别枚举,1为男,2为女String userName = userDto.getUserName();/用户名boolean flag = isHas(userName);/判断用户名是否存在if(!flag)/存在if(1.equals(gender)userDto.setGender(男);elseuserDto.setGender(女);User user = new User();BeanUtils.copyProperties(user, userDto);/将dto类复制给pojo类registerDao.insertUser(user);/插入User对象resMap.put(flag, true); catch (Exception e) throw e;return resMap;5.2 网站首页网站首页展现的主要有三个部分:一是新闻公告通知公告、社团快讯和资讯头条部分内容,以及活动相关照片轮播器;二是数模协会模块社会简介等内容;再者就是每页都一样的导航栏。其中新闻列表设计思路是管理员通过个人中心发布新闻消息,上传新闻对应文件到指定目录,首页和新闻公告部分利用IO流原理读取新闻文件。图9 首页界面1图10 首页界面2各模块后台代码见项目文件。5.3 数模协会数模协会模块占时只有协会简介分模块,从导航栏数模协会模块进入协会简介分模块,进入struts.xml文件,根据相应请求去类路径的index/messages/mma目录下读取文件“协会简介.txt”文件内容,返回给JSP页面。页面效果图如下:图11 协会简介展现图Service层代码实现如下:public HashMap introMethod(int index) throws ExceptionHashMap resMap = new HashMap();/定义返回结果集类型String file = ;/需要加载的文件String filePath = ;/文件绝对物理路径FileInputStream fis = null;/定义字节输入流InputStreamReader isr = null;/定义字符输入流(字符转换流)BufferedReader br = null;/定义缓冲字符输入流if(index = 1)/参数为2:协会简介file = 协会简介.txt;filePath = thisPath + index/messages/mma/ + file;File files = new File(filePath);if(files.isFile()try fis = new FileInputStream(files);isr = new InputStreamReader(fis,utf-8);br = new BufferedReader(isr);String content = ;String lineStr = null;while(lineStr=br.readLine()!=null) content = content.concat( +lineStr+);resMap.put(content, content); catch (Exception e) e.printStackTrace();throw e;finallybr.close();isr.close();fis.close();elseresMap.put(content, null);else if(index = 2)file = 机构设置.txt;else if(index = 3)/参数为3:联系我们file = 联系我们.txt;filePath = thisPath + index/messages/mma/ + file;/文件地址File files = new File(filePath);if(files.isFile()tryfis = new FileInputStream(files);isr = new InputStreamReader(fis,utf-8);br = new BufferedReader(isr);String lineStr = null;/用于读取每一行内容Map map = new HashMap();while(lineStr=br.readLine()!=null)int num = lineStr.indexOf(:);/冒号所在下标索引if(联系方式.equals(lineStr.substring(0,num)String telphone
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无菌导尿术考试试题及答案解析及答案
- 研究性学习报告范文(通-用4篇)
- 行政执法考试复习试题库及答案及答案
- 医疗器械法律法规试题卷及答案
- 2025年广东省清远市八年级历史上册期中考试试卷及答案
- 2026年内蒙古呼和浩特市社区工作者考试题库及答案
- 医学课件-学生青春期健康教育常识及保健要点
- 2026年中国不锈钢热轧带市场调查研究报告
- 2026年中国不锈钢专用炒锅市场调查研究报告
- 2026年中国TPR/TPE玩具料市场调查研究报告
- 北师大版物理九年级全一册《分子动理论》同步练习题(带答案)
- 分公司章程范本
- 2026区域农产品冷链物流中心布局优化与多品经营成本控制规划
- 丰县2026年社区工作人员和村干部招聘考试试卷-含答案解析
- 血液净化在临床中的应用与护理
- 2026新教科版科学六年级上册全套分组演示实验报告(共28个实验可用下料填写实验报告单)
- 暖通专业专项施工方案
- 2026年新教材人教PEP版五年级上册英语Unit 2 My feelings教案
- 2026年高级工保安员试题及答案
- 2026年考研教育学学硕教育学专业基础综合311真题(试卷+解析)
- 中图版七年级地理上册《2.1地球和地球仪》同步练习题(带答案)
评论
0/150
提交评论