1、XXXX 公司XXX 发布平台设计方案XX 单位2018 年 3 月1、概述阐述项目建设背景项目必要性、先进性2、建设目标1、宣传公司、中心的管理理念,促进企业文化的建设与传播;2、实现对外信息发布的信息资源分类整合、集中展现和优化组合;3、面向各类用户 XXXX 提供信息发布、意见反馈的处理平台,加强与社会的沟通,更好地提供信息服务;4、内部建立信息内容的编辑、审核、发布的严格审批流程,确保发布信息的严肃性、严谨性;5、按照 XX 公司外部信息披露要求,规范访问域名以及安全性规范,确保系统的安全、可靠、稳定和快速响应。3、建设思路围绕以上建设目标,按照稳定、安全、高效、方便、快速部署的思路进
2、行XXXX 信息发布平台建设,构建公共信息( 如新闻、公告等 )与业务动态信息信息发布模式,探讨下一步客户服务体系的应用部署的架构模式。对其中这类业务相关性的动态数据,这类数据来源可以是来自于信息系统,也可以采用填报功能,数据设计存储在物理表中,一是把发布和数据来源管理分离,二是更加方便地进行权限控制。从数据安全角度考虑,考虑动态数据与网站数据库分开存储,同时把动态数据展现界面也单独部署,与对外网站建立链接,形成主站与子站的关系,可以利用公司现有网络安全控制机制很好地保护动态数据的安全性。4、系统架构系统基于 XXXX 技术开发,采用 XXXX 主流技术架构,采用伪静态结合页面缓存技术建设.
3、系统结构图如下:略 如上图所示,网站服务器由两台 PC 服务器组成,一台服务器位于外网,向互联网提供 WEB 服务;另一台服务器放置在内网,向省公司用户提供 WEB 服务,一台数据库服务器放置在内网,与内网的 WEB 服务器放置在同一网段,负责为内网与外网提供数据服务,外网 Web 服务不允许直接访问数据库,而是通过隔离设备。网站相关管理员和业务人员通过内网或外网访问,实现对网站的访问、管理或数据上传。网站运营平台:1、网站服务器,PC 机型号 XXXX;操作系统: XXXX;主频:XXXX;内存:XXXX2、网站服务器,Pc 机型号: XXXX操作系统: XXXX;主频:XXXX;内存:XX
4、XX;3、数据库服务器现有数据库配置如下:型号:XXXX 内存:XXXX硬盘:XXXX 盘 raid 1 方式Cpu:XXXX 每颗 XXXX4、weblogic XXX。根据 XXXX 的要求,从高可用性和高靠性考虑,建议网站内、外网 PC 服务器均配置双机或一台备用机;如果是配置备用机,一台运行,另一台做备份和备用,当运行的服务器出现故障时人工切换到另一台服务器上运行。名词解释:Hibernate:Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应
5、用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。 Session 接口Session 接口负责执行被持久化对象的 CRUD 操作(CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。)。但需要注意的是 Session 对象是非线程安全的。同时,Hibernate 的 session 不同于 JSP 应用中的HttpSession。这里当使用 session 这个术语时,其实指的是 Hi
6、bernate 中的session,而以后会将 HttpSesion 对象称为用户 session。 SessionFactory 接口SessionFactory 接口负责初始化 Hibernate。它充当数据存储源的代理,并负责创建 Session 对象。这里用到了工厂模式。需要注意的是 SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory 就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。 Configuration 接口Configuration 接口负责配置并启动 Hibernate,创建
7、 SessionFactory 对象。在 Hibernate 的启动的过程中,Configuration 类的实例首先定位映射文档位置、读取配置,然后创建 SessionFactory 对象。Transaction 接口Transaction 接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query 和 Criteria 接口Query 和 Criteria 接口负责执行各种数据库查询。它可以使用 HQL 语言或 SQL 语句两种表达方式。Spring:Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的
8、。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的 JavaBean 代替 EJB,并提供了更多的企业应用功能 范围:任何 Java 应用 简单来说,Spring 是一个轻量级的控制反转(IoC) 和面向切面(AOP)的容器框架。 轻量从大小与开销两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 S
9、pring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地, Spring 应用中的对象不依赖于 Spring 的特定类。 控制反转Spring 通过一种称作控制反转(IoC )的技术促进了松耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction
10、 )管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype) ,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。 框架Spring 可以将简单的组件配置、组合成为复杂的应用。在Spring 中,应用对象被声明式
11、地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你。 所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为 Spring 中的各种模块提供了基础支持。编辑本段为什么需要 Spring你可能正在想“Spring 不过是另外一个的 framework”。当已经有许多开放源代码(和专有) J2EE framework 时,我们为什么还需要 Spring Framework? Spring 是独特的, 因为若干个原因: 它定位的领域是许多其他流行的 framework 没有的。Sp
12、ring 关注提供一种方法管理你的业务对象。 Spring 是全面的和模块化的。Spring 有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用 Spring 来简单化 JDBC 的使用,或用来管理所有的业务对象。 它的设计从底部帮助你编写易于测试的代码。Spring 是用于测试驱动工程的理想的 framework。 Spring 对你的工程来说,它不需要一个以上的framework。Spring 是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他 framework 没有考
13、虑到的内容。Struts2:Struts2 号称是一个全新的框架,但这仅仅是相对 Struts 1 而言。Struts 2 与 Struts 1 相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork 基础上发展起来的。从某种程度上来讲,Struts2 没有继承 Struts 1 的血统,而是继承 WebWork 的血统。或者说,WebWork 衍生出了 Struts2,而不是 Struts 1 衍生了 Struts2.因为 Struts2 是WebWork 的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了 Strut
14、s 1 和 WebWork 两者的优势,因此,是一个非常值得期待的框架。Apache Struts2 是一个优雅的,可扩展的 JAVA EE web 框架。框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。Apache Struts 2 即是之前大家所熟知的 WebWork 2.在经历了几年的各自发展后,WebWork 和 Struts 社区决定合二为一,也即是 Struts 2。5、功能设计按照 XXXX 公司要求,搭建与内网相同的内容管理平台,对外达到展现企业形象、信息发布、客服服务、留言反馈甚至业务处理的目标,对内实现信息采集、业务系统数据整合、编辑、页面制作、审核、发布
15、完整的链条。系统还要为网站系统维护人员提供较为齐全的维护功能。作为严肃的官方网站,功能组织和界面展现要美观、大方、协调、方面和快捷。下面从功能规划、栏目设计、可视化编辑、信息发布流程、后台管理等多个方面进行详尽介绍。5.1 功能规划序号 功能名称 描述1 展现形象 向外界展现 XXXX 公司、XXXX 的企业文化、XXXX 风采等。2 信息披露 向外界定期发布公司动态,市场,行业动态,服务信息,政策法规等;实现与 XXXX 系统数据对接,XXXX 系统中部分数据内容通过网站对外展示。3 客户服务 提供网上业务咨询等4 用户管理 用户注册要实名制;内、外网均能访问系统;对用户实行分类权限管理;可
16、以禁止指定的注册用户访问系统;5 外网业务处理6 网站连接 连接 XXXX 及常用网站等7 网站检索 为用户提供网站内容的检索8 网站导航 为用户提供网站网页的导航功能9 网站地图 为用户提供网站栏目的分布图,是用户对网站整体框架能快速了解10 企业邮箱 为用户提供互联网邮件服务的访问入口 Outlook Express11 服务监督 设立意见建议反馈、服务举措等专用邮箱,接受客户及公众的监督12 网站计数器 显示网站实时在线人数,以及登陆人数计数13 版权声明 对网站的版权、维护单位及联系方式等网站信息进行说明14 网站管理 为网站维护人员提供内容编辑、审核、发布、管理等平台;能够查询到登陆
17、用户的登录 IP 和登陆次数及最后的登陆时间;对发布的内容需要经过审核后才能对外发布;5.2 栏目设计栏目管理:支持直观、方便的树状网站栏目管理功能;可以根据需要进行调整、增减、删除栏目。点击某个父栏目,您将看到它的子栏目列表,这里以前面添加的“城市热点”为例,如下图所示。图略5.3 页面可视化编辑对于非专业人员来说,页面制作是困难的,所以如何让业务人员就快速高质量地完成信息编辑就显得非常必要,从而让网站维护人员可以有更多的精力关注安全等其它事情。系统高度集成了 FreeMarker,为各级使用者提供了可视化的页面编辑界面,对可以对发布的内容进行在线的编辑、格式化等动作,并保存到内容库,其他用
18、户浏览时直接在线打开。 。编辑过程中可以随时使用预览功能查看效果。如下图所示:图略FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯 Java 编写,FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序, FreeMarker 具有一些编程的能力,通常由 Java程序准备要显示的数据,由 FreeMarker 生成页面,通过模板显示准备的数据(如下图)FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件;FreeMarker 与容器无关,因为它并不知道 HTTP 或 Servlet;Fr
19、eeMarker同样可以应用于非 Web 应用程序环境;FreeMarker 更适合作为 Model2 框架(如 Struts)的视图组件,你也可以在模板中使用 JSP 标记库;FreeMarker 具有如下特性:1、通用目标能够生成各种文本:HTML、XML、RTF 、Java 源代码等等;易于嵌入到你的产品中:轻量级;不需要 Servlet 环境;插件式模板载入器:可以从任何源载入模板,如本地文件、数据库等等;你可以按你所需生成文本:保存到本地文件;作为 Email 发送;从 Web 应用程序发送它返回给 Web 浏览器2、强大的模板语言所有常用的指令:include、if/elseif/
20、else、循环结构;在模板中创建和改变变量;几乎在任何地方都可以使用复杂表达式来指定值;命名的宏,可以具有位置参数和嵌套内容;名字空间有助于建立和维护可重用的宏库,或者将一个大工程分成模块,而不必担心名字冲突;输出转换块:在嵌套模板片段生成输出时,转换 HTML 转义、压缩、语法高亮等等; 3、通用数据模型FreeMarker 不是直接反射到 Java 对象,Java 对象通过插件式对象封装,以变量方式在模板中显示;你可以使用抽象(接口)方式表示对象(JavaBean 、XML 文档、SQL 查询结果集等等) ,告诉模板开发者使用方法,使其不受技术细节的打扰。4、为 Web 准备在模板语言中内建处理典型 Web 相关任务(如 HTML 转义)的结构,能够集成到 Model2 Web 应用框架中作为 JSP 的替代,支持 JSP 标记库。5、智能的国际化和本地化字符集智能化(内部使用 UNICODE) ;数字格式本地化敏感;日期和时间格式本地化敏感;非 US 字符集可以用作标识(如变量名) ;多种不同语言的相同模板;6、强大的 XML 处理能力和指令(2.3 版本)用于递归遍历 XML 树。FreeMarker 功能设计:功能 可选值 描述文章属性 1:普通 2:图文 3:焦点 4:头条 5:滚动影响文章的展示风格文章标题 自定义 文章全称简短标题 自定义 供网站显示