版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEIV学生思想政治主题网系统设计摘要本世纪以来,信息技术迅猛发展,各类纷繁复杂的信息以极快的速度流通,计算机互联网的普及再加上计算机网络技术的广泛应用,使得大量的普通人得以有机会接触和学习比以往更加丰富的讯息和知识。在我国,高等院校作为普及知识的主阵地和象牙塔,承担着立德树人的重要任务,这就要求高等院校要承担起思想政治教育的重任。因此,建立一个基于Javaweb的大学生思政教育网站十分必要,大有用处。在当前,利用线上资源进行思想政治教育是一个显而易见的大趋势,网页也是我们未来进行宣传的极端重要的阵地。建立一个基于Javaweb的大学生思政教育网站,尽可能利用线上丰富优质的教育资源,对实现高等院校的人才培养和选拔、促进社会经济平稳有序地发展作用巨大。更是可以利用这个网站教学相长,为学生和教师之间搭建一个沟通的桥梁,这对于教学工作来说也是大有裨益的。基于以上考虑,笔者设计并开发了一个基于Javaweb的大学生思政教育网站,本网站前端使用JSP(java服务器页面)作为主要开发语言,后台则是使用了MySql(关系型数据库管理系统)作为网站的数据库管理系统,开发环境为MyEclipse(集成开发环境),服务器采用了tomcat(Web应用服务器),开发出的一个基于Web技术B/S结构的大学生思政教育网站。关键词:思想政治网,WEB,JSP,B/S结构目录TOC\o"1-2"\h\z\t"标题3,3,标题4,4"摘要 IABSTRACT II第一章绪论 11.1课题背景 11.2目的和意义 11.3开发工具及技术 11.3.1开发工具 11.3.2JSP 21.3.3JavaScript 31.3.4Struts2简介 31.3.5Hibernate简介 41.4软硬件需求 4第二章需求分析 52.1需求调研 52.2可行性分析 62.2.1技术的可行性 62.2.2经济的可行性 62.2.3操作可行性 62.2.4法律的可行性 62.3系统用户用例图 72.3.1管理员用例图 72.3.2普通用户用例图 72.4功能模块需求分析 72.5设计的基本思想 82.6性能需求 92.6.1系统的安全性 92.6.2数据的完整性 92.7界面需求 9第三章系统分析与设计 113.1数据库的分析与设计 113.1.1数据库的概念结构设计 113.1.2数据库的逻辑结构设计 163.1.3数据库的连接原理 183.2中文乱码问题处理 19第四章系统功能实现 224.1系统登陆页面实现 224.2管理员功能模块 234.2.1法制教育管理 244.2.2心理导航管理 274.2.3会员信息管理 294.2.4论坛信息管理 304.2.5公告信息管理 324.2.6修改个人密码 344.2.6安全退出系统 344.4前台网站模块 354.4.1网站首面 354.4.2用户注册 354.4.3法制教育信息浏览 36第五章系统测试 385.1系统测试目的与意义 385.2测试过程 385.2.1主页面的登录模块测试 385.3其他错误 39第六章结论 40参考文献 41第一章绪论1.1课题背景极速发展的互联网技术为许多传统行业带来了颠覆性的创新,在当前的新时代,使用线上多媒体平台进行针对大学生的思想政治教育也已经成为了宣传阵地极为重要的一环。建立一个基于Javaweb的大学生思政教育网站,我们可以尽可能利用线上丰富优质的教育资源,对实现高等院校的人才培养和选拔、促进社会环境的和平稳定作用不可小觑。尤其值得一提的是,我们可以利用这个网站进行“教学相长”的突破性尝试,为学生和教师之间搭建起沟通的平台,这对于教师的教学教研工作来说也是有极大益处的。长期以来,受过高等教育的人口始终占我国人口总数十分有限的比例,在一定程度上制约了国民整体素质的提升,也对于国家的发展、科技的进步、民族的振兴十分不利。随着高等院校的扩招,越来越多的学生拥有了升入高校接受祖国教育的机会,但与此同时,针对数量庞大的大学生群体的思想政治教育,变成一个越来越重要的问题,甚至可以说是极端重要的问题。针对这个宏大的问题,许多政治家和教育者、高等教育工作者进行了大量的工作、付出了辛苦的努力。而现在,一个可供参考的思路是,统筹各平台的资源,建立一个大学生思政教育主题网站,将现有的网站取长补短,实现更加实用的操作。1.2目的和意义相较于传统课堂上的思政教育,在网站上开展思政教育堪称是一种全新的教育方式,它既可以不受时间的拘泥,也免受空间的局限,同时也可以同时为更多的学生提供授课。教育网站既具有自主性高、交互性强、开放性高等特点,又兼有大容量、集成性、实时性等优势。所以在这个教育网站的建设过程之中,笔者从设计之初就意识到,一个功能单一的网站是难以满足现实需求的,必须将我们大学生目前喜闻乐见、乐于接受的受教育方式融合起来,使大学生可以更易于接受;同时也要注意提供丰富的功能,既要做到引人入胜,又要兼顾思想性,达到寓教于乐的目的。设计此思政教育网站的根本目的在于,最大程度地使用现代化的互联网技术手段,把当前大学生思政教育最亟需的知识上网并广泛开放,以达到更好地对大学生进行思想政治教育、促进大学生全面地成长为社会主义的接班人的目的。1.3开发工具及技术1.3.1开发工具这个思政教育网站在开发工具上使用了MyEclipse和Tomcat的后台服务器进行开发,网站建设过程中界面主要采用了JSP技术来完成,下面的章节简要介绍一下我们经常用到的MyEclipse、Tomcat和MySql数据库。MyEclipseMyEclipse,这个程序是广泛应用于编写Java的Eclipse插件的集合,他的功能简单却又丰富,对各类产品的适用性也非常之高,因此在使用过程中备受好评。MyEclipseEnterpriseWorkbench是MyEclipse企业级工作平台,该平台对EclipseIDE进行了极大地扩展,利用这个平台,开发者就可以在JavaEE的开发、发布和数据库的开发等方面十分便捷地进行操作,还可以整合应用程序的服务器,这些都极大地便捷了开发者的操作,提高了技术人员的工作效率。MyEclipse是一个丰富的JavaEE综合开发环境,包括完整的编码、调试、测试和发布功能,完全支持HTML、CSS、Struts、JSP、SQL、Javascript和hibernate。TomcatTomcat,这个程序是一个轻量级的小型应用服务器,广泛应用于中小型系统。它还经常用于一些并发访问用户流量较小的场景。它已经成为开发者开发和调试Alpine程序的首选。这个问题可以这样理解,当Apahce服务器配置在机器上时,它可以用来响应访问HTML页面的请求。事实上,Tomcat是Apache服务器的扩展,但它是独立运行的,所以在运行tomcat时,它实际上是作为独立于Apache的进程而单独运行的。MySqlMySql是用C和C++写成的,并用各种各样的编译器进行了充分测试,目的是确保源代码的便携性。它常见的支持多种操作系统,如Solaris、AIX、OS/2、FreeBSD、Linux、HPUX、NovellNetware、MacOS、OpenBSD、Wrap和Windows。它为API提供了多种编程语言,它支持多线程,充分利用CPU的运算资源,提供JDBC、TCP/IP、ODBC等多种数据库连接渠道。它可以处理包含数千万条记录的大型数据库。对于普通的个人用户和中小型企业用户来说,MySql提供的功能已经足够使用了,而且由于MySql是开放源码软件,它可以极大程度地降低总体拥有成本。1.3.2JSPJSP采用了Java编程语言来编写XML,比如tags和scriptlets,来封装处理逻辑以生成动态网页。该网页还可以通过tags和Aristole访问服务器中现有资源的应用程序逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,并使基于Web的应用程序开发变得快速而简单。当Web服务器遇到访问JSP网页的请求时,它会首先执行程序段,然后将执行结果与JSP文件中的HTML代码文件一起返回发送给客户。插入的程序段可以操作数据库、重定向网页等,从而实现建立动态网页所需要的功能。JSP和Servlet一样,在服务器端执行。通常情况下,HTML文本会返回给客户端,因此只要有浏览器,客户端就可以直接进行浏览。JSP网页由HTML代码和嵌入其中的Java代码组成。客户端请求页面后,服务器处理这些代码,然后将其生成的HTML页面返回到客户端浏览器。Servlet是JSP的技术支撑,大规模的Web应用程序的发展需要JSP和JavaServlet的合作。JSP拥有Java技术的所有特点,例如安全可靠、简单易用、完全地面向对象、独立于平台等,主要面向互联网。总结来看,JSP有以下几点技术优势:(1)一次编写之后可以到处运行。除了原本的系统之外,代码部分不需要做任何的更改。(2)系统的平台支持广泛。基本上可以在所有平台上开发,也基本上可以在任意环境中进行,在各类环境中进行系统部署,在任意环境中进行程序扩展。(3)具有强大的可伸缩性和可操作性。具有强大的生命力,可以从一个小的Jar文件运行Servlet/JSP,进而可以由多台服务器进行负载均衡,再到多台Application应用程序进行消息处理和事务处理,实现了从一台服务器引申到无数台服务器。(4)开发工具支持多样化且功能强大。许多非常优秀的开发工具已经应用于Java,并且大多数是免费的,可以简单地获取、便捷地操作。(5)支持服务器端的程序组件。功能强大的服务器端组件被用来来支持web应用,设计者实现了复杂功能的组件,这些组件可以供web页面调用。JSP可以使用成熟的JAVABEANS组件进行运行,可以轻松实现复杂多样的功能要求。1.3.3JavaScriptJavaScript是一种非常便捷的客户端脚本语言,它具有较高的安全性,它的运行基于对象和事件驱动。同时,JavaScript作为一种脚本语言也被广泛用于客户端Web开发,常被开发者用来添加动态功能至HTML网页。JavaScript还有一个重要的优点,即它拥有面向对象的功能,这使得它的程序开发方式会更加的可重复、更直观、更模块化。在HTML基础上,Javascript技术的应用使得网页更有设计感,用户的使用感受和操作乐趣也会大大增强,交互体验也会更加的自然。在本网站中的很多地方,比如检验输入数据的真实性、数据是否重复、输入是否为空等地方,都广泛利用了javascript技术。1.3.4Struts2简介Struts,是ApacheJakarta项目的重要组成部分。项目的开发者希望通过该项目对当前常用的平台进行改进和提高,包括但不限于标签库、Servlet、JavaServerPages,以提高他们面向对象的操作技术水平。使用Struts平台,可以帮助我们减少开发Web应用的时间,此前使用MVC设计模型时往往需要开发者耗费较多的时间。而Struts2作为Struts的升级之后的版本,拥有了更为显著的优势和更加强悍的功能。它利用Java\o"Servlet"Servlet/JSP技术,打造实现了一个应用框架〔Web\o"Framework"Framework〕,这个框架是建立于JavaEE\o"Web"Web应用基础之上的Model-View-Controller〔MVC〕设计模式,堪称是MVC设计模式中的经典产品。它的优点有以下几点:Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程;使用OGNL进行参数传递;强大的拦截器;易于测试;易于扩展的插件机制;全局结果与声明式异常。1.3.5Hibernate简介Hibernate是一个应用广泛的对象关系映射框架,它是开放源代码的。在对JDBC进行了对象封装之后,Java开发者以一种更加便捷的思维来操作数据库,那就是使用对象编程思维。Hibernate使用JDBC的场景十分广泛,它既可以使用在Java的客户端程序中,也可以使用在在Servlet/JSP的Web的应用中。尤其值得一提的是,Hibernate可以取代CMP在应用EJB的J2EE架构中,这使得它可以完成数据持久化这一任务。Hibernate的核心接口有Query、Session、Configuration、Transaction和SessionFactory。通过这些接口,不仅可以进行事务控制,还能够对持久化对象进行存取。1.4软硬件需求硬件需求:CPU:Pentium以上计算机内存:512M以上软件需求:操作系统版本:WindowsXP/vista/Win7开发工具:MyEclipse6.0.1后台服务器:ApacheTomcat6.0开发语言:Java浏览器:IE6.0第二章需求分析2.1需求调研需求调研是项目进行的第一步,笔者本人作为在校大学生,在大学阶段参与了很多的思政教育活动,这些活动形式各异、主题有别,但都是当前主流的教育内容。结合本人经历与其他同学的经历,并且利用校友资源调研了省内外的其他高校,详细了解了当前高等院校针对大学生进行思想政治教育的主要途径、主流形式、大体内容和当前存的的短板。根据我们初步的调研与了解,经过综合分析研判,当前大学生使用的线上教育平台往往形势较为单一,内容不够丰富,由此我们认为,建立一个融合各方面内容的大学生思政教育网站是十分必要的。2.2可行性分析进行任何一个项目、开发任何一个平台之前,我们都应该进行充分的可行性分析和论证,探究其在实际的生活中是否是可行的。这样有利于我们项目的开发风险,也是为了避免我们在开发和推进项目时产生的人力、财力和物力的浪费。接下来笔者从技术方面、经济方面、操作方面和法律方面来介绍本项目的可行性。2.2.1技术的可行性从技术方面来考虑,本系统使用的开发工具是MySql数据库和MyEclipse,使用的开发语言为Java语言,技术上主要使用J2EE。众所周知,java作为一种编程语言,其最大特点就是面向对象、简单易学、灵活方便。我们在大二、大三时就学习过java、web等课程,笔者在大学期间也主动地学习了解过J2EE的相关知识。在上述基础上,设计开发一个针对大学生的思政教育网站系统从总体上来说难度并不算大,在所有的程序中,本系统设计的核心无疑是数据库的设计和运行,在大学期间已经学习过软件工程、数据库原理等课程,每个学期在课程结束是也会完成课程设计,因此也具备了一定的系统设计、测试、和分析能力。综上所述,完从技术方面来考虑,完成该系统是完全可以实现的。2.2.2经济的可行性从经济方面来考虑,当今是一个追求效率的时代,系统、快速、全面、易于管理的思政网站必将是当前许多高等院校所需要的平台。因为这会为高校师生们提供一个合适高校的交流平台。从硬件成本来看,本系统不需要计算机有较高的硬件配置,普通电脑设备完全满足需要,因此在经济上完全具有可行性。2.2.3操作可行性从操作的方面来考虑,本系统操作总体来说较为简单。比如,拿本系统内的输入信息页面来说,大多数都设计成了下拉框的可以选择的形式;在一些页面,信息一般可以自动生成显示而无需操作者输入,时间设置则用到了日历控件,操作非常简便,这些界面设置使得操作本系统非常简单、操作者只需了解WINDOWS系统的基本操作,再对本系统稍加联系即可熟练工作,所以本系统在技术上不存在难度,是完全可行的。2.2.4法律的可行性从法律的方面来考虑,这一个大学生思政教育网站系统是本人自行开发,不存在版权争议。且本系统是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,也就是说法律上是完全可行的。综上所述,设计开发一个大学生思想政治主题网站,不仅比传统的思政教育模式有着显著优势,更有着操作便利、资源丰富、开支较少等优点。并且在技术、经济、操作和法律上是完全可行的。由此我们得出,建立该网站系统必要的,而且是可行的。2.3系统用户用例图2.3.1管理员用例图本系统的核心用户是管理员,管理员的权限可以对系统的所有用户进行操作,并且管理员直接关联了八大功能模块,如下图所示:图2.1管理员用例图2.3.2普通用户用例图普通用户是本系统的常规用户,他不仅能网页中发布的各类信息,而且在普通用户在线注册了登录系统之后,他便可以打开论坛模块,进而可以自由发帖表达观点、进行评论、回复他人等行为。图2.2普通用户用例图2.4功能模块需求分析本系统的特点是界面整洁、功能稳定、操作简单、提示友好,已经实现了以下几点基本功能:(1)界面美观大方,操作简单,错误操作后提示也被设置为较为温和的话语。(2)管理员用户具有修改个人密码、论坛信息管理、会员信息管理、理论学习管理、系统信息管理、法制教育管理、形势政策管理等功能。(3)本系统具有较强的安全性,可以有效避免用户的恶意操作。管理员功能模块图:图2.3管理员用户功能模块图普通用户功能模块图:图2.4普通用户功能模块图2.5设计的基本思想本系统在设计上遵循了以下几点思想:1.本系统的开发模式采用了B/S模式,B/S模式可以使得后端与前端之间处理层次明晰,而且大多数用户都比较习惯网页的方式。2.本系统使用的开发设计理念是面向对象的。要想采用面向对象的技术,前提是开发者要对整个系统有着全面的掌握和了解,并对其进行高度抽象。面向对象的优点也是显而易见的:运行效率更高、使用起来也更加的友好。3.本系统在界面设计上采用模块化的思想。这就要求在界面上将整个系统划分成若干个功能不同的小模块,采用这种思想有利于重载代码,在设计过程上也比较好实现。4.本系统力求操作方便、界面简单友好,方便初学用户可以更快地上手系统的操作。5.本系统在设计中遵循的原则是速度优先。速度是开发一个系统的一个重要评价指标,故而在设计和编写的过程中尽量做到了占用资源少、运行速度快。6.在设计的总体把握上要力求突出重点,同时又要周到细致。也要注意尽可能地与时俱进,让系统不断改进以适应用户的实际需求。2.6性能需求2.6.1系统的安全性作为一款面向当代在校大学生的网站系统,安全性是极为重要的,因此,本系统会严格控制管理权限,以保证安全。具体要求有以下几点:如果用户想要登录系统后进行相应的操作,则要求该用户必须有相应的操作权限,如果用户没有该权限,则他没办法登录系统,也不能查看任何的数据和信息,通过此策略可以使本系统尽可能的安全和严密。2.6.2数据的完整性1.要完整地记录信息,内容不可以为空2.数据之间相互联系时要保证数据的正确性3.相同地数据如果在不同的记录中,则要保持一致2.7界面需求作为评价系统水平的重要指标,界面设计对于用户的使用体验和观感影响是直接的。如果用户界面足够友好、美观,不仅可以提高用户的观感,还能帮助用户提高工作效率,工作起来更加的舒心。JSP技术的脚本语言是JAVA语言,使用JSP技术的网页创建动态的画面非常简单。软件系统与用户进行联系互动的接口就是用户界面,用户界面一般有输出、人-机对话、输入等界面格式。1.输出设计输出指的是系统对接受的的信息进行处理加工,形成具有一定显示格式的、便于观看的有效信息,这也是输出设计的主要任务和目标。从工作顺序上来看,一个系统实施的过程和设计的过程正好相反,用户使用时感受到的过程是从输入到输出,但我们开发系统时的顺序则是从设计输出到设计输入。造成这种反差的原因是输出的内容直接面对用户,因此设计时首先要考虑到输出的内容要尽可能的适应用户的需求。输出设计的原则有这几点:要进行精简提炼,足够简练;要考虑不同用户的不用需求;要注意提供更多有价值的讯息。2.输入设计输入数据是整个系统的关键一环,一般来看,收集和录入数据信息往往需要大量的人力和一些专用设备,并且这个输入的过程是很容易出错的。如果数据在输入时便产生了差错,那么这个小小的差错也会在之后的步骤中逐渐变得明显,甚至会影响整个系统的显示,进而影响用户的使用。因此,输入的数据必须确保精确、准确、正确。输入设计的过程中坚持了以下几点原则:1)输入量要尽量最低限度。这个最低限度首先要满足处理要求,在实际的设计中,我们可以采用下拉式数据窗口以及设置字段初值等方式,这样的方式能够尽可能的减少用户在键盘上的输入量。用户输入量越少,发生错误的概率就越低。2)输入的准备过程及输入过程的操作应尽量简便,从而可以减少错误的发生。3)应尽量早对输入数据的正确性进行检查,以便及时修改、及时更正。4)输入数据时应尽量呼应该数据的处理形式,可以尽量避免数据转录时发生错误。
第三章系统分析与设计3.1数据库的分析与设计一般的互联网信息系统的核心无疑是数据库,本网站的主要所有功能也都是以数据为支撑的。毫无疑问,作为计算机系统核心,数据库也是整个系统的基础。数据库设计的水平高低会极大地影响用户的使用体验,进而直接影响了整个系统设计的成功与否,所以,数据库的设计在整个设计环节中至关重要。和其他大多数的互联网系统一样,本系统的数据库设计包括了:规划、需求分析、物理设计、逻辑设计、概念设计这五个主要过程。3.1.1数据库的概念结构设计所谓概念设计,指的是在设计过程中建立整个系统的数据库概念结构,这个建立的过程是建立对数据进行充分的分析的基础上的,并且是自下而上进行的。在视图设计的过程中,始终坚持从用户的角度进行友好的设计。为了更好地体现本系统数据库的概念结构设计,在本系统的开发过程中采用最常用的实体—联系(E-R)模型设计方法。E-R模型法表达清晰、易于制作,是设计中极为常用的表达方法,该模型中的组成元素包括:联系、属性、实体,E-R模型的表达形式是E-R图。进行概念设计,目的是为了反映数据库概念结构,即概念模式。概念模式往往区别于系统数据库的逻辑结构,概念模式也不依靠于计算机系统。根据以上需求分析,再对数据库进行分析,再考虑到系统概念模型的建立方法和模型特点,我们建立了以下E-R模型图。实体间关系属性实体实体间关系属性实体(1)本系统中的法制教育信息这个模块的实体E-R图如下图3.1:图3.1法制教育信息模块的实体E-R图(2)心理导航信息实体E-R图如图3.2所示图3.2心理导航信息实体E-R图(3)形势政策信息E-R图如图3.3所示图3.3形势政策信息实体E-R图(4)党团知识信息E-R图如图3.4所示图3.4党团知识信息实体E-R图(5)理论学习信息E-R图如图3.5所示图3.5理论学习信息实体E-R图(6)用户信息E-R图如图3.6所示图3.6用户信息实体E-R图(7)帖子主题信息E-R图如图3.7所示图3.7帖子主题信息实体E-R图(8)帖子回复信息E-R图如图3.8所示图3.8帖子回复信息实体E-R图(9)管理员信息E-R图如图3.10所示图3.10管理员信息实体E-R图3.1.2数据库的逻辑结构设计我们知道,数据库概念模型需要根据我们的数据库管理系统的实际特点和具体情况进行处理。也就是说转化成的逻辑关系模型是有要求的,是要按照计算机观点的原则来进行的。由此我们提出,E-R模型转换关系数据库模型的操作过程中应当符合以下几点基本原则:*每一个实体要转换成一个关系*所有的主键必须定义非空(NOTNULL)*对于二元联系定义外键,要按照一对一、一对多、多对多、弱对实等联系来进行定义。根据上述E-R模型,本网站建立了以下逻辑数据结构,下面的篇幅详细介绍一下数据信息表的设计情况。(1)用户信息表,是用来记载普通用户基础情况的重要表格。该表的基本结构如表3.1。表3.1用户信息表(t_user)列名数据类型长度允许空是否主键说明user_idint4否是编号user_namevarchar50否否账号user_pwvarchar50否否密码user_realnamevarchar50否否姓名fujianvarchar50否否头像(2)法制教育信息表,是用来记载法制教育基础情况的重要表格,该表的基本结构如图3.2。表3.2法制教育信息表(t_fazhi)列名数据类型长度允许空是否主键说明idint4否是编号biaotivarchar50否否标题neirongvarchar50否否内容shijianvarchar50否否发布时间(3)心理导航信息表,是用来记载心理导航基础情况的重要表格,该表的基本结构如图3.3。表3.3心理导航信息表(t_xinli)列名数据类型长度允许空是否主键说明idint4否是编号biaotivarchar50否否标题neirongvarchar50否否内容shijianvarchar50否否发布时间(4)形势政策信息表,是用来记载形势政策基础情况的表格,该表的基本结构如图3.4。表3.4形势政策信息表(t_xingshi)列名数据类型长度允许空是否主键说明idint4否是编号biaotivarchar50否否标题neirongvarchar50否否内容shijianvarchar50否否发布时间(5)党团知识信息表,是用来记载党团知识基础情况的表格,该表的基本结构如图3.5。表3.5党团知识信息表(t_dangtuan)列名数据类型长度允许空是否主键说明idint4否是编号biaotivarchar50否否标题neirongvarchar50否否内容shijianvarchar50否否发布时间(6)理论学习表,是用来记载理论学习基础情况的表格,该表的基本结构如图3.6。表3.6理论学习信息表(t_lilun)列名数据类型长度允许空是否主键说明idint4否是编号biaotivarchar50否否标题neirongvarchar50否否内容shijianvarchar50否否发布时间(7)论坛帖子主题信息表,是用来记载帖子主题基础情况的表格,该表的基本结构如图3.7。表3.7帖子主题信息表(t_zhuti)列名数据类型长度允许空是否主键说明idint4否是编号titlevarchar50否否标题contentvarchar50否否内容shijianvarchar50否否发布时间user_idint50否否用户ID(8)公告信息表,是用来记载公告基础情况的表格,该表的基本结构如图3.8。表3.8公告信息表(t_gonggao)列名数据类型长度允许空是否主键说明idint4否是编号titlevarchar50否否标题contentvarchar5000否否内容shijianvarchar50否否发布时间(9)帖子回复信息表,是用来记载帖子回复情况的表格,该表的基本结构如图3.9。表3.9帖子回复信息表(t_回复)列名数据类型长度允许空是否主键说明idint4否是编号titlevarchar50否否标题contentvarchar50否否内容shijianvarchar50否否发布时间user_idint50否否用户IDzhuti_idint4否否主题ID(10)管理员信息表,是用来记载管理员账号基础信息的表格,该表的基本结构如表3.10。表3.10管理员信息表(t_admin)列名数据类型长度允许空是否主键说明userIdint4否是编号userNamevarchar50否否用户名userPwvarchar50否否密码3.1.3数据库的连接原理在本系统中,我们对数据库进行管理的途径是采用了Hibernate。众所周知的是,Hibernate是一个应用广泛且性能卓越的对象关系映射框架,它是开放源代码的框架,本质上是进行数据库服务的中间件,因此使用起来十分的友好。传统操作数据库的方式往往是用JDBC和SQL来手工进行,现如今我们使用Hibernate不仅可以减轻工作的强度,而且我们还可以使用对象编程思维更加自如的来操纵数据库。除此之外,Hibernate另一个显著优点是可以帮助开发者节省许多的时间成本和工作量,因为它采用代理模式,这种模式可以简化载入类的过程,这将大大减少开发过程中编写代码的量。而且Hibernate使用环境也十分广泛,因为它可以支持当前常用的大部分数据库服务器。Hibernate技术的架构如图3.5:图3.5Hibernatre架构图上图清晰地体现了Hibernate的工作原理,它的体系结构略微复杂但具有很大的灵活性。3.2中文乱码问题处理在程序编写的过程中常碰到中文乱码这种情况出现,采用手动设置的方式调整servlet和jsp页面比较繁琐。考虑到这种情况,笔者在程序的开头通过编写过滤器SetCharacterEncodingFilter的方式来处理乱码问题在web.xml中配置:<filter><filter-name>SetCharacterEncodingFilter</filter-name><filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter><filter-mapping><filter-name>SetCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//</filter-mapping>对应的SetCharacterEncodingFilter.publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}笔者在在工具包util包中,也定义了DataFormate类:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串转换成uincode编码*/if(gbStr==null){gbStr="";}try{byte[]tempByte=gbStr.getBytes("GB2312");uniStr=newString(tempByte,"ISO8859_1");}catch(Exceptionex){}returnuniStr;}publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(c>=0&&c<=255){sb.append(c);}else{byte[]b;try{b=Character.toString(c).getBytes("utf-8");}catch(Exceptionex){System.out.println(ex);b=newbyte[0];}for(intj=0;j<b.length;j++){intk=b[j];if(k<0){k+=256;}sb.append("%"+Integer.toHexString(k).toUpperCase());}} returnsb.toString();}
第四章系统功能实现在完成前文阐述的需求分析和系统设计等阶段之后,便要开始将上述功能落实到系统中。在前面的分析和设计阶段,主要侧重于逻辑上、功能上和技术上的分析与论证,而在功能实现阶段,则是要总结之前的工作成果,将前面的设想变为现实,即在具体的系统中去实现这些功能。4.1系统登陆页面实现1.描述:在本页面,用户需要使用正确的账号和密码来进入本平台。2.程序运行效果图如图4.1所示:图4.1系统登陆页面设计3.用户要在在系统登陆页面键入自己的用户名和密码,点击登录键后系统会对用户名、密码和验证码进行验证,loginservice关键代码: publicStringlogin(StringuserName,StringuserPw,intuserType) { Stringresult="no"; if(userType==0)//系统管理员登陆 { Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName.trim(),userPw.trim()}; ListadminList=adminDAO.getHibernateTemplate().find(sql,con); if(adminList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes"; } } if(userType==1)//老师登陆 { Stringsql="fromTUserwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListuserList=userDAO.getHibernateTemplate().find(sql,con); if(userList.size()==0) { result="no"; } else { WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TUseruser=(TUser)userList.get(0); session.setAttribute("userType",1); session.setAttribute("user",user); result=user.getUserId().toString(); } } returnresult; }4.2管理员功能模块1.描述:管理员是本系统内的核心角色,系统管理员的八大功能也是最重要、最多的系统功能。2.程序运行效果图如图4.2所示:图4.2管理员主页面4.2.1法制教育管理法制教育信息录入1.描述:管理员可以编制撰写法制信息教育的相关信息,然后点击录入按钮即可将编辑的信息录入本系统后台。加入管理员输入的教师信息不准确不完整则系统会报错弹出错误提示,出现该提示就意味着录入失败。通过onsubmit="returncheckForm()"来实现验证功能,并通过checkForm()函数来检验数据输入方式。2.程序效果图如下图4.6所示:图4.6法制教育信息录入法制教育信息管理1.描述:法治教育信息管理主要依靠管理员这一角色实现,点击栏目之中的“法制教育信息管理”,页面便会转到法制教育信息的管理界面,调用系统代码中的action类可以显示出本系统内的法制教育信息,接着便将这些信息封转到List这一数据集合中,连接到到request之后便会跳转到jsp将页面表现出来。2.程序效果图如下图4.7所示图4.7教师信息管理页面法制教育信息管理关键代码:publicStringfazhiAdd(){ TFazhifazhi=newTFazhi(); fazhi.setBiaoti(biaoti); fazhi.setNeirong(neirong); fazhi.setShijian(newSimpleDateFormat("yyyy-MM-ddHH:mm").format(newDate())); fazhiDAO.save(fazhi); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","操作成功"); return"msg"; } publicStringfazhiMana() { ListfazhiList=fazhiDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("fazhiList",fazhiList); returnActionSupport.SUCCESS; } publicStringfazhiDel() { TFazhifazhi=fazhiDAO.findById(id); fazhiDAO.delete(fazhi); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","操作成功"); return"msg"; } publicStringfazhiDetail() { TFazhifazhi=fazhiDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("fazhi",fazhi); returnActionSupport.SUCCESS; } publicStringfazhiAll() { ListfazhiList=fazhiDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("fazhiList",fazhiList); returnActionSupport.SUCCESS; } publicStringfazhiDetailQian() { TFazhifazhi=fazhiDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("fazhi",fazhi); returnActionSupport.SUCCESS; }法制教育信息删除1.描述:若要进行法制教育信息的删除,首先要进入法制教育信息管理页面,在这个页面可以看到法制教育信息中的数据和内容,然后再点击想要删除的信息,在弹出的对话框中点击确定即可删除该法制教育信息。4.2.2心理导航管理心理导航信息录入1.描述:输入心理导航正确信息后点击录入按钮即为心理导航信息的录入。通过onsubmit="returncheckForm()"来验证输入数据的正确与否,验证输入数据方式是通过checkForm()函数。如果用户输入的不是完整的心理导航,则系统会报错弹出错误提醒给用户,这意味着录入失败。2.程序效果图如下图4.6所示:图4.6心理导航信息录入心理导航信息管理1.描述:在本系统中,管理员用户可以单击“心理导航信息管理”栏目,心理导航信息管理的操作界面便会显示出来。在这个操作系统中,查找出心理导航信息使用到了action类,之后会将信息移至List这个数据集合中,在之后便会利用request对象将页面对应到jsp,这样心理导航信息便会显示出来了。2.程序效果图如下图4.7所示图4.7心理导航信息管理页面心理导航信息管理关键代码:publicStringxinliAdd(){ TXinlixinli=newTXinli(); xinli.setBiaoti(biaoti); xinli.setNeirong(neirong); xinli.setShijian(newSimpleDateFormat("yyyy-MM-ddHH:mm").format(newDate())); xinliDAO.save(xinli); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","操作成功"); return"msg"; } publicStringxinliMana() { ListxinliList=xinliDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinliList",xinliList); returnActionSupport.SUCCESS; } publicStringxinliDel() { TXinlixinli=xinliDAO.findById(id); xinliDAO.delete(xinli); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","操作成功"); return"msg"; } publicStringxinliDetail() { TXinlixinli=xinliDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinli",xinli); returnActionSupport.SUCCESS; } publicStringxinliAll() { ListxinliList=xinliDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinliList",xinliList); returnActionSupport.SUCCESS; }心理导航信息删除1.描述:在删除功能的设计中首先需要单击打开心理导航信息管理,在这个页面中我们可以单击选中想删除的心理导航信息,在弹出的对话框单击确定即可完成删除心理导航信息的操作。4.2.3会员信息管理会员信息管理1.描述:会员信息的管理和注册由管理员这一角色来进行,管理员单击“会员信息管理”这一栏目,会员信息管理界面便会显示出来,在之后的操作中,查找出会员信息使用到了action类,之后会将信息移至List这个数据集合中,在之后便会利用request对象将页面对应到jsp,这样会员信息便会显示出来了。2.程序效果图如下图4.10所示图4.10会员信息管理页面会员管理关键代码:publicStringuserDel(){ TUseruser=userDAO.findById(userId); user.setUserDel("yes"); userDAO.attachDirty(user); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","操作成功"); return"msg"; } publicStringuserDetail() { TUseruser=userDAO.findById(userId); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("user",user); returnActionSupport.SUCCESS; } publicStringuserMana() { Stringsql="fromTUserwhereuserDel='no'"; ListuserList=userDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("userList",userList); returnActionSupport.SUCCESS; }会员信息删除1.描述:管理员用户可以对会员信息进行删除操作,首先管理员需要点击打开会员管理界面,在这个页面管理员可以看到全部的会员信息,单击选中想删除的会员信息,在随后弹出的对话框中点击确定即完成了对这一条会员信息的删除操作。4.2.4论坛信息管理论坛信息管理1.描述:管理员用户单击“论坛信息管理”栏目便会打开论坛信息管理的页面,查询论坛信息会用到action类,然后将论坛信息移至List这一数据集合中,根据request对象对应jsp即可显示;论坛中的信息。为了系统内容上的安全,管理员用户可以删除不合法的主题信息和回复信息。2.程序效果图如下图4.12所示图4.12帖子主题管理页面论坛帖子管理关键代码:publicStringzhutiMana(){HttpServletRequestreq=ServletActionContext.getRequest(); Stringsql="fromTZhutiwheredel='no'orderbyiddesc"; ListzhutiList=zhutiDAO.getHibernateTemplate().find(sql); for(inti=0;i<zhutiList.size();i++) { TZhutizhuti=(TZhuti)zhutiList.get(i); zhuti.setUser(userDAO.findById(zhuti.getUser_id())); zhuti.setHuifushu(getHuifushu(zhuti.getId())); } req.setAttribute("zhutiList",zhutiList); returnActionSupport.SUCCESS; } publicStringzhutiDel() { HttpServletRequestreq=ServletActionContext.getRequest(); Stringid=req.getParameter("id"); Stringsql="updateTZhutisetdel='yes'whereid="+Integer.parseInt(id); zhutiDAO.getHibernateTemplate().bulkUpdate(sql); req.setAttribute("msg","操作成功"); return"msg"; }4.2.5公告信息管理公告信息录入1.描述:公告信息的录入有管理员这一角色来完成,管理员编辑输入公告信息后即可点击录入按键进行录入。如果管理员录入的公告信息不完整,则系统会报错提醒,即为录入失败。根据设计,系统使用form表单的onsubmit="returncheckForm()"来验证输入数据的正确与否,检验数据输入方式用到的函数为checkForm()函数。2.程序效果图如下图4.14所示:图4.14公告信息录入公告信息管理1.描述:管理员可以进行公告信息的管理,管理员单击“公告信息管理”这一栏目,公告信息管理的页面便会显示出来,显示全部的公告信息是根据action类,之后将信息移至合List这一数据集中,根据request对象对应到jsp,公告信息管理的页面便出现了,即可进行操作。2.程序效果图如下图4.15所示图4.15公告信息管理页面公告信息管理关键代码:publicStringgonggaoAdd(){ TGonggaogonggao=newTGonggao(); gonggao.setGonggaoTitle(gonggaoTitle); gonggao.setGonggaoContent(gonggaoContent); gonggao.setGonggaoData(newDate().toLocaleString()); gonggaoDAO.save(gonggao); this.setMessage("公告添加完毕"); this.setPath("gonggaoMana.action"); return"succeed"; } publicStringgonggaoMana() { ListgonggaoList=gonggaoDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("gonggaoList",gonggaoList); returnActionSupport.SUCCESS; } publicStringgonggaoDel() { TGonggaogonggao=gonggaoDAO.findById(gonggaoId); gonggaoDAO.delete(gonggao); this.setMessage("公告删除完毕"); this.setPath("gonggaoMana.action"); return"succeed"; } publicStringgonggaoDetail() { TGonggaogonggao=gonggaoDAO.findById(gonggaoId); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("gonggao",gonggao); returnActionSupport.SUCCESS; } publicStringgonggaoDetailQian() { TGonggaogonggao=gonggaoDAO.findById(gonggaoId); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("gonggao",gonggao); returnActionSupport.SUCCESS; }公告详细信息查看1.描述:用户可以鼠标单击公告信息管理这一栏目,系统便会显示公告信息管理这一页面,用户便可以在这一页面中查看浏览全部的公告详细信息。2.程序效果图如下图4.16所示图4.16公告信息详细信息页面公告信息删除1.描述:管理员用户可以进行公告信息的删除操作,管理员单击公告信息管理这一栏目打开公告信息管理这一页面,即可在该页面看到全部的公告信息,单击选中想删除的那一条公告信息,在弹出的对话框中单击确定,即可完成对该条公告信息的删除操作。4.2.6修改个人密码1.描述:要想修改个人密码,用户首先需要在登录页面成功登陆之后打开密码修改页面,在此页面键入用户名以及该用户名原有的密码,再在下面的框中输入想要设置的新密码,再用鼠标单击修改按键,即可完成个人密码的修改工作。2.程序效果图如图4.21所示:图4.18修改个人密码4.2.7安全退出系统1.描述:用户可以通过鼠标单击该按钮的方式回到本网站系统的初始主页面。2.关键代码:主要是通过javascript语句来实现,item_word[8][4]="退出系统";item_link[8][4]="javascript:window.open('../index.jsp','_self')";4.4前台网站模块4.4.1网站首面1.描述:在网站首页中,整个页面的上方显示的是本网站的标题和时间等主要信息。在整个页面的中间部分和下方,是首页的内容模块显示区:右侧有通知公告区域,用户可以在本区域内点击链接查看管理员发布的各类信息公告,右上方设置为了用户登陆区域,用户通过键入正确的用户名、对应的密码以及验证码即可登录本系统,右下方则放置了一块区域显示日历表以显示时间。2.程序效果图如下图4.25所示:图4.25网站首页4.4.2用户注册1.描述:本系统有专门的新用户注册功能,新用户可轻松在本界面进行注册。2.程序效果图如下图4.26所示:图4.26用户注册界面用户注册关键代码publicStringuserReg(){ Maprequest=(Map)ServletActionContext.getContext().get("request"); Stringsql="fromTUserwhereuserName='"+userName.trim()+"'"; Listlist=userDAO.getHibernateTemplate().find(sql); if(list.size()>0) { request.put("msg","用户名重复。请重新输入"); } else { TUseruser=newTUser(); user.setUserName(userName.trim()); user.setU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国印刷包装行业现状产业发展分析及市场竞争力提升策略研究
- 2026中国物流仓储自动化管理系统投资回报与风险控制分析
- 2026汽车制造业市场前沿分析及发展策略与资源配置研究报告
- 2026中国智能家居行业市场格局和商业模式分析
- 2026叶黄素酯冻干技术突破与产品稳定性改善方案
- 2026中国智能穿戴设备行业市场竞争力分析及定制服务发展计划报告
- 任丘市苟各庄镇枣林庄学校一年级数学加减法练习题
- 饲料购销合同
- 陕西省西安市雁塔区2026年七年级数学第一学期期末统考试题含解析
- 仙桃市长江文武学校一年级数学加减法练习题
- 《钳工技能训练(第六版)》课件-课题十四 综合技能训练(三)
- 药房禁毒知识培训资料课件
- GB/T 3672.1-2025橡胶制品的公差第1部分:尺寸公差
- 医院智慧管理分级评估标准体系(试行)-全文及附表
- 中暑中医教学课件
- T/CAQI 40-2018直饮水水站安全技术要求
- 涉密文件印制协议书
- GB/T 25820-2025包装用钢带
- 2024消防设施检测方案
- DB45T 2321-2021 汁汽阀技术规范
- 西藏自治区多雄藏布帕孜水利枢纽及配套灌区工程环评
评论
0/150
提交评论