基于javaweb与xml的留言板设计毕业设计论文内容摘要:

子框架之间彼此可以独立,也可以使用其它的框 架方案加以替代, Spring希望提供 onestop shop的框架整合方案 Spring不会特别去提出一些子框架来与现有的 OpenSource 框架竞争,除非它觉得所提出的框架够新够好,例如 Spring 有自己的 MVC 框架方案,因为它觉得现有的 MVC方案有很多可以改进的地方,但它不强迫您使用它提供的方案,您可以选用您所希望的框架来取代其子框架,例如您仍可以在 Spring 中整合您的 Struts框架。 Spring的核心概念是 IoC, IoC 的抽象概念是「依赖关系的转移」,像是「高 19 层模块不应该依赖低层模块,而是模 块都必须依赖于抽象」是 IoC 的一种表现,「实现必须依赖抽象,而不是抽象依赖实现」也是 IoC 的一种表现,「应用程序不应依赖于容器,而是容器服务于应用程序」也是 IoC 的一种表现。 回想一下面向对象的设计原则: OCP原则和 DIP原则。 Spring 的核心即是个 IoC/DI 的容器,它可以帮程序设计人员完成组件(类别们)之间的依赖关系注入(连结),使得组件(类别们)之间的依赖达到最小,进而提高组件的重用性, Spring 是个低侵入性( invasive)的框架, Spring 中的组件并不会意识到它正置身于 Spring中,这使 得组件可以轻易的从框架中脱离,而几乎不用任何的修改,反过来说,组件也可以简单的方式加入至框架中,使得组件甚至框架的整合变得容易。 Spring最为人重视的另一方面是支持 AOP( AspectOriented Programming),然而 AOP 框架只是 Spring支持的一个子框架,说 Spring框架是 AOP 框架并不是一件适当的描述,人们对于新奇的 AOP关注映射至 Spring上,使得人们对于Spring的关注集中在它的 AOP框架上,虽然有所误解,但也突显了 Spring的另一个令人关注的特色。 在 spring 官网 下载 其中包括了 spring 框架包和其它一些常用 Java包,其中就包括 dom4j包的核心 包类。 (摘自《深入 Java Servlet网络编程》) Web工程的 部署 整个设计的开发是在 Myeclipse中,所以将 Tomcat 引入到 Myeclipse中可以方便的运行和关闭服务器,减少开发过程的复杂性, 下面介绍项目的部署工作 : (1)打开 Myeclipse,进入工作界面, 右键单击工作区,选择 “NewProject” ,如图。 20 图 建立新工程 (2)在弹出界面中选择 Web Project ,点击 “Next”,如图。 图 选择工程类型界面 21 (3)Web工程 命 名为 “MessageBoard”,至此就建立了一个 Web工程,如 图 所示。 图 Project 命名界面 (4)解压缩下载的 ,将 spring所需要的 dist目录下的 , lib\jakartamons目录下 ,lib\log4j目录下的 和 lib\dom4j目录下的 , dom4j包复制到 MessageBoard\WebRoot\WEBINF\lib 下,至此就导入了设计所需的全部 jar文件。 (5)单击菜单栏的 “MyEclipse”选择 “Preferences”, 将 tomcat 引入到MyEclipse中 ,如图。 22 图 Tomcat 引入界面 (6)右键 单击 MessageBoard,选择 “MyEclipse”下的 “Add and Remove…” 如图。 图 工程加入容器界面 23 (7)选择 Project为 “MessageBoard”,单击 “Add”,如图。 图 Project 选择界面 (8)选择 Server为 ,单击 “Finish”, 至此就将工程置入了 Tomcat 容器中 ,如图。 图 Tomcat 引入完成界面 24 (9)运行 tomcat ,在浏览器栏中输 入 或 出现 图 ,则所有配置成功。 图 工程在浏览器的显示界面 3 留言板原理及 核心 API介绍 系统设计的是一 个 Jsp 留言板, 用户需有账号在登陆页面进行登陆, 并将用户状态存放在 session中, session对象实现了 HttpSession接口,用于保存每个用户的状态。 session对象保存在容器里, sessionId通过 Cookie在服务器和客户端之间往返发送。 如果客户端不支持 Cookie,就自动转换为使用 URL重写。 一般情况下,客户端首次访问 Web应用时,容器为其创建 session对象, session对象具有一个唯一的 ID。 在容器对首次访问的响应中,容器将这个唯一的 ID通过 Cookie方式发送到客户端浏览 器。 浏览器在后续的每次访问时会把 Cookie发送到服务器,容器从 Cookie中获得 sessionId,根据 sessionId在容器中找到该用户的 session。 因此,一个用户的多次 HTTP请求对应的是同一个 session对象。 session的超时:一方面,由于容器要保存和管理 session对象,这会占用系统资源;另一方面,为了安全的原因,如果用户没有正常退出系统,用户应该经过一段时间后能够自动退出系统。 因此, session是会超时的,当 session超时后, session对象和 session对象上的属性就被 容器销毁了。 登陆后可以在留言板上发表 和查询 留言,并提供注册功能,系统管理员默认为 2个 , zgf和 mxf,容器初始化时由 spring负责依赖注入,管理员 可以发表,查询,修改和删除留言的功能,以便 25 对留言进行管理 ,所有用户信息和留言信息均存储到 Xml文件中。 核心 API介绍 系统 后台由几个主要的 Java类负责管理,下面介绍主要的 API: (1) 系统管理员信息的核心 java类,封装了管理员的 id(唯一标示 ), name,password,并提供了各属性的 getter和 setter方法,是一 javabean。 (2) 系统管理员管理 java类,负责 tomcat服务器初始化时将 件信息读入,并存放在 adminList中,得到管理员的全部信息。 只要服务器不关闭, adminList内容就不会消失,从而减轻了反复操作 xml文件对服务器造成的负载。 (3) 用户信息的核心 java类,封装了用户的 id(唯一标示 ), name, password,并提供了各属性的 getter和 setter方法 ,是一 javabean。 (4) 对用户信息进管理的 java类,负责 tomcat服务器初始化时将 信息读入,并存放在 userList中,得到用户的全部信息。 只要服务器不关闭, List内容就不会消失,从而减轻了反复操作 xml文件对服务器造成的负载。 并且封装了一个 addUser方法,负责将新的用户信息存入到 userList中,并通过 saveTo方法将 userList写入到。 (5) 留言信息的核心 java类,封装了 uid(用户信息的唯一标示), author, title,content属性,并提供了各属性的 getter和 setter方法,是一 javabean。 (6) 对留言信息进行管理的核心 java 类,负责 tomcat 服务器初始化时将 文件信息读入,并存放在 mesList 中,得到留言的全部信息。 只要服务器不关闭, List内容就不会消失,从而减轻了反复操作 xml文件对服务器造成的负载。 在 addMessagge方法,用于将 新留言增加到 mesList 中 ,按照 uid(唯一标示)的一个 removeMessage 方法,用于将需要删除的留言从 mesList中移除,按照 uid(唯一标示)的一个 updateMessage 26 方法,取得要更新的留言类,按照 author 的 getMessage 方法,取得根据作者查询的全部留言信息,并存放到一个 autList中,每个方法中都会通过 saveTo方法将 userList写入到。 将更新后的留言信息存入到 xml文件中。 4 留言系统分析 IOC技术 设计中用到了 spring 的 ioc 技术,前面导入了 spring 的主要 jar 文件,在WEB_INF下建立 ,这是 spring ioc的配置文件,是格式良好的 xml文件,负责管理设计中要用到的 bean,内容如下: ?xml version= encoding=UTF8? !DOCTYPE beans PUBLIC //SPRING/DTD BEAN/EN beans bean id=um class= singleton=true initmethod=init property name=userFile value=C:\Java Application\workspace\MessageBoard\WebRoot\WEBINF\/ /bean bean id=mesManager class= singleton=true initmethod=init property name=mesFile value=C:\Java Application\workspace\MessageBoard\WebRoot\WEBINF\/ /bean bean id=am class= singleton=true initmethod=init property name=adminFile value=C:\Java Application\workspace\MessageBoard\WebRoot\WEBINF\/ /bean /beans 27 文件中每个 bean对应一个类, class为要管理的类, id 为指向这个类实例的一个引用, 类的实例由 spring初始化时自动创建, bean的 singletone属 性说明此类在整个服务器运行过程中是否为单一化,若为 true则说明在服务器整个运行过程中只有一个类实例对象,每次对它的请求都会返回同一个对象, initmethod指出容器创建对象时自动加载的初始化方法, property定义了类创建时对属性的设置值,此 文件负责在 spring 容器初始化时分别创建, ,三个类的唯一实例对象,并调用各自的初始化方法,将各自的 xml 文件通过 setter 注入方式注入到属性中,从而将 user,adminstrators, message的信息存入到 userList, adminList和 mesList集合中。 其中 默认两个管理员账号 zgf 和 mxf, 中存在一个 user账号,用留言的管理和演示。 留言系统运行机制 (1)系统运行时,在浏览器输入 这是留言板的登录界面,在 会判断用户是否已经登陆,若没登陆,会出现如图 ,提示用户登陆。 图 用户登陆界面 28 若用户无账号,可单击 “注册 ”,链接到 页面进行注册,如 图 所示。 图 用户注册界面 (2)在 ,首先有一用户输入表单,提示用户输入注册信息, 用户按下 “提交 ”按钮后会首先在客户端的 JavaScript脚本中进行检验,若有一项出现空项或不符合页面中提示的文字信息会向用户发出警报,提示用户修改,这样 可以在客户端检验输入格式,减轻了服务器的负载和用户的等待时间, 图 为用户两个密码输入不一致的结果。 29 图 用户密码输入不一致 页面中还存在一个验证码的输入,用于防止用户的胡乱注册,验证码生成程序在 ,利用了 java GUI 编程的 awt包 ,在内存中随机的生成验证码数字,并输出到界面显示,并 通过 (code, sRand)。 将其放入 session中,以便和用户输入验证码进行校验,若用户输入格式正确,则会把表单内容送到服务器端进行处理,若验证码输入正确,则首先会通过ApplicationContext 对象的 getBean方法 获得前文中配置的 id=um的 bean对象,在对 um中的 userList进行遍历,若其中任何 user对象均不存在提交的 id,则将提交 id,name,password新建一个 user对象 (new User(id,name,password))并加入userList中, 通过 UserManager的 saveTo方法 存储到 ,在客户端提示用户注册成功,并跳转到登陆界面,如图。 注册前后 图。 30 图 注册成功界面 图 注册之前 31 图 注册成功后 若 id 已经存在,则会提示用户注册失败, 通知其更改新的 id,如图。 图。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。