【Jsp精品源码栏目提醒】:网学会员--在 Jsp精品源码编辑为广大网友搜集整理了:【精品】新闻发布实训报告JSP - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
信息理工学院 课程设计(实训)报告系 部 _ 信息工程系__ 专 业 _____________班 级 学 号 ____________姓 名 _______________课 新闻发布系统 题 _____________指导教师 报告成绩 _ _ 日 期:2011 年 12 月 28 日 目 录目 录 ............................................................................................................................................. II第1章 基础知识.......................................................................................................................1 1.1 MySql数据库 ......................................................................................................................1 1.2
JSP与Servlet .......................................................................................................................1 1.3 Struts框架 ........................................................................................................................3第 2 章 总体设计.............................................................................................................................5 2.1 需求分析............................................................................................................................5 2.2 数据库设计........................................................................................................................5 2.3 功能模块简介....................................................................................................................6 2.4 框架的应用........................................................................................................................9第 3 章 详细设计...........................................................................................................................13第 3 章 详细设计...........................................................................................................................13 3.1 新闻显示功能..................................................................................................................13 3.2 用户注册功能..................................................................................................................13 3.3 修改注册信息功能..........................................................................................................13 3.4 管理新闻功能..................................................................................................................13 3.5 添加新闻功能..................................................................................................................14 3.6 管理用户...........................................................................................................................14 3.7 注销...................................................................................................................................14第 4 章 功能实现...........................................................................................................................15 4.1 新闻显示功能..................................................................................................................15 4.2 用户注册功能..................................................................................................................17 4.3 修改注册信息功能..........................................................................................................19 4.4 管理新闻功能..................................................................................................................20 4.5 修改新闻功能..................................................................................................................22 4.6 管理用户...........................................................................................................................24 4.7 注销...................................................................................................................................25第 5 章 总结...................................................................................................................................27第 6 章参考文献.............................................................................................................................27 第 1 章 基础知识 第1章 基础知识1.1 MySql 数据库 今天 MySQL 已被广泛地应用在 Internet 上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放
源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库。
MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。
系统采用加载纯 Java数据库驱动程序的方式操作数据库,目前 mysql 还不支持桥连接。
SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。
MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成,并且能够支持多平台。
1.2
JSP 与 ServletJava Servlet 是一种独立于平台和协议的服务器端的 Java 应用程序,可以生成动态的 Web 页面。
Java Servlet 是位于 Web 服务器内部的服务器端的 Java 应用程序,与传统的从命令行启动的 Java 应用程序不同,Servlet 由 Web 服务器进行加载,该 Web服务器必须包含支持 Servlet 的 Java 虚拟机。
Java Servlet 与 Applet 的比较: 相似之处: 它们不是独立的应用程序,没有 main方法。
它们不是由用户或程序员调用,而是由另外一个应用程序容器调用。
它们都有一个生存周期,包含 init和 destroy方法。
不同之处: Applet 具有很好的图形界面AWT,与浏览器一起,在客户端运行。
Java Servlet 则没有图形界面,运行在服务器端。
Java Servlet 与 CGICommon Gateway Interface 的比较: 第 1 章 基础知识 与传统的 CGI 和许多其他类似 CGI 的技术相比,Java Servlet 具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。
在未来的技术发展过程中,Servlet 有可能彻底取代 CGI。
高效 在传统的 CGI 中,每个请求都要启动一个新的进程,如果 CGI 程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。
而在 Servlet中,每个请求由一个轻量级的 Java 线程处理而不是重量级的操作系统进程。
在传统 CGI 中,如果有 N 个并发的对同一 CGI 程序的请求,则该 CGI 程序的代码在内存中重复装载了 N 次;而对于 Java Servlet,处理请求的是 N 个线程,只需要一份 Servlet 类代码。
在性能优化方面,Servlet 也比 CGI 有着更多的选择。
方便 Java Servlet 提供了大量的实用工具例程,例如自动地解析和解码 HTML 表单数据、读取和设置 HTTP 头、处理 Cookie、跟踪会话状态等。
功能强大 在 Java Servlet 中,许多使用传统 CGI 程序很难完成的任务都可以轻松地完成。
例如,Java Servlet 能够直接和 Web 服务器交互,而普通的 CGI 程序不能。
Servlet 还能够在各个程序之间共享数据,使得数据库连接池之类的功能很容易实现。
可移植性好 Java Servlet 用 Java 编写,Servlet API 具有完善的标准。
为 因此, IPlanetEnterprise Server 写的 Servlet 无需任何实质上的改动即可移植到 Apache、Microsoft IIS 或者 WebStar。
几乎所有的主流服务器都直接或通过插件支持Servlet。
节省投资 不仅有许多廉价甚至免费的 Web 服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持 Servlet 的话,要加上这部分功能也往往是免费的或只需要极少的投资。
Java Servlet 与 JSPJavaServer Pages 的比较: 第 1 章 基础知识 JavaServer PagesJSP是一种实现普通静态 HTML 和动态 HTML 混合编码的技术,
JSP 并没有增加任何本质上不能用 Servlet 实现的功能。
但是,在
JSP 中编写静态 HTML 更加方便,不必再用 println 语句来输出每一行 HTML 代码。
更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行 HTML 设计,同时留出供 Java Servlet 程序员插入动态内容的空间。
1.3 Struts框架 在我学习 Struts 框架时,我本人更愿意看到 Struts 的本质,其实 Strurts 框架就是一个核心类 ActionServlet,这个类把所有请求都劫走了,然后根据请求的 让URL 转发到相应的 Action 上, Action 处理相应的系统业务, 表单数据由 Struts替我们进行封装 FormBean 中,我们只需取出来进行操作。
在有 Struts 框架编程时我们不需要认真考虑里面的机制,而是要学会如何更好的去运用它。
如果有一天我愿意,我会在我做的项目中手动编写一个框架。
Strusts 框架的基本组成如下: 1,Client browser(客户浏览器) 来自客户浏览器的每个 HTTP 请求创建一个事件。
Web 容器将用一个 HTTP 响应作出响应。
2,Controller(控制器) 控制器接收来自浏览器的请求,并决定将这个请求发往何处。
就 Struts 而言,控制器是以 servlet 实现的一个命令设计模式。
struts-config.xml 文件配置控制器命令。
3,业务逻辑 业务逻辑更新模型的状态, 并帮助控制应用程序的流程。
就Struts 而言,这是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。
4,Model(模型)的状态 模型表示应用程序的状态。
业务对象更新应用程序的状态。
ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。
JSP 文件使用
JSP 标记读取来自 ActionForm bean 的信息。
5,View(视图) 视图就是一个
JSP 文件。
其中没有流程逻辑,没有业务逻辑,也没有模型信息 —— 只有标记。
标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。
Struts中的Controller(控制器) 命令设计模式的实现: Struts 的控制器将事件(事件通常是 HTTP post)映射到类的一个 servlet. ActionServlet ( Command ) 创 建 并 使 用 Action 、 ActionForm 和ActionForward . 通过struts-config.xml 文件配置该 Command.从而扩展 Action和 ActionForm 来解决特定的问题。
可以通过扩展 ActionServlet 来添加Command 功能。
在Struts框架中控制器组件由三个部分构成: 1,消息控制模块; 用户所有的提交请求都发往消息控制模块,在由消息总线模块根据视图映射模块找到消息处理模块来执行处理逻辑。
消息控制模块接收所有用户的请求,并根据请求视图找到处理。
Strtus 中 通 过 ActionServlet 和RequestProcessor类来完成。
2,消息处理模块; 该模块执行该消息的逻辑处理,因此通常由用户扩展实现。
Struts中通过Action类来实现。
3,视图映射模块; 控制器逻辑和视图逻辑之间的结合是通过配置模块和配置文件建立其 第 1 章 基础知识的链接。
Struts 中 配 置 模 块 通 过 ModuleConfig 类 来 完 成 , 而 配 置 文 件 由struts-config.xml文件提供。
Struts中的View(视图) 视图组件通过
JSP组件实现的。
Struts框架对视图组件进行了扩展和封装。
Struts对视图的扩展提供了一组扩展服务器标签用来提供视图显示以及传递数据到处理缓冲,而处理缓冲由ActionForm的扩展类来实现。
Struts框架利用ActionForm Bean来实现视图与控制器之间的数据的交互,维持会话级或请求级的模型的状态。
服务器标签主要包括: Html视图标签; Logic逻辑流程控制标签; Bean数据缓冲读取标签; 七,Struts中的Model(模型) 1,Struts框架中并没有定义特定的模型组件,而是希望由用户自己决定选择合理的模型组件。
J2EE中可用的模型组件包括: JavaBean 用户定义组件; EJB 组件,由EJB容器实现组件; JDO 未来J2EE数据访问模型; 一些扩展框架如:Hibernate; 2,模型中状态的级别 会话级或请求级:ActionForm bean来维持 ; 持久级:模型组件来 第 2 章 总体设计 第 2 章 总体设计2.1 需求分析 本系统是新闻发布系统。
由于网站新闻需要频繁性更新,每次更新管理员都要到服务器上更新,给管理员管理网站造成不便,因这种需求本系统诞生了。
在系统开发过程中寻找需求是一件十分重要的工作,在认真分析和调查后确定了本系统的需求要求。
本系统参与者:管理员、普通用户、浏览者。
系统功能模块: 新闻浏览 用户登陆 用户注册 用户修改信息 管理新闻 添加新闻 管理用户 注销 新闻发布系统 修 浏 用 注 改 添 管 管 览 户 册 注 加 理 理 注 新 登 用 册 新 新 用 销 闻 录 户 信 闻 闻 户 息 图 2-12.2 数据库设计数据库命名为 mynews,三张表 user,news,admin。
User 表字段(username,password,phone,qq) 第 2 章 总体设计 图 2-2News 表字段(id,title,author,message,post_time,username) 图 2-3Admin 表字段(username,password) 图 2-42.3 功能模块简介 新闻浏览 首页显示网站所有新闻列表,根据新闻的数量分页,网站顾客可以自由浏览新闻。
用户登陆 用户登界面,用户需根据自己的类型(普通用户,管理员)进行选择性登陆,登录 时需要填写验证码。
注意本系统部分功能只有在登陆后才被激活,且不同用户类型登陆 后所具有的功能也不同。
图 2-5 是用户登录用例图 第 2 章 总体设计 图 2-5 用户注册 注册模块仅服务于普通用户,在网站上注册的用户身份仅是普通用户,管理员需到服务器注册信息。
图 2-6 新用户注册状态图 图 2-6 用户修改信息 第 2 章 总体设计 普通用户登陆后才能修改自己的信息,为了确保系统安全系统管理员不能在客户端修改信息,必须到服务器数据库直接修改信息。
图 2-7 用户修改信息序列图 图 2-7 管理新闻 用户登陆后此模块被激活, 为了确保其他用户在本站的利益,用户仅可以管理自己的新闻,管理新闻包括(删除,修改) ,系统管理员可以管理所有用户发表的新闻。
图 2-8 用户管理新闻用例图 图 2-8 添加新闻 第 2 章 总体设计 用户登录后可以发布新闻,发布的新闻将在系统首页新闻列表中显示出来,用户在 发表新闻时若不填写作者,系统默认当前用户为作者。
发表时间不用填写,由系统根据 服务器时间默认。
管理用户 此模块专属于系统管理员, 系统管理员登陆后,可以查看本系统存在的所有普通用 户的信息,信息包括(用户名,密码,联系电话,即时通信 QQ) 。
管理员可以根据需要,对系统中的任何用户进行封号处理。
图 2-9 管理员管理用户用例图 图 2-9 注销 当用户登录后,不再进行操作时,为了减少服务器资源的浪费和自身账户的安全性, 可以进行注销。
2.4 框架的应用使用 struts 框架需要搭建环境 拷贝 struts lib 下的所有 jar 到 WEB-INF/lib 下 修改 web.xml 文件,配置 ActionServlet 指定 struts-config.xml 的位置 ActionServlet 的日志输出等级 配置 Apache 的第三方组件的日志输出等级 当 Tomcat 启动的时候执行 ActionServlet 的初始化方法 提供 struts-config.xml 文件 应用 struts 创建登录项目 第 2 章 总体设计 创建
jsp 页面(login.jspsuccess.jsperror.
jsp) 创建 LoginActionForm.java,做数据收集的。
属性名与表单元素名一致 创建 LoginAction.java 配置 struts-config.xml 文件 ActionServlet 由 Struts 提供:org.apache.struts.action.ActionServlet 是一个 Servlet,需要在 web.xml 中配置 ActionForm 封装页面提交的数据 继承自 org.apache.struts.action.ActionForm 需要在 struts-config.xml 中配置 与
JSP 的交互:从页面获取数据 loginActionForm.getUsername 发 送数据到页面 request.setAttributequotusernamequotusername ActionAction.java 封装一类客户操作 继承自 org.apache.struts.action.Action,实现 execute 方法 需要在 struts-config.xml 中配置 struts-config.xml 配置 Form Bean 和 Action Bean 服务器启动时,Struts 装载 struts-config.xml 信息服务器启动后,根据 web.xml 加载 ActionServlet 读取 struts-config.xml 文件内容到内存。
输入用户名密码提交表单、提交到 action 属性的 login.do通过 ActionServlet 读 struts-config.xml 文件找到 action 下的 path 属性找到.do通过 name 属性找 form-beans 中的 form-bean 的 name属性得到 ActionForm 的包名类名先实例化 form,把表单的值填充给 form,调用 form 的 validate 方法验证、ActionErrors 返回 null 表示验证通过,否则失败返回 input 指定的页面.验证通过会实例化 Action,执行 Action 的 excute 方。
整个项目的 Struts-config.xml 配置文件代码: ltxml versionquot1.0quot encodingquotUTF-8quotgt 第 2 章 总体设计ltDOCTYPE struts-config PUBLIC quot-//Apache Software Foundation//DTD Struts Configuration1.3//ENquot quotstruts-config_1_3.dtdquotgtltstruts-configgt ltform-beansgt ltform-bean namequotregisterFormBeanquottypequotactionForm.RegisterActionFormquotgtlt/form-beangt ltform-bean namequotloginFormBeanquottypequotactionForm.LoginActionFormquotgtlt/form-beangt ltform-bean namequotmodifyrafquottypequotactionForm.RegisterActionFormquotgtlt/form-beangt ltform-bean namequotaddArt.