版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山西大学商务学院本科毕业设计PAGE18目录1. 绪论 11.1课题研究的目的 11.2课题研究的意义 12.系统开发环境及技术简介 22.1系统开发环境 22.1.1Eclipse 22.1.2数据库简介 22.1.3Tomcat 22.2系统开发的思想与技术 22.2.1JSP技术与MVC模式以及系统的基本框架 22.2.2S.S.H框架的优点 33.系统总体设计 53.1总体功能模块 53.2系统管理员功能模块 53.3用户功能模块 53.4板块管理员功能模块 63.5系统业务描述 63.6程序流程图 74.系统详细设计与实现 84.1系统和数据库的配置 84.2概念模型设计 84.3数据库逻辑模型 84.4数据库表结构 94.5平台数据表的设计 105.系统功能实现 135.1程序的类图 135.1.1板块Bankuai类图 135.1.2回复Huifu类图 145.1.3帖子Tiezi类图 155.1.4用户User类图 165.2程序的时序图 175.2.1板块模块时序图 175.2.2回复模块时序图 185.2.3帖子模块时序图 195.2.4用户模块时序图 195.3系统实现的主要框架 205.3.1SSH框架 205.3.2hibernate配置文件 205.3.3struts配置文件 215.3.4spring配置文件 215.4系统功能实现的主要模块 235.4.1网站首页 235.4.2用户注册页面 235.4.3管理后台登陆页面 255.4.4管理后台注册用户管理页面 266.系统调试与测试 286.1软件测试的目的 286.2软件测试的任务 286.3测试环境 29参考文献 29山西大学商务学院毕业论文 基于SSH的居民社区交流站点的设计与实现PAGE17基于SSH的在居民社区交流站点的
设计与实现学生姓名:指导教师:随着信息时代的不断发展,论坛这个概念在人们的生活中变得不可或缺的一部分。在论坛里,可以自由发表自己的观点和对论坛的主题发表意见,我们还可以对网友的问题及时地解决,获取对自己有用的知识,总之,对人们的生活中占据了很重要的一部分。本毕业设计的内容是设计并且实现一个基于WEB技术的BBS论坛,该BBS论坛主要以J2EE作为开发基础,主要使用了STRUTS2+SPRING+HIBERNATE等多种框架的结合使用,用ECLIPSE作为开发工具,以SQLSERVER作为数据库,以MACROMEDIA公司的DREAMWEAVER作为界面美化工具,使用JAVA语言开发,页面采取JSP动态页面开发技术。该系统界面简单、操作方便,容易维护。关键词:BBS论坛S.S.H(STRUTS2+SPRING+HIBERNATE)JAVAJSP绪论1.1课题研究的目的随着人民生活水平的提高,居民社区逐渐成为了普遍的住房环境。住户更希望自己居住在一个安全、热情的和谐社区里,这就对社区管理工作提出了更高的要求。如何快捷方便地解决住户与管理部门信息交换,及时为住户解决生活中的各种纠纷,成为管理工作的重点。社区交流站点就是针对这一问题进行设计实现的。现在居民社区管理出现的种种问题,管理部门往往不能及时得到消息并且在第一时间为广大住户解决,而且在信息传播、与住户沟通之间困难重重。针对这一现象,社区交流站点设计的实现将会建立这一桥梁,沟通住户与社区部门,达到共建和谐社区的目标。1.2课题研究的意义社区交流站点是倾听民意、汲取民智的内在需要,在这个足不出户的网络时代增进了邻里之间的沟通和交流,居民能在这里对社区的管理提出建议,反应社区不和谐现象。居民积极参与到社区建设,既可以分享社区的利益,又能够承担社区内的责任,从而达到共建和谐社区的目标。同时社区的活动宣传、通知等管理工作将更加快捷方便。2.系统开发环境及技术简介2.1系统开发环境2.1.1Eclipse在开发本平台中所用到的开发工具就是是知名的java项目开发工具Eclipse。利用Eclipse,我们可以在数据库和J2EE的开发、发布,以及在应用程序服务器的整合当中极大地提高系统的工作效率。Eclipse是一个功能非常丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。在结构上,Eclipse的特征可以被分为7类:J2EE模型,WEB开发工具,EJB开发工具,应用程序服务器的连接器,J2EE项目部署服务,数据库服务。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。Eclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。2.1.2数据库简介SQLServer是一个关系数据库管理系统。它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。Sybase则较专注于SQLServer在UNIX操作系统上的应用。2.1.3TomcatTomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。这里的诀窍是,当配置正确时,Apache为HTML页面服务,而Tomcat实际上运行JSP页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。2.2系统开发的思想与技术2.2.1JSP技术与MVC模式以及系统的基本框架本系统采用jsp技术,基于MVC模式开发,使用SSH框架(struts2、spring、hibernate)来增加系统的开发速度。所谓的MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层。一般来说程序就是在数据库和页面之间起桥梁作用的,jsp页面请求先到action,再到dao,再回到action,回到jsp页面,action主要处理来自页面的请求,dao主要是和数据库的交互,struts2主要用在action,处理来自页面的请求,处理完请求后跳转回页面。Hibernate主要用在dao,包括对数据库的增、删、改、查的操作,spring控制程序的流程。2.2.2S.S.H框架的优点S.S.H框架是J2EE应用中struts2+spring+hibernate三大免费开源框架的结合使用,它可以看成工具,也是中间件。他是用来提高我们的开发效率,提高我们软件产品的可维护性、可扩展性乃至敏捷性的。他们里面有很多优秀的设计理念及模式应用。比如,struts属于MVC框架,关键是要了解MVC的概念及大致原理;而hibernate属于ORM系统,属于持久层的解决方案,同样需要对ORM的概念及原理有一个总体的了解。而spring属于应用程序框架,其核心是IOC容器以及AOP,Spring中还集成了很多适用东西,比如对JDBC的封装、自己的MVC、对动态语言的简洁访问等。它由以下3个框架构成:1.Struts2框架Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Customtaglibrary。其基本构成如图1所示。图1Struts2框架2.Spring框架Spring的核心是个轻量级(Lightweight)的容器(Container),它是实现IoC(InversionofControl)容器、非侵入性(Nointrusive)的框架,并提供AOP(Aspect-orientedprogramming)概念的实现方式,提供对持久层(Persistence)、事务(Transaction)的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API(ApplicationInterface)提供一致的模型封装,是一个全方位的应用程序框架(Applicationframework),除此之外,对于现存的各种框架(Struts、JSF、Hibernate等),Spring也提供了与它们相整合的方案。Spring框架由以下7个部分组成如图2所示。图2Spring框架3.Hibernate框架Hibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。Hibernate框架构成如图3所示。图3Hibernate框架3.系统总体设计3.1总体功能模块本程序主要分系统管理员,板块管理员,用户三个用户权限。系统功能图如图4所示。图4系统功能3.2系统管理员功能模块系统管理员的主要功能板块管理、注册用户管理。系统管理员的功能图如图5所示。图5系统管理员的功能图3.3用户功能模块用户的主要功能有注册登录功能、浏览帖子,浏览回复功能、发帖。发回复功能、查看别人的空间、个人信息的管理、我的帖子管理、我的回复管理。用户的功能图如图6所示。图6用户的功能图3.4板块管理员功能模块板块管理员的主要功能有帖子合法性管理、回复合法性管理、精华帖管理、版主推荐管理。板块管理员的功能图如图7所示。图7板块管理员功能图3.5系统业务描述本程序主要分系统管理员,板块管理员,用户三个用户权限。系统管理员的主要功能板块管理、注册用户管理;用户的主要功能有注册登录功能、浏览帖子,浏览回复功能、发帖。发回复功能、查看别人的空间、个人信息的管理、我的帖子管理、我的回复管理;板块管理员的主要功能有帖子合法性管理、回复合法性管理、精华帖管理、版主推荐管理。系统业务用例图如图8所示。图8系统业务用例图 3.6程序流程图用户注册流程图如图9所示。图9用户注册流程图用户登陆流程图如图10所示。图10用户登陆流程图4.系统详细设计与实现4.1系统和数据库的配置系统按通用的B/S(浏览器、服务器)模式进行设计B/S结构如图11所示。图11B/S结构图数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。4.2概念模型设计概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本系统E-R图如图12所示。图12系统E-R图4.3数据库逻辑模型板块表(主键、板块图片、板块名称、添加时间、是否删除标志、板块简介、板块管理员ID)回复表(主键、回复内容、添加时间、是否删除标志、关联的帖子ID、关联的用户ID)帖子表(主键、内容、添加时间、是否删除标志、点击数、回复数、最后回复时间、帖子类型、标题、是否推荐、板块ID、用户ID)用户表(主键、添加时间、是否删除标志、发帖数、回复数、简介、联系方式、密码、用户角色、头像、真实姓名、用户名)4.4数据库表结构(1)t_bankuai(板块表)t_bankuai的结构见表1所示。表1t_bankuai(板块表)名称类型空默认值备注idint(11)noauto_increment主键bankuaiimagepathvarchar(255)yes空板块图片Bankuaimingvarchar(255)yes空板块名称createtimedatetimeyes空添加时间deletestatusint(11)no0是否删除标志Infovarchar(255)yes空板块简介guanliidint(11)yes空板块管理员ID(2)t_huifu(回复表)t_huifu的结构见表2所示。表2t_huifu(回复表)名称类型空默认值备注idint(11)noauto_increment主键contenttextyes空回复内容createtimedatetimeyes空添加时间deletestatusint(11)no0是否删除标志tieziidint(11)yes空关联的帖子IDuseridint(11)yes空关联的用户ID(3)t_tiezi(帖子表)t_tiezi见表3所示。表3t_tiezi(帖子表)名称类型空默认值备注idint(11)noauto_increment主键contenttextyes空内容createtimedatetimeyes空添加时间deletestatusint(11)no0是否删除标志dianjishuint(11)no0点击数huifushuint(11)no0回复数huifutimedatetimeyes空最后回复时间leixingvarchar(255)yes空帖子类型titlevarchar(255)yes空标题tuijianvarchar(255)yes空是否推荐bankuaiidint(11)yes空板块IDuseridint(11)yes空用户ID(4)t_user(用户表)t_user的结构见表4所示。表4t_user(用户表)名称类型空默认值备注idint(11)noauto_increment主键createtimedatetimeyes空添加时间deletestatusint(11)no0是否删除标志fatieshuint(11)no0发帖数huifushuint(11)no0回复数jianjievarchar(255)yes空简介lianxifangshivarchar(255)yes空联系方式passwordvarchar(255)yes空密码roleint(11)no0用户角色touxiangvarchar(255)yes空头像truenamevarchar(255)yes空真实姓名useridvarchar(255)yes空用户名4.5平台数据表的设计根据平台的需求分析和功能模块的划分,所涉及的实体有板块、回复、帖子、用户。因此系统的定义数据库主要包含4张表:板块表t_bankuai,回复表t_huifu,帖子表t_tiezi,用户表t_user。(1)板块表t_bankuai表结构图如图13所示。图13板块表结构图建表的sql语句为:CREATETABLE`t_bankuai`(`id`int(11)NOTNULLauto_increment,`bankuaiimagePath`varchar(255)defaultNULL,`bankuaiming`varchar(255)defaultNULL,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`info`varchar(255)defaultNULL,`guanliid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKA77B36D61A46439E`(`guanliid`),CONSTRAINT`FKA77B36D61A46439E`FOREIGNKEY(`guanliid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;(2)回复表t_huifu表结构图如图14所示。图14回复表结构图建表的语句为:CREATETABLE`t_huifu`(`id`int(11)NOTNULLauto_increment,`content`text,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`tieziid`int(11)defaultNULL,`userid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKA05F8F4043D87651`(`userid`),KEY`FKA05F8F40F130A479`(`tieziid`),CONSTRAINT`FKA05F8F40F130A479`FOREIGNKEY(`tieziid`)REFERENCES`t_tiezi`(`id`),CONSTRAINT`FKA05F8F4043D87651`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;(3)帖子表t_tiezi表结构图如图15所示。图15帖子表结构图建表的语句为:CREATETABLE`t_tiezi`(`id`int(11)NOTNULLauto_increment,`content`text,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`dianjishu`int(11)NOTNULL,`huifushu`int(11)NOTNULL,`huifutime`datetimedefaultNULL,`leixing`varchar(255)defaultNULL,`title`varchar(255)defaultNULL,`tuijian`varchar(255)defaultNULL,`bankuaiid`int(11)defaultNULL,`userid`int(11)defaultNULL,PRIMARYKEY(`id`),KEY`FKA103283443D87651`(`userid`),KEY`FKA1032834B9867BBD`(`bankuaiid`),CONSTRAINT`FKA1032834B9867BBD`FOREIGNKEY(`bankuaiid`)REFERENCES`t_bankuai`(`id`),CONSTRAINT`FKA103283443D87651`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;(4)用户表t_user表结构图如图16所示。图16用户表结构图建表的SQL语句为:CREATETABLE`t_user`(`id`int(11)NOTNULLauto_increment,`createtime`datetimedefaultNULL,`deletestatus`int(11)NOTNULL,`fatieshu`int(11)NOTNULL,`huifushu`int(11)NOTNULL,`jianjie`varchar(255)defaultNULL,`lianxifangshi`varchar(255)defaultNULL,`password`varchar(255)defaultNULL,`role`int(11)NOTNULL,`touxiang`varchar(255)defaultNULL,`truename`varchar(255)defaultNULL,`username`varchar(255)defaultNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;5.系统功能实现5.1程序的类图5.1.1板块Bankuai类图板块Bankuai类图如图17所示。图17板块类图对应的程序代码:/***板块*/@Entity@Table(name="t_bankuai")publicclassBankuai{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否删除的状态,0表示未删除,1表示删除 privateStringbankuaiming;//版块名称 privateStringinfo;//简单介绍该板块 @ManyToOne @JoinColumn(name="guanliid") privateUserguanli;//版块管理者 privateDatecreatetime; privateStringbankuaiimagePath;5.1.2回复Huifu类图回复Huifu类图如图18所示。图18回复类图对应的程序代码:/***回复**/@Entity@Table(name="t_huifu")publicclassHuifu{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否删除的状态,0表示未删除,1表示删除 @Column(name="content",columnDefinition="TEXT") privateStringcontent; privateDatecreatetime; @ManyToOne @JoinColumn(name="userid") privateUseruser; @ManyToOne @JoinColumn(name="tieziid") privateTiezitiezi;5.1.3帖子Tiezi类图帖子Tiezi类图如图19所示。图19帖子类图对应的程序代码:/***帖子**/@Entity@Table(name="t_tiezi")publicclassTiezi{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否删除的状态,0表示未删除,1表示删除 privateStringtitle; @Column(name="content",columnDefinition="TEXT") privateStringcontent; @ManyToOne @JoinColumn(name="userid") privateUseruser; privateDatecreatetime; @ManyToOne @JoinColumn(name="bankuaiid") privateBankuaibankuai; privateintdianjishu;//查看数 privateinthuifushu;//回复数 privateStringleixing;//帖子精华求助活动 privateDatehuifutime;//最后回复 privateStringtuijian;//版主推荐5.1.4用户User类图用户User类图如图20所示。图20用户类图对应的代码://用户@Entity@Table(name="t_User")publicclassUser{ @Id @GeneratedValue privateintid; privateintdeletestatus;//表示是否删除的状态,0表示未删除,1表示删除 privateStringusername; privateStringpassword; privateDatecreatetime; privateintrole;//1表示系统管理员,3表示普通用户 privateStringtruename; privateStringlianxifangshi;//联系方式 privateintfatieshu;//发帖数 privateinthuifushu;//回复数 privateStringtouxiang;//头像 privateStringjianjie;//简介5.2程序的时序图5.2.1板块模块时序图板块模块时序图如图21所示。图21板块模块时序图5.2.2回复模块时序图回复模块时序图如图22所示。图22回复模块时序图5.2.3帖子模块时序图帖子模块时序图如图23所示。图23帖子模块时序图5.2.4用户模块时序图用户模块时序图如图24所示。图24用户模块时序图5.3系统实现的主要框架5.3.1SSH框架SSH框架就是struts2,spring,hibernate的简称,运用3个框架的集成协作使用,可以有效的提高代码编写的效率,从而有效的降低程序开发的周期。5.3.2hibernate配置文件<hibernate-configuration> <session-factory> <!--Databaseconnectionsettings--> <propertyname="proxool.pool_alias">DBPool</property> <propertyname="proxool.xml">proxool.xml</property> <propertyname="vider_class"> org.hibernate.connection.ProxoolConnectionProvider </property> <!--EchoallexecutedSQLtostdout--> <propertyname="show_sql">true</property><propertyname="format_sql">true</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <!--EnableHibernate'sautomaticsessioncontextmanagement--><propertyname="current_session_context_class">thread</property> <propertyname="hibernate.hbm2ddl.auto">update</property> <mappingclass="bbs.model.User"/> <mappingclass="bbs.model.Bankuai"/> <mappingclass="bbs.model.Tiezi"/> <mappingclass="bbs.model.Huifu"/> </session-factory></hibernate-configuration>这是Hibernate的配置文件,在该文件中<propertyname="proxool.xml">proxool.xml</property>首先加载了连接池的一个配置,就是加载了数据库的连接信息<propertyname="show_sql">true</property><propertyname="format_sql">true</property>表示控制台打印SQL语句,并格式化SQL语句<propertyname="dialect">org.hibernate.dialect.SQLDialect</property>表示当前数据库的语言是SQL <mappingclass="bbs.model.User"/> <mappingclass="bbs.model.Bankuai"/> <mappingclass="bbs.model.Tiezi"/> <mappingclass="bbs.model.Huifu"/>都表示当前数据库建立起来的表和类之间的映射关系,比如<mappingclass="model.User"/>表示User类和t_user表之间的建立起来的对应关系,其他也都类似。5.3.3struts配置文件<struts> <constantname="struts.objectFactory"value="spring"/> <constantname="struts.i18n.encoding"value="UTF-8"/> <packagename="index"namespace="/"extends="struts-default"> <actionname="index"method="index"class="indexAction"><resultname="success">index.jsp</result></action> <actionname="method"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action> <actionname="indexmethod"class="indexAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action></package></struts>这是struts的配置文件,该文件的作用主要起到来自JSP的请求的跳转分配的作用.该struts配置文件是个总的配置文件。5.3.4spring配置文件Spring在本项目中主要用到了IOC的功能,就是把对象实例化<!--daos--><beanid="userDao"class="bbs.dao.impl.UserDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="bankuaiDao"class="bbs.dao.impl.BankuaiDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="tieziDao"class="bbs.dao.impl.TieziDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="huifuDao"class="bbs.dao.impl.HuifuDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> 本段代码是把DAO实例化的代码,通过spring的IOC模式 <beanid="manageAction"class="bbs.action.ManageAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="bankuaiDao"><refbean="bankuaiDao"/></property> <propertyname="tieziDao"><refbean="tieziDao"/></property> <propertyname="huifuDao"><refbean="huifuDao"/></property> </bean>本段代码是把ManageAction实例化的代码,原理也是spring的IOC模式。<beanid="indexAction"class="bbs.action.IndexAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="bankuaiDao"><refbean="bankuaiDao"/></property> <propertyname="tieziDao"><refbean="tieziDao"/></property> <propertyname="huifuDao"><refbean="huifuDao"/></property> </bean>本段代码是把IndexAction实例化的代码,原理也是spring的IOC模式。5.4系统功能实现的主要模块5.4.1网站首页网站首页如图25所示。图25网站首页图登陆代码://首页入口 publicStringindex()throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest(); Util.init(request); List<Bankuai>list=bankuaiDao.selectBeanList(0,9999,"wheredeletestatus=0"); request.setAttribute("list",list); return"success"; }本段代码是主页面代码,通过bankuaiDao.selectBeanList调用板块的信息,同时定义return"success";在通过struts.xml配置的文件返回到index.jsp页面,同时在改jsp页面定义了各种功能的操作。5.4.2用户注册页面用户注册页面如图26所示图26用户注册图代码如下://用户注册操作 publicvoidregister2()throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpServletResponseresponse=ServletActionContext.getResponse(); Useruser=newUser(); user.setUsername(request.getParameter("username")); user.setPassword(request.getParameter("password")); user.setTruename(request.getParameter("truename")); user.setLianxifangshi(request.getParameter("lianxifangshi")); user.setCreatetime(newDate()); user.setRole(3); user.setTouxiang("touxiang.jpg"); user.setCreatetime(newDate()); Useru=userDao.selectBean("whereusername='"+user.getUsername()+"'"); if(u==null){ userDao.insertBean(user); response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('注册成功,您的用户名是"+user.getUsername()+",请妥善保管');window.location.href='login.jsp';</script>"); }else{ response.setCharacterEncoding("gbk");response.setContentType("text/html;charset=gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('注册失败!该用户名已经存在!');window.location.href='register.jsp';</script>"); } }本段代码是程序的注册代码,首先从获取从页面获取注册的信息,同时新建一个User对象,把从页面获取的信息都写在USER对象里面。同时在插入到数据库之前先调用userDao.selectBean("whereusername='"+user.getUsername()+"'");方法,验证下该用户名在数据库中是否存在,如果不存在,则调用userDao.insertBean(bean);方法,把该条记录写入数据库,如果该条记录存在,则返回到注册页面,同时提醒用户该用户名已经存在,请重新注册!。5.4.3管理后台登陆页面管理后台登陆如图27所示。图27管理后台登陆图代码如下://登入请求 publicStringlogin()throwsIOException{ HttpServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Useruser=userDao.selectBean("whereusername='"+username +"'andpassword='"+password+"'androle="+1+"anddeletestatus=0"); if(user!=null){ HttpSessionsession=request.getSession(); session.setAttribute("manage",user); this.setUrl("manage/index.jsp"); return"redirect"; }else{ HttpServletResponseresponse=ServletActionContext.getResponse(); response.setCharacterEncoding("gbk"); response.setContentType("text/html;charset=gbk"); response .getWriter() .print( "<scriptlanguage=javascript>alert('用户名或者密码错误');window.location.href='login.jsp';</script>"); } returnnull;本段代码是程序的登陆代码,首先从获取从页面输入的用户名和密码,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。5.4.4管理后台注册用户管理页面管理后台注册用户管理页面如图28所示。图28管理后台注册用户管理图代码如下://注册用户列表 publicStringuserlist(){ HttpServletRequestrequest=ServletActionContext.getRequest(); Stringusername=request.getParameter("username"); StringBuffersb=newStringBuffer(); sb.append("where"); if(username!=null&&!"".equals(username)){ sb.append("usernamelike'%"+username+"%'"); sb.append("and"); request.setAttribute("username",username); } sb.append("role!=1orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=userDao.selectBeanCount(where.replaceAll("orderbyiddesc","")); request.setAttribute("list",userDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论