软件工程毕业论文.doc

上传人:仙人指路1688 文档编号:4069129 上传时间:2023-04-03 格式:DOC 页数:30 大小:570KB
返回 下载 相关 举报
软件工程毕业论文.doc_第1页
第1页 / 共30页
软件工程毕业论文.doc_第2页
第2页 / 共30页
软件工程毕业论文.doc_第3页
第3页 / 共30页
软件工程毕业论文.doc_第4页
第4页 / 共30页
软件工程毕业论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《软件工程毕业论文.doc》由会员分享,可在线阅读,更多相关《软件工程毕业论文.doc(30页珍藏版)》请在三一办公上搜索。

1、 毕业设计题 目 基于web系统的信访设计与开发 英文题目 Design and Development of visit Website 学生姓名: 陈姣 学 号: 07110201 专 业: 软件工程 学 院: 软件学院 指导教师: 许志文 职称: 副教授 二零一一年五月摘 要 本论文即在介绍一个采用JSP(Java Server Page)编写,对于数据库的创建和管理则采用Mysql,界面简洁、易操作的简易信访网站。主要有浏览新闻,写信投诉,查看信件回复这几个功能。网上用户登录信访网站后,可以注册账号,查看首页发布的信息和自己收到的信件,写信给管理员提出需要解决的问题等。利用JSP技术开

2、发的网站信访管理系统,实现了网上信访的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。同时对系统的开发原理、系统的功能特点和设计方案进行了介绍。 关键字:信访; JSP; Struts; Hibernate; Mysql; jdk ABSTRACTThis thesis introduces an simple visit site that adopted with jsp(Java Server Page) ,databases creating and management with Mysql and interface is simple, easy operating.

3、The main function include view the news , write a letter to complain ,and so on. The function of upgrade version will gradually improve existing functions, and on the basis of expanded other function. Internet users who login visit site can modify personal information ,see the information on the hom

4、e and the letters that received, writer letters to administrator to ask the questions you want to know.Using JSP technology development website visit management system management system,has realized the website visit dynamic management,caused to be even more prompt to the information management, to

5、be highly effective, enhanced the working efficiency.Meanwhile to the system development principle, the system function characteristic and the design proposal has carried on the introduction.Key words: visit; JSP (Java Server Page); Mysql; Struts; Hibernate; jdk目 录1.绪论.51.1研究背景51.2研究目的和意义51.3研究方法52.

6、 Web应用的体系结构.71.1.JSP脚本技术71.1.1.JSP概述71.1.2.JSP核心技术71.1.3.其他相关技术81.2.系统实现手段91.2.1.Model部分91.2.2.View部分91.2.3.Controller组件101.2.4.资源层,即数据库服务器。101.3.开发环境介绍101.3.1.操作系统:xp101.3.2.服务器:Tomcat 6.0101.3.3.JAVA虚拟机:JDK 1.6111.3.4.数据库:Mysql111.3.5.Myeclipse6.5113.需求分析.124.数据库分析与设计.154.1 数据库分析.15 4.2 数据库设计.155.

7、系统功能与实现185.1数据连接185.2.个人模块19 5.2.1 用户注册登录.19 5.2.2 用户写信投诉.22 5.2.3 管理员登录.236.测试25 6.1测试与调试的基本概念.26 6.2测试时间.26 6.3软件测试的内容.27结 论28致 谢281绪论1.1研究背景 信访(xn fng,complaint letter and visit)群众来信来访的简称。指人民群众致函或走访有关部门,反映情况,并要求解决某些问题。中华人民共和国公民对于任何国家机关和国家工作人员,有提出批评和建议的权利;对于任何国家机关和国家工作人员的违法失职行为,有向有关国家机关提出申诉、控告或者检举

8、的权利,但是不得捏造或者歪曲事实进行诬告陷害。新信访条例列举了信访的形式为“书信、电子邮件、传真、电话、走访”,并处处透出不鼓励“走访”,而鼓励书信、电话、传真、电子邮件等狭义“信访”的信息。但是,实际中人们一提到“上访”,想到的却总是千里迢迢的“走访”,而不是利用现在愈来愈发达的通信方式的狭义“信访”。 新信访条例非常强调信访渠道的建设,要求各级政府要“向社会公布信访工作机构的通信地址、电子信箱、投诉电话”,尤其是要“建立全国信访信息系统,为信访人在当地提出信访事项、查询信访事项办理情况提供便利”。我国信访网站正在不断地改进和提高。1.2研究目的和意义随着互联网及宽带的普及,人们开始不用长途

9、跋涉的专门走访相关部门去提出一个小小的问题,网络给予了我们这种方便,节省了双方的时间和精力,可以把多余的时间拿来做更多有意义的事。只要有电脑有宽带,就可以随时关注自己想要知道的新闻信息,然后根据自己的实际情况提出相关的问题,部门人员接收到你的电子邮件等就可以及时的解决你的问题。1.3研究方法 一个基于Internet的应用,就是一种基于B/S(Browser/Server,浏览器/服务器)的体系结构。本信访网站即采用这种两层模型结构实现。用户在浏览器端登陆界面,实现写信,收信等操作。JSP是目前流行的一种开发动态网页和基于Web应用的编程语言。用JSP开发的Web应用是跨平台的,既能在Linu

10、x下运行,也能在其他操作系统上运行。同时,JSP以JAVA语言为基础,可以在不同的硬件平台和操作系统下运行,大大提高了程序的可移植性。所以本系统采用JSP建立动态页面,Mysql创建和管理后台数据库。用360浏览器来实现浏览生成的网站。1. Web应用的体系结构Web是基于浏览器/服务器的体系结构,浏览器向服务器发送请求,要求执行某项任务,而服务器执行此项任务,并向浏览器返回响应。要构造这种结构时,具体工作包括设计静态HTML页面、动态的JSP页面、Servlet、其他对象(如JavaBean)及相互之间的交互关系等,而Web应用的运行调度等则是由JSP容器和应用服务器(如Tomcat)自动完

11、成。1.1. JSP脚本技术1.1.1. JSP概述Java Server Page简称JSP,它是运行在服务器端的脚本语言之一。与其他服务器端脚本语言一样,是用来开发动态网站的一种技术。JSP页面是由传统的HTML代码和嵌入到其中的Java代码组成的。服务器在接收到客户端发来的一个JSP页请求时,由JSP代码转换成Servlet代码,然后由JSP引擎调用服务器端的Java编译器对Servlet代码编译,把它编译成字节码文件(.class),再由JVM(Java虚拟机)执行此字节码文件,最后将执行结果以HTML格式返回给客户端。JSP可以在大多数的Web Server上运行,符合“一次编写,多

12、平台运行”的JAVA原则,实现了程序与服务器平台的独立性。它具有以下的优点:(1) 内容生成与显示分离;(2) 可重用的组件;(3) 采用标识简化页面开发;(4) 适应更广泛的平台;(5) 易于连接数据库。1.1.2. JSP核心技术 JSP核心技术主要包括:JavaBean技术和Servlet技术。(1) JavaBean技术JavaBean是指由Java语言编写的组件,每一个JavaBean实现一个特定的功能,通过合理的组织具有不同功能的JavaBean,可以快速地生成一个全新的应用程序。任何可以用Java代码创造的对象都可以利用JavaBean进行封装,并且其他的开发者可以通过内部的JS

13、P页面、Servlet、其他的JavaBean、applet程序或者应用来使用这些对象。(2) Servlet技术Servlet是一种独立于平台和协议的服务器端的Java应用,可以生成动态的Web页面,使用Java Servlet应用程序设计接口(API)及相关类和方法除Java Servlet API,Servlet还可以使用以扩展和添加API的Java类软件包。Java语言能够实现的功能,Servlet基本上都能实现(除了图形界面外)。Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。通常所说的Servlet就是指HttpServlet,用于处理HTTP请求,能够处理的请

14、求包括doGet()、doPost()、service()等方法。在开发Servlet时,可以直接继承javax.servlet.http.HttpServlet。1.1.3. 其他相关技术(1) Struts 技术利用Struts框架进行Web应用系统开发时,不仅从整体上能够减轻构建J2EE Web应用系统项目的设计和开发实现的负担,也为Web应用系统提供国际化、异常处理和数据库连接池等方面的技术支持。开发者使用Struts 之类的框架是为了隐藏诸如对HTTP、CGI以及JSP之类技术应用的烦琐技术实现细节。a.“填空”式地开发实现应用系统。Struts 框架本身实现了MVC模式,也发展了M

15、VC模式;应用系统的开发者可以采用“填空”式的方式来进行开发,因为Struts 框架将一个标准的MVC的具体实现中的各个组件部分已经划分清晰和组件分离了。另外Struts框架还把标准的Servlet、JSP、自定义标签(TagLib)和信息资源(Message Resources)等整合到一个统一的应用框架中,开发人员利用该应用框架进行应用系统的开发时,不用再自己设计和编码实现MVC模式中的各个层的核心组件和应用系统的体系架构的正确性,因此能够节省开发时间和降低实现的风险。b.降低应用系统中的各个层组件之间的耦合度。采用Struts框架技术,可以加快应用系统的开发速度、增强应用系统的灵活性、降

16、低应用系统中的各个层组件之间的耦合度。因为它将应用系统中的表示层和控制层彼此松散地耦合在一起,这主要得益于采用struts-config.xml配置文件进行各个组件的配置管理;这样的设计方案也易于对系统的维护和功能扩展。c.各个开发人员之间的分工明确。由于基于Struts框架技术实现的Web应用系统中的控制层、业务层与表示层3者之间各自相互分离,所以这样的设计方案能够使应用系统中的表示层的开发者(网页设计人员)与后台业务功能具体实现的Java程序员各司其职和分工明确,并且可以并行开发,提高开发效率。d.简化表示层页面的设计和实现。在Struts框架中,应用系统的开发者可以在表示层的页面中大量地

17、使用Struts框架中所提供的定制标签库技术,以实现在页面中把业务逻辑处理的功能实现代码分离开。从而简化系统中表示层的设计和开发实现,进而避免在页面中出现大量的Java脚本代码。(2) Hibernate 技术Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的

18、重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制1.2. 系统实现手段 系统采用Struts+Hibernate的组合框架来架构,并采用流行的MVC模型:1.2.1. Model部分由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据Acti

19、onFrom里面的请求参数处理用户的请求1.2.2. View部分该部分采用JSP实现。Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。1.2.3. Controller组件Controller组件有两个部分组成系统核心控制器,业务逻辑控制器。系统核心控制器,对应上面的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成标注的Servlet。该控制器负责拦截所有的HTTP请求,然后根据用户请求决定是否要转给业务逻辑控制器。业务逻辑控制器,负责处理用户请求,本身不具备

20、处理能力,而是调用Model来完成处理。对应Action部分1.2.4. 资源层,即数据库服务器。作为底层数据资源,提供业务对象数据的存储和管理,这里采用Hibernate来实现数据库的连接与管理。目前采用的是Mysql,数据库设计独立于应用开发语言和工具。1.3. 开发环境介绍以下软件版本是本次系统开发中所使用的:1.3.1. 操作系统:Windows xpWindowsxp中文全称为视窗操作系统体验版。是微软公司发布的一款视窗操作系统。字母XP表示英文单词的“体验”(experience)1.3.2. 服务器:Tomcat 6.0Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资

21、源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。1.3.3. JAVA虚拟机:JDK Java虚

22、拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体

23、平台上的机器指令执行。1.3.4. 数据库:MysqlMySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于Mysql的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1.3.5. eclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过

24、插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。 2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。 2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5

25、版。2010年6月发布代号为Helios的3.6版。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。 3.需求分析 用户成功登录网站,工作流程图(3-1)登录网站退出网

26、站写信查看是否有回复浏览公开信件 3-1系统功能模块图 用户进入网站后,网页会自动加载相关的信息,如菜单,展现整个网页,点击右上角的“LOGIN”按钮进入登录界面,如果是新用户,则需要注册新账户,成功后,自动跳转到个人中心首页。 3-2网站登录流程图 用户写信投诉,管理员接收到信件后会及时的给予处理,当用户再次登录的时候就可以查看管理员的回复,如果不满意,可以再次写信。有关流程参看图3-3用户登录登录管理员写信查看回复浏览公开信件浏览公开信件查看信件回复 3-3系统数据流图登录成功后就可以查看自己的信件,查看已回复的信件等。4.数据库分析与设计4.1.数据库分析数据库概念设计过程即是用用户可以

27、理解的形式来表达信息的流程。概念设计所得到的概念模型,充分反映了现实世界中实体与实体之间的联系,是一个现实世界的真实模型。概念设计的成功与否将有直接影响到整个数据库系统设计的成功。根据需求分析的信息内容,可以得出的实体有:用户信息,信件信息等。,4.2数据库设计(3) 创建数据库在创建数据库的逻辑表结构之前,首先需要创建数据库。创建数据库有两种方法,可以在dos模式下编写创建数据库的脚本,也可以在利用辅助工具Navicat 8.1 Lite MySQL在视图模式下创建数据库。本次设计选择采用辅助工具直接添加。方法:选择连接-常规-填写连接名,ip地址/主机名,端口,用户名,密码,点击连接测试,

28、提示连接成功,此时数据库的连接已经完成。在新建的连接上右键,选择创建数据库.。(4) 数据库逻辑结构设计在数据库中创建表也有两种方法,可以通过辅助工具Navicat 8.1 Lite MySQL直接添加或者在dos下用脚本命令添加,本次设计选择在辅助工具Navicat 8.1 Lite MySQL中添加。在Navicat 8.1 Lite MySQL的mysql数据库中右键单击“表”节点,在弹出的快捷菜单中选择创建新表命令,然后就进入设计表结构界面,可以在该界面中加入表的列名,以及各列的数据类型、长度,以及是否为空。本系统一共创建了两个表。用户信息表,保存了用户的基本信息,包括登录名和密码,用

29、来核对用户身份的合法。信件内容与回复的一个信息表。 4-1数据库截图具体描述如4-2和4-3字段名称描述类型是否为空member_name昵称Varchar(255)yespasswrd密码Varchar(255)Yessex性别Varchar(255)Yesprovince省会Varchar(255)Yesemai邮箱Varchar(255)YesqqQq号Varchar(255)Yesregisterdate注册时间datetimeyes 4-2 t_member表用户的一些基本信息。字段名称描述类型是否为空title题目Varchar(255)Yescontent内容Varchar(25

30、5)Yescreatetime写信时间datetimeYesstatus状态Int(11)Yesresult回复状态Int(11)Yesispublic是否公开Int(11)Yesaddress发生地点Varchar(255)YesReply回复Varchar(255)Yesimporter满意度Bigint(20)Yesreplier回复者Bigint(20)yes 4-3 t_letter表信件的一些基本信息。5系统功能与实现5.1数据连接打开MySQL-front连接数据库,填写相关的信息,如名称,字符集,密码等。如5-1 5-1点击确定后就连接到数据库。 5-2如图5-2点击运行按钮,

31、数据库就创建好了。然后只要运行tomcat,在浏览器中输入主页http:/localhost:8080/xinfang/index.do就可以了。5.2个人模块 5.2.1 用户注册登录 5-3用户注册填写基本信息,包括昵称,密码,邮件等信息。点击提交。 相关代码实现:package ecit.xinfang.vo;public class MemberVo private long memberId;private String membername;private String password;private String sex;private String province;priv

32、ate String email;private String qq;private String motto;private String power; /1.管理员admin 0.普通用户 userpublic long getMemberId() return memberId; public void setMemberId(long memberId) this.memberId = memberId;public String getMembername() return membernamepublic void setMembername(String membername)

33、this.membername = membername;public String getPassword() return password;public void setPassword(String password) this.password = password;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public String getProvince() return province; public void setProvince(String provi

34、nce) this.province = provincepublic String getEmail() return email;public void setEmail(String email) this.email = email;public String getQq() return qq; public void setQq(String qq) this.qq = qq;public String getMotto() return motto;public void setMotto(String motto) this.motto = motto;public Strin

35、g getPower() return powerpublic void setPower(String power) this.power = power;点击提交后,用户就进入信访首页。如5-4 5-4 首页欢迎界面在首页会有一些相关的信息供注册者参考。5.2.2用户写信投诉 在这里用户可以根据实际情况写出需要解决的问题。选择公开与否。事发地。标题和相关的建议的详细的内容。如图5-5 5-5 信件内容 。相关部分代码实现:public class LetterAction extends Action Overridepublic ActionForward execute(ActionM

36、apping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception LetterForm lf = (LetterForm)form;HttpSession session = request.getSession();if(request.getParameter(action).equals(go)return mapping.findForward(writePage);if(request.getParameter(action).equals

37、(write)Letter letter = new Letter();/letter.setId(new Timestamp(new Date().getTime().toString();BeanUtils.copyProperties(letter, lf);letter.setId(Long.parseLong(new SimpleDateFormat(yyyyMMddmmss).format(new Timestamp(new Date().getTime();letter.setCreateTime(new Timestamp(new Date().getTime();letter

38、.setImporter(MemberVo)session.getAttribute(visitor).getMemberId();ILetterDao imd = (ILetterDao)DaoFactory.getDaoInstance(LetterDao);letter = imd.add(letter);LetterVo letterVo = imd.formate(letter);request.setAttribute(letter, letterVo);return mapping.findForward(letterDetail);同时用户也可以查看管理员处理公开的一些信件内容

39、。如图5-6 5-6公开信件内容图 5.2.3 管理员登录 管理员只需要直接登录就可以了,无需注册,用户名和密码都是admin。当管理员登录成功后,就可以查看待处理的信件,然后及时的答复民众。如图5-7所示。 5-7 环境污染信件回复相关部门代码实现:List letters = imd.getLetterOfPublic(currentPage, 10);List letterVos = new ArrayList();letterVos = imd.formatePoToVo(letters); request.setAttribute(letterList, letterVos);ret

40、urn mapping.findForward(letterList);if(request.getParameter(action).equals(letterDetail)String idStr = request.getParameter(id);Long id = Long.parseLong(idStr); ILetterDao imd = (ILetterDao)DaoFactory.getDaoInstance(LetterDao);Letter letter = imd.getLetterById(id);LetterVo letterVo = imd.formate(let

41、ter); request.setAttribute(letter, letterVo);return mapping.findForward(letterDetail);if(request.getParameter(action).equals(reply)String idStr = request.getParameter(id);String reply = request.getParameter(reply);Long id = Long.parseLong(idStr); ILetterDao imd = (ILetterDao)DaoFactory.getDaoInstance(LetterDao);Letter letter = imd.getLetterById(id);letter.setReply(reply);letter.setStatus(1); /status设置为1代表已经处理Long memberId = (MemberVo)session.getAttribute(visitor).getMemberId();letter.setReplier(memberId);imd.update(letter);LetterVo letterVo = imd.formate(letter);request.setAttribute(letter

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号