网上在线考试系统的开发(编辑修改稿)内容摘要:

在服务器端, JSP 引擎解释 JSP 标识和小脚本生成所请求的内容 (例如,通过访问 JavaBeans 组 件,使用 JDBC 技术访问数据库 ),并且将结果以 HTML(或XML)页面的形式发送回浏览器。 绝大多数 JSP 页面依赖于可重用的跨平台的足见 (JavaBeans 或者 Enterprise JavaBeans 组件 )来执行应用程序所要求的复杂的处理。 这样的好处是开发人员能够共享和交换执行普通操作的组件,加速了总体开发过程。 因此,基于 Web的较为复杂的应用程序 (如 JSP 开发网站或网上 MIS), JSP 的复杂架构必须由JavaBeans 达成。 关于 Struts2 Struts2 简介 虽然 Struts2 号 称是一个全新的框架,但这仅仅是相对 Struts 1 而言。 Struts 2 与 Struts 1 相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架: WebWork基础上发展起来的。 从某种程度上来讲,Struts2 没有继承 Struts 1 的血统,而是继承 WebWork的血统。 或者说, WebWork衍生出了 Struts2,而不是 Struts 1 衍生了 Struts2 是 WebWork 的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了 Struts 1 和 WebWork两者的优势,因此,是一个非常值得期待的框架。 Apache Struts2 是一个优雅的,可扩展的 JAVA EE web 框架。 框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。 Apache Struts 2 即是之前大家所熟知的 WebWork , WebWork和 Struts 社区决定合二为一,也即是 Struts 2 Struts2 的工作原理 工作流程当接收到一个 request Interceptor 做一些拦截或者初始的工作当 外部的 ervletrequest 到来时初始到了 servlet 容器 传递给一个标准的过滤器链 ActionContextCleanUp 这个在集成插件方面非常有用 Other filters( SitMesh,etc)调用 FilterDispatecher 会去查找相应腁 ctionMapper 如果找到了相应的ActionMapper 它将会将控制权限交给 ActionProxy ActionProxy 将会通过ConfigurationManager 来查找配置 下一步将会 通过 ActionInvocation 第 6 页 来负责命令模式的实现(包括调用一些拦截 Interceptor 框架在调用 action之前)一旦 action返回,会查找相应的 Result Result 类型可以是 jsp 或者 freeMark 等这些组件和 ActionMapper 一起返回给请求的 url(注意拦截器的执行顺序)响应的返回是通过我们在 中配置的过滤器如果 ActionContextCleanUp 是当前使用的,则 FilterDispatecher 将不会清理 sreadlocal ActionContext 如果ActionContextCleanUp 不使用,则将会去清理 sreadlocals。 Struts2 与 Struts1 的区别 1. Action 类 Struts1 要求 Action类继承一个抽象基类。 Struts1 的一个普遍问题是使用抽象类编程而不是接口; Struts 2 Action类可以实现一个 Action接口,也可实现其他接口,使可选和定制的服务成为可能。 Struts2 提供一个 ActionSupport 基类去实现 常用的接口。 Action 接口不是必须的,任何有 execute 标识的 POJO 对象都可以用作 Struts2 的 Action对象。 2. 线程模式 Struts1 Action是单例模式并且必须是线程安全的,因为仅有 Action的一个实例来处理所有的请求。 单例策略限制了 Struts1 Action能作的事,并且要在开发时特别小心。 Action资源必须是线程安全的或同步的。 Struts2 Action 对象为每一个请求产生一个实例,因此没有线程安全问题。 (实际上, servlet 容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题) 3. Servlet 依赖 Struts1 Action 依赖于 Servlet API ,因 为当一个 Action 被调用时HttpServletRequest 和 HttpServletResponse 被传递给 execute 方法。 Struts 2 Action不依赖于容器,允许 Action脱离容器单独被测试。 如果需要, Struts2 Action仍然可以访问初始的 request 和 ,其他的元素减少或者消除了直接访问 HttpServetRequest 和 HttpServletResponse 的必要性。 4. 可测性 测试 Struts1 Action的一个主要问题是 execute 方法暴 露了 servlet API(这使得测试要依赖于容器)。 一个第三方扩展 ——Struts TestCase——提供了一套Struts1 的模拟对象(来进行测试)。 Struts 2 Action可以通过初始化、设置属性、调用方法来测试, “依赖注入 ”支持也使测试更容易。 5. 捕获输入 Struts1 使用 ActionForm 对象捕获输入。 所有的 ActionForm 必须继承一个基类。 因为其他 JavaBean不能用作 ActionForm,开发者经常创建多余的类捕获 第 7 页 输入。 Struts 2 直接使用 Action属性作为输入属性,消 除了对第二个输入对象的需求。 Struts2 也支持 ActionForm模式。 rich对象类型,包括业务对象,能够用作输入 /输出对象。 这种 ModelDriven 特性简化了 taglib 对 POJO 输入对象的引用。 关于 Spring Spring 简介 Spring是一个开源框架,它由 Rod Johnson创建。 它是为了解决企业应用开发的复杂性而创建的。 Spring使用基本的 JavaBean来完成以前只可能由 EJB 完成的事情。 然而, Spring 的用途不仅限于服务器端的开发。 从简单性、可测试性和松耦 合的角度而言,任何 Java应用都可以从 Spring中受益。 简单来说, Spring是一个轻量级的控制反转 (IoC)和面向切面 (AOP)的容器框架。 为什么需要 Spring 当已经有许多开放源代码 (和专有 ) J2EE framework 时,我们为什么还需要Spring Framework。 Spring是独特的 , 因为若干个原因 : 1. 它定位的领域是许多其他流行的 framework没有的。 Spring关注提供一种方法管理你的业务对象。 2. Spring是全面的和模块化的。 Spring有分层的体系结构 , 这意味着你能选择使用它孤立的任何部分 , 它的架构仍然是内在稳定的。 因此从你的学习中,你可得到最大的价值。 例如 , 你可能选择仅仅使用 Spring 来简单化 JDBC 的使用 , 或用来管理所有的业务对象。 3. 它的设计从底部帮助你编写易于测试的代码。 Spring是用于测试驱动工程的理想的 framework。 Spring对你的工程来说,它不需要一个以上的 framework。 Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。 它也涉及到其他framework没有考虑到的内容。 为什么使用 Spring 通过 Spring 提供的 IoC 容器,我们可以将对象之间的依赖关系交由 Spring进行控制,避免硬编码所造成的过度程序耦合。 有了 Spring,用户不必再为单 第 8 页 实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。 通过 Spring提供的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。 在 Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。 关于 Hibernate Hibernate 简介 Hibernate 是一个开放源代码的 对象 关系映射 框架 ,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员 可以随心所欲的使用对象 编程 思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端 程序 使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成 数据持久化 的重任。 Hibernate 的优势是什么 Hibernate 封装了 jdbc,简化了很多重复性代码,它 简化了 DAO 层编码工作,使开发更 对象 化了,而且 Hibernate 有很好的移植性 ,支持各种 数据库 ,如果换个数据库只要在 配置文件 中变换配置就可以了,不用改变 hibernate 代码。 由于 hibernate 操 作的是纯粹的( pojo) java 类,没有实现任何接口,没有侵入性,所以说它是一个轻量级框架,使用起来非常方便。 关于 Mysql MySQL 是一种开放源代码的关系型数据库管理系统( RDBMS), MySQL数据库系统使用最常用的数据库管理语言 结构化查询语言( SQL)进行数据库管理。 由于 MySQL是开放源代码的,因此任何人都可以在 General Public License的许可下下载并根据个性化的需要对其进行修改。 MySQL 因为其速度、可靠性和适应性而备受关注。 大多数人都认为在不需要事务化处理的情况 下, MySQL是管理内容最好的选择。 它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向 C、 C++、 Eiffel、 Java、 Perl、 PHP、 Python 以及 Tcl 等编程语言的编程接口( APIs),支持多种字段类型并且提供了完整的操作符支持查询中的 SELECT 和 WHERE 操作。 第 9 页 目前 MySQL 被广泛地应用在 Inter 上的中小型网站中。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL作为网站数据库。 Tomcat服务器 Tomcat 服务器简介 Tomcat 是一个免费的开源的 Serlvet 容器,它是 Apache 基金会的 Jakarta 项目中的一个核心项目,由 Apache, Sun 和其它一些公司及个人共同开发而成。 由于有了 Sun的参与和支持,最新的 Servlet 和 Jsp 规范总能在 Tomcat 中得到体现。 Tomcat 中采用了 Servlet 容器: Catalina,完整的实现了 和 规范。 Tomcat 提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。 由于 Java 的跨 平台特性,基于 Java 的 Tomcat 也具有跨平台性。 Tomcat 的特点与优势 在 Tomcat 中,应用程序的部署很简单,你只需将你的 WAR 放到 Tomcat的 webapp 目录下, Tomcat 会自动检测到这个文件,并将其解压。 你在浏览器中访问这个应用的 Jsp时,通常第一次会很慢,因为 Tomcat要将 Jsp转化为 Servlet文件,然后编译。 编译以后,访问将会很快。 另外 Tomcat 也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个 xml 文件中。 通过这个应用,辅助于 Ftp,你可以在远程通过 Web 部署和撤销应用。 当然本地也可以。 Tomcat 服务器的安装和配置 在开始安装之前,先准备 J2SDK 和 TOMCAT 两个软件,如果已经安装了J2SDK,就只需 TOMCAT 即可。 表 21环境 变量 设置 参考数据 变量名 变量值 CATALINA_HOME D:\Program Files\ CLASSPATH .。 %JAVA_HOME%\lib。 %CATALIN。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。