ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:98KB ,
资源ID:4735358      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4735358.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(WEB开发编程规范总体.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

WEB开发编程规范总体.doc

1、 WEB开发编程规范 (界面及编程)WEB开发编程规范 1 前言 1 术语解释 1 范围界定 2 相关开发环境(建议环境,不做强制要求) 2 开发工具: 2 数据库: 3 WEB服务器(仅做开发测试用): 3 应用服务器: 3 界面开发规范 3 基本要求 3 其它注意事项 6 编程规范 7 基本要求 7 可读性要求 7 正确性与容错性要求 8 可重用性要求 8 变量命名 8 常量命名 8 函数命名 8 注释 8 程序 10 WEB开发编程规范 前言 J2EE是一种功能完备、稳定可靠、安全快速的企业级计算平台,它由多种基于JAVA的

2、技术组成:Enterprise JavaBeans(EJB), JavaServer Pages(JSP), servlets, Java Naming and Directory Interface (JNDI), and the JDBC data access API等。 本规范针对从事资源管理开发中前端WEB站点开发设计人员。要求使用者对J2EE架构有所了解,具有一定的HTML、CSS基础知识,对交互式网页JSP及javabeans的开发有较深认识。本规范的目的是为了开发出通用的、易于维护的高效率的J2EE应用。 术语解释 表示层:即系统与系统使用者通过各终端进行交互时对数

3、据内容的表现层,同时负责输入数据的格式合法性校验。该层次根据用户的需要完全个性化。 应用表示逻辑层:根据个体应用系统的约束条件,实现表示层数据的组织和包装;根据应用逻辑对表示层输入的数据进行逻辑合法性检验。 应用逻辑组件层:实现特定于个体系统的应用逻辑和算法(EJB)。 持久存储层:可以实现所有实体数据的数据库集中存储。通过该层对持久存储的CRUD(create, read,update & delete) 操作,负责实体对象的创建、状态维护、删除等功能。 范围界定 根据J2EE技术框架的体系结构和WEB应用的特点,我们在项目的开发过程中将项目分成两个层次:与系统用户交互的网站页面系

4、统(含静态页面结构和动态页面结构),以及实现用户业务逻辑的系统(含支持数据永久存储的数据库系统)。对于这两个层次,我们根据其特点采用不同的开发过程,而本规范只针对前一部分。 在这一部分的开发中,需要如下开发人员: l Javabeans (包括无输出用户界面的servlet)开发人员 l JSP 开发人员(包括客户端的JavaScript) l HTML 设计人员 l 美工 Javabeans开发人员建立表现层的逻辑,而其他人员建立表现的形式。因为这一层的开发可能会有几个人来承担不同的角色,也可能有些人需要兼顾到所有的方面,所以为了有针对性,下面我们分别就这几种角色在开发中应注意的

5、事项提出要求: 相关开发环境(建议环境,不做强制要求) 开发工具: Javabeans的编写调试可用任何编辑器或JBuilder等,其它网站界面及管理部分用Dreamweaver MX,主要是做为一个大型的应用,网站管理是一个很重要的内容,采用DW MX可以通过内定的工作流程保证我们整个应用中模板、javascripts脚本、css样式表、JSP页面控件及XML、TLD等技术的实现保持一致,并无须设专人维护测试这些必须统一的公共部分。另一方面的优势是在JSP页面的开发上,不但提供JSP 标记库支持,而且提供完全 JavaBeans 自省功能,即除了在数据绑定面板中显示 JavaBeans

6、 的 getProperty 和 setProperty 方式之外,Dreamweaver MX 还有一个能显示 JavaBean 所有方式和属性的服务器行为面板,可充分集成 Beans 和 JSP 应用程序,另外DW MX也支持Web Service的开发。(将在近期安排Dreamweaver MX针对JSP开发的相关培训) 数据库: Oracle8i/9i(只安装客户端及相应JDBC驱动class12.zip) WEB服务器(仅做开发测试用): Tomcat/Websphere/Resin等,建议用Tomcat4.0(这一层的开发做测试足够了,且占用系统资源少),为了能测试包含访问

7、EJB的代码,需安装j2ee.jar或其它包含有javax.ejb.*的包。 应用服务器: 可不安装,通过远程访问Websphere即可(指编写调用EJB的JAVABEANS部分)。 界面开发规范 基本要求 网站目录命名规则 1.所有目录名称使用小写英文字母的组合,绝对禁止包含汉字、空格和特殊字符及大写字母(WEB-INF目录除外),可以添加数字或下划线的组合,禁止输入全角字符。 2.在网站根目录中开设WEB-INF、images、common、temp、templete五个子目录,根据需要再开设其它子目录(如基础资源、管线资源等),其中WEB-INF目录下设置classes

8、lib及tlds子目录, classes中放所有javabeans的class文件(凡package的请注意目录层次,在最终测试前将相应的java源文件与class文件放在一起),lib中放所有jar文件,tlds中放标签库文件。images目录中放网站所有页面都要用到的公共图片,例如公司的标志、banner 条、菜单、按钮等等;common 子目录中放Css、JavaScript、include 等公共文件,templete目录里是dreamweaver MX的公用模板文件。 3.在子目录中根据需要在每一个子目录中开设一个images的子目录用以放置此栏目专有的图片,如果这个栏目的内容特

9、别多,又分出很多下级栏目,可以相应的再开设其他目录。 4.temp 目录中的文件往往会比较多,建议以时间为名称开设目录,将客户陆续提供的资料归类整理。 5.在非网站目录里还得有三个目录:bakup、doc、src,其中bakup进行整个站点已开发内容的备份,doc 子目录,放客户提供的各种文字图片等等原始资料,src则放置所有class文件的源代码及页面设计师的PSD、Fla源文件。禁止将这三项内容放在dreamweaver MX的控制范围内。 6.网站中的路径全部采用相对路径。即一定要先建立站点然后在站内新建或修改文件,保证所有链接不会出现硬盘盘符的情况。 以上是WEB站点目录结

10、构的大致规划,实际使用时将先在规定的服务器上建好这个站点结构,大家通过DW MX的FTP功能下载并保持本地站点结构与服务器结构一致即可。 文件命名原则 1. 每一个目录中应该包含一个缺省的JSP文件,文件名统一用index.jsp。 2. 文件名称统一用小写的英文字母、数字和下划线的组合。 3. 命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义。 CSS 层叠样式表文件 (建议直接采用DW MX的CSS 面板来定义,比较直观) 样例: td { font-family: "宋体"; font-size: 12px; color: #000

11、000;} p { text-indent: 2em; text-align: justify} a:link { color: #FFFFFF; text-decoration: none} a:visited { color: #99FFFF; text-decoration: none } a:active { color: #FF9900; text-decoration: underline } a:hover { color: #FF9900; text-decoration: underline} 1. CSS定义的顺序为:重定义的最先,伪类其

12、次,自定义最后,以便于他人阅读;对于伪类CSS定义,请严格按照以上顺序格式,即a:hover放在最后,以便使其不会被其他定义覆盖; 2. 为了保证不同浏览器上字号保持一致,字号用点数(pt)和像素(px)来定义,使用pt单位时一般使用中文宋体的9pt和10.5pt,使用px单位时一般使用中文宋体12px 和14.8px 。字体需要作为标题显示时,一般选用10.5pt或14.8px 的字号比较合适。所有的字号都应该用样式表来实现,禁止在页面中出现 标记。 3. 排版中我们经常会遇到需要进行首行缩进的处理,不要使用   或者全角空格来达到效果,规范的做

13、法是在样式表中定义 p { text-indent: 2em; } 然后给每一段加上

标记。 脚本编写 1 .尽量直接采用DW MX提供的JavaScript 函数库,因为它提供了尖端的客户机方交互性,而不必学习冗长的教科书,这样也可以保证我们页面中JavaScript写法的一致性。所有javascrips的客户端脚本必须放在JSP页面的标签之前,便于使用模板进行站点统一管理时不致影响到脚本。 2 .网页中客户端代码只允许使用 JAVASCRIPS脚本、禁止用VBSCRIPTS。 网站管理 1 .进入实际开发阶段将设置一测试用主服务器,上开设虚拟 WWW 目录。

14、 2 .主服务器包含站点完整结构,大家通过FTP功能及时上传最新的文件,保持共享最新的文件。 3 .实现服务器程序的互斥性修改 要求实现某一程序在同一时间只能一个开发人员修改。其具体实现方式是:需要修改程序的开发人员从源文件存放处提出(Chink-out)一个程序,这时其他开发人员就不可以再Chink-out同一个程序了,只有当第一个开发人员修改测试完成后,将更新版本的代码做放入(Chink-in)操作,其他开发人员才能Chink-out同一个程序。 JSP页面制作及编程技术要求 界面风格需要一致: 在程序设计中需要注重模块化,而界面设计中对象化同样非常重要。将界面元素

15、对象化,比如底部版权信息、导航条等,图片尽可能复用,比如站点标志、搜索按钮等等;下面提几点细节要求: 1.网页适用的屏幕大小:制作网页时,显示器的分辨率设置可以为 800*600 或 1024×768(或通过设置表格百分比方式尽量做成自适应的) 。 2.主要页面要写 。 3.<img> 的alt 属性 , 使不能看图的用户也可以读懂页面。 4.不使用过长的滚屏,采用分页。 5.在主页中尽量少使用滚动条,网页中尽量少出现横向滚动条。 6.网页版权信息清晰明了。主页版权信息推荐使用下列格式: Best viewed with IE4.0, Resolution:</p><p style='padding:5px 0px;'>16、 800×600. Copyright©2002 ××××××,All right reserved. 7.如有特殊情况,必须在readme.txt文件中说明。 8.在查询显示结果过多时,除必须分页显示外,将上一页、下一页的翻页按钮同时放在列表的上面及最底下,并且设置直接跳转到某页的按钮。   其它注意事项 控件的命名: 用小写前缀表示类别: frm 表单 cmd 按钮 txt 文本输入框 lab标签 img图象 pic lst 列表框 … … 注释 用<%--注释--%> 表格应用(仅针对JSP页面开发人员输出动态表格时)</p><p style='padding:5px 0px;'>17、 表格不使用表格边框形式,即不得设置bordercolordark和bordercolorlight属性,也不准设置表格边框颜色,而是使用由页面设计师提供的CSS中设置的TD.content属性,此种方式可兼容IE5和NC6;并且只有这种方式,当浏览时有些单元格中无内容时仍可正常显示边框线;代码范例如下: <table width="96%" border="0" align="center"> <tr> <td class="content">单元格内容</td> </tr> </table>  界面友好 系统提供灵活的输入方式以方便用户输入。 容错能力强 </p><p style='padding:5px 0px;'>18、系统充分考虑到用户在操作时可能的错误,并提供相应的纠正措施。例如一份表单正常提交以后,假如用户利用历史记录后退,回到提交前的状态,这时候修改了提交内容,又再一次提交,那么结果是什么呢? 编程规范 基本要求 程序结构清析,简单易懂。 打算干什么,要简单,直接了当,代码精简,避免垃圾程序。 尽量使用标准库函数和公共函数。 可读性要求 保持注释与代码完全一致。 每个源程序文件,都有文件头说明。 每个函数,都有函数头说明。 主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。 常量定义有相应说明。 处理过程的每个阶段都有相关注</p><p style='padding:5px 0px;'>19、释说明。 在典型算法前都有注释。 利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位。 注释可以与语句在同一行,也可以在上行。 空行和空白字符也是一种特殊注释。 一目了然的语句不加注释。 注释的作用范围可以为:定义、引用、条件分支以及一段代码。 正确性与容错性要求 程序首先是正确,其次是优美 无法证明你的程序没有错误,因此在编写完一段程序后,应先回头检查。 改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。 所有变量在调用前必须被初始化。 对所有的用户输入,必须进行合法性检查(尽量采用客户端验证方</p><p style='padding:5px 0px;'>20、式)。 不要比较浮点数的相等,如: 10.0 * 0.1 == 1.0 , 不可靠。 单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。 可重用性要求 重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。 公共控件或类应考虑OO思想,减少外界联系,考虑独立性或封装性。 公共控件或类应建立使用模板。 变量命名 命名必须具有一定的实际意义,形式为xAbcFgh,x由变量类型确定,Abc、Fgh表示连续意义字符串,如果连续意义字符串仅两个,可都大写。 常量命名 常量定义必须具有一定的实际意义; 常量定义必须全部以大写字母来</p><p style='padding:5px 0px;'>21、撰写,中间可根据意义的连续性用下划线连接,每一条定义的右侧必须有一简单的注释,说明其作用; 函数命名 函数原型说明包括引用外来函数及内部函数,外部引用必须在右侧注明函数来源: javabean的名称或include的文件名, 如是内部函数,只要注释其定义文件名; 第一个字母必须使用大写字母,要求用大小写字母组合规范函数命名,必要时可用下划线间隔 注释 原则上注释要求使用中文; 文件开始注释内容包括:公司名称、版权、作者名称、时间、模块用途、背景介绍等,复杂的算法需要加上流程说明; 函数注释包括:输入、输出、函数描述、流程处理、全局变量、调用样例等,复杂</p><p style='padding:5px 0px;'>22、的函数 需要加上变量用途说明; 程序中注释包括:修改时间和作者、方便理解的注释等; 引用一: 文件开头的注释模板 /****************************************************************** ** 文件名: ** Copyright (c)2001.7-2001.9 ********* ** 创建人: ** 日 期: ** 修改人: ** 日 期: ** 描 述: ** ** 版 本: **---------------------------------</p><p style='padding:5px 0px;'>23、 ******************************************************************/ 引用二: 函数开头的注释模板 /***************************************************************** ** 函数名: ** 输 入: a,b,c ** a--- ** b--- ** c--- ** 输 出: x--- ** x 为 1, 表示...</p><p style='padding:5px 0px;'>24、 ** x 为 0, 表示... ** 功能描述: ** 全局变量: ** 调用模块: ** 作 者: ** 日 期: ** 修 改: ** 日 期: ** 版本 ****************************************************************/ 引用三: 程序中的注释模板 /*----------------------------------------------------------*/ /* 注释内容 */ /*----------------</p><p style='padding:5px 0px;'>25、/ 程序 程序编码力求简洁,结构清晰,避免太多的分支结构及太过于技巧性的程序,尽量不采用递归模式。 编写程序时,亦必须想好测试的方法。如在javabean中包括方法时,在源程序中一般也应包括类似的代码(当然自行测试无误后必须用/* */ 封闭): /* public static void main(String argv[]) { MusicCollection m1 = new MusicCollection(); System.out.println(m1.getAl</p><p style='height:0px;padding:0;overflow:hidden'>26、bumsSize()); System.exit(0); }*/ 注释一定要与程序一致。 版本封存以后的修改一定要将老语句用/* */ 封闭,不能自行删除或修改,并要在文件及函数的修改记录中加以记录。 程序中每个block 的开头 ”{" 及 "}” 必须对齐,嵌套的block 每进一套,缩进一个tab,TAB 为4个空格,block类型包括if、for、while、do等关键字引出的。 对于比较大的函数,每个block 和特殊的函数调用,都必须注明其功能 附录资料: Ehcache缓存配置 简介 Cache的配置很灵活,官方提供的Cache配置</p><p style='height:0px;padding:0;overflow:hidden'>27、方式有好几种。你可以通过声明配置、在xml中配置、在程序里配置或者调用构造方法时传入不同的参数。 你可以将Cache的配置从代码中剥离出来,也可以在使用运行时配置,所谓的运行时配置无非也就是在代码中配置。以下是运行时配置的好处: ·   在同一个地方配置所有的Cache,这样很容易管理Cache的内存和磁盘消耗。 ·   发布时可更改Cache配置。 ·   可再安装阶段就检查出配置错误信息,而避免了运行时错误。 本文将会对ehcache.xml配置文件进行详细的阐述。在配置的时可以拷贝一个现有的ehcache.xml,如果没有请点击这里去下载。 ehcache-fai</p><p style='height:0px;padding:0;overflow:hidden'>28、lsafe.xml 如果你调用了CacheManager默认构造方法去创建CacheManager的实例,此方法会到classpath中找ehcache.xml文件,否则它会到类路径下找ehcache-failsafe.xml文件。而ehcache-failsafe.xml被包含在jar包中,所有它肯定能找的到。 ehcache-failsafe.xml提供了一个非常简单的默认配置,这样可以使用户在没有创建ehcache.xml的情况下使用Ehcache。 不过这样做Ehcache会提醒用户创建一个正确的Ehcache配置。 ehcache.xml片段: <</p><p style='height:0px;padding:0;overflow:hidden'>29、ehcache>     <diskStore path="java.io.tmpdir"/>     <defaultCache             maxElementsInMemory="10000"             eternal="false"             timeToIdleSeconds="120"             timeToLiveSeconds="120"             overflowToDisk="true"             maxElementsOnDisk="10000000"  </p><p style='height:0px;padding:0;overflow:hidden'>30、           diskPersistent="false"             diskExpiryThreadIntervalSeconds="120"             memoryStoreEvictionPolicy="LRU"             /> </ehcache> ehcache.xml和其他配置文件 在Ehcache-1.6之前的版本,只支持ASCII编码的ehcache.xml配置文件。在Ehcach-1.6之后版本中,支持UTF8编码的ehcache.xml配置文件。因为向后兼容,所有采用ASCII编码的配置文件完全没有必</p><p style='height:0px;padding:0;overflow:hidden'>31、要转换为UTF8。 一个CacheManager必须要有一个XML配置。由于磁盘路径或是监听端口,多个CacheManager使用同一个配置文件时会出现错误。 下面是ehcache.xml具体实例以及配置指南 <ehcache xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance ·   CacheManager配置 DmulticastGroupPort=4446,这样可以配置监听端口。 ·   DiskStore配置 如果你使用的DiskStore(磁盘缓存),你必须要配置DiskStore配置项。如果不配置,E</p><p style='height:0px;padding:0;overflow:hidden'>32、hcache将会使用java.io.tmpdir。 diskStroe的“path”属性是用来配置磁盘缓存使用的物理路径的,Ehcache磁盘缓存使用的文件后缀名是.data和.index。 <disStore path=”java.io.tmpdir”/> ·   CacheManagerEventListener配置 我们通过CacheManagerEventListenerFactory可以实例化一个CacheManagerPeerProvider,当我们从CacheManager中added和removed Cache时,将通知CacheManagerPeerProvi</p><p style='height:0px;padding:0;overflow:hidden'>33、der,这样一来,我们就可以很方面的对CacheManager中的Cache做一些统计。 注册到CacheManager的事件监听类名有: adding a Cache和removing a Cache <cacheManagerEventListenerFacotory class=”” properties=””/> ·   CacheManagerPeerProvider配置 在集群中CacheManager配置CacheManagerPeerProviderFactory创建CacheManagerPeerProvider。具体的实例如下: <cacheMana</p><p style='height:0px;padding:0;overflow:hidden'>34、gerPeerProviderFactoryclass="net.sf.ehcache.distribution. RMICacheManagerPeerProviderFactory" properties="peerDiscovery=manual, rmiUrls=//server1:40000/sampleCache1|//server2:40000/sampleCache1| //server1:40000/sampleCache2|//server2:40000/sampleCache2" propertySeparator="," /> ·   Cac</p><p style='height:0px;padding:0;overflow:hidden'>35、heManagerPeerListener配置 CacheManagerPeerListener配置是用来监听集群中缓存消息的分发的。 <cacheManagerPeerListenerFactory     class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"     properties="hostName=fully_qualified_hostname_or_ip,                 port=40001,                socketTimeou</p><p style='height:0px;padding:0;overflow:hidden'>36、tMillis=120000"                 propertySeparator="," /> ·   Cache配置 ·           name:Cache的唯一标识 ·           maxElementsInMemory:内存中最大缓存对象数。 ·           maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大。 ·           eternal:Element是否永久有效,一但设置了,timeout将不起作用。 ·           overflowToDisk:配置此属性,当内存中E</p><p style='height:0px;padding:0;overflow:hidden'>37、lement数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中。 ·           timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。 ·           timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大。 ·           diskPersistent:是否缓存虚拟机</p><p style='height:0px;padding:0;overflow:hidden'>38、重启期数据。(这个虚拟机是指什么虚拟机一直没看明白是什么,有高人还希望能指点一二)。 ·           diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。 ·           diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。 ·           memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU</p><p style='height:0px;padding:0;overflow:hidden'>39、最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。这里比较遗憾,Ehcache并没有提供一个用户定制策略的接口,仅仅支持三种指定策略,感觉做的不够理想。 ·   Cache Exception Handling配置 <cacheExceptionHandlerFactory class="com.example.ExampleExceptionHandlerFactory"                               properties="logLevel=FINE"/> 总结 这里只对通用缓存的配置做了详细的阐述,至于RM</p><p style='height:0px;padding:0;overflow:hidden'>40、I缓存和集群缓存可以参考这里。 下面给出几个配置示例: ·   Ehcache默认Cache配置 <defaultCache         maxElementsInMemory="10000"         eternal="false"         timeToIdleSeconds="120"         timeToLiveSeconds="120"         overflowToDisk="true"         diskSpoolBufferSizeMB="30"         maxElementsOnDisk=</p><p style='height:0px;padding:0;overflow:hidden'>41、"10000000"         diskPersistent="false"         diskExpiryThreadIntervalSeconds="120"         memoryStoreEvictionPolicy="LRU"         /> ·   SampleCache1配置 简单配置,在ehcache.xml文件中有此配置,在使用Ehcache前最好将其删除掉,自己配置。 缓存名sampleCache1,内存中最多可缓存10000个Element,其中的element会在闲置5分钟或是存活10分钟之后失效。 超过10000</p><p style='height:0px;padding:0;overflow:hidden'>42、element时,element将会输出到磁盘中,输出路径是java.io.tmpdir。 <cache name="sampleCache1"        maxElementsInMemory="10000"        maxElementsOnDisk="1000"        eternal="false"        overflowToDisk="true"        diskSpoolBufferSizeMB="20"        timeToIdleSeconds="300"        timeToLiveSeconds="6</p><p style='height:0px;padding:0;overflow:hidden'>43、00"        memoryStoreEvictionPolicy="LFU"         /> ·   SampleCache2配置 Cache名为SampleCache2,内存中最多可以缓存1000个element,超出1000不能输出到磁盘中。缓存是永久有效的。 <cache name="sampleCache2"        maxElementsInMemory="1000"        eternal="true"        overflowToDisk="false"        memoryStoreEvictionP</p><p style='height:0px;padding:0;overflow:hidden'>44、olicy="FIFO"         /> ·   SampleCache3配置 Cache名为SampleCache3。可缓存到磁盘。磁盘缓存将会缓存虚拟机重启期的数据。磁盘缓存失效线程运行间隔时间是10分钟。 <cache name="sampleCache3"        maxElementsInMemory="500"        eternal="false"        overflowToDisk="true"        timeToIdleSeconds="300"        timeToLiveSeconds="600"</p><p style='height:0px;padding:0;overflow:hidden'>45、        diskPersistent="true"        diskExpiryThreadIntervalSeconds="1"        memoryStoreEvictionPolicy="LFU"         /> ·   sampleDistributedCache1配置 Cache名为sampleDistributedCache1。 <cache name="sampleDistributedCache1"        maxElementsInMemory="10"        eternal="false" </p><p style='height:0px;padding:0;overflow:hidden'>46、       timeToIdleSeconds="100"        timeToLiveSeconds="100"        overflowToDisk="false">     <cacheEventListenerFactory             class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>     <bootstrapCacheLoaderFactory             class="net.sf.ehcache.distribution.RMIBoots</p><p style='height:0px;padding:0;overflow:hidden'>47、trapCacheLoaderFactory"/> </cache> ·   sampleDistributedCache2配置 <cache name="sampleDistributedCache2"        maxElementsInMemory="10"        eternal="false"        timeToIdleSeconds="100"        timeToLiveSeconds="100"        overflowToDisk="false">     <cacheEventListenerFa</p><p style='height:0px;padding:0;overflow:hidden'>48、ctory             class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"             properties="replicateAsynchronously=false, replicatePuts=false,                         replicateUpdates=true, replicateUpdatesViaCopy=true,                        replicateRemovals=false"/> </cac</p><p style='height:0px;padding:0;overflow:hidden'>49、he> ·   sampleDistributedCache3配置 <!-- Sample distributed cache named sampleDistributedCache3. This cache replicates using defaults except that the asynchronous replication interval is set to 200ms. --> <cache name="sampleDistributedCache3"        maxElementsInMemory="10"        et</p><p style='height:0px;padding:0;overflow:hidden'>50、ernal="false"        timeToIdleSeconds="100"        timeToLiveSeconds="100"        overflowToDisk="false">     <cacheEventListenerFactory             class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"             properties="asynchronousReplicationIntervalMillis=200"/> </cac</p> </div> </div> <span id="LabelScript"></span> <script src="https://m.zixin.com.cn/JS/bootstrap-collapse.js"></script> <div class="siteInner_bg" style="margin-top: 40px; border: solid 0px red; margin-left: 0px; margin-right: 0px;"> <div> <div style=" margin: auto; overflow:hidden; text-align: center;"> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6e2a21bc68316db308b5fdc9a0d11f2e"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </div> <div style=" height:80px; margin: auto; overflow:hidden; text-align: center;"> <a target="_blank" href='https://m.zixin.com.cn/ADMiddle.aspx?t=92ULKnFRa/o='> <img src="https://www.zixin.com.cn/FileUpload/Images/81dd1a0b-02e3-435a-aa37-fbfccae9a83d.gif" width="100%" height='80' alt="移动网页_全站_页脚广告1" /> </a> </div> </div> <div class="siteInner"> <p style="white-space: normal; text-align: center;"><a href="https://www.zixin.com.cn/h-33.html" target="_blank" title="关于我们" textvalue="关于我们"><span style="text-align: center;">关于我们</span></a> <span style="text-align: center;">     </span><a href="https://www.zixin.com.cn/h-37.html" target="_blank" title="便捷服务" textvalue="便捷服务">便捷服务</a>  <span style="text-align: center;">     </span><a href="https://ai.zixin.com.cn/" target="_blank" title="自信AI" textvalue="自信AI">自信AI</a> <span style="text-align: center;">      </span><a href="https://gpt.zixin.com.cn/" target="_blank" title="AI导航" textvalue="AI导航">AI导航</a>        <a href="https://www.zixin.com.cn/info/266.html" target="_blank" title="抽奖活动" textvalue="抽奖活动">抽奖活动</a></p><p style="white-space: normal; text-align: center;"><span style="color: rgb(153, 153, 153); font-family: 微软雅黑, 宋体, Arial; font-size: 12px; text-align: center; background-color: rgb(248, 248, 248);"></span><span style="text-align: center;">©2010-2025 宁波自信网络信息技术有限公司 </span><span style="text-align: center;"> </span><span style="text-align: center;">版权所有</span></p><p style="white-space: normal; text-align: center;"><span style="text-align: center;"><span style="text-align: center;"><span style="text-align: center;"><span style="text-align: center;">客服电话:4009-655-100  <span style="text-align: center;">投诉</span>/<span style="text-align: center;">维权</span>电话:18658249818</span></span></span></span></p><p style="white-space: normal; text-align: center;"><span style="text-align: center;"><img src="https://www.zixin.com.cn/FileUpload/ueditor_s/upload/2022-6/9/6379033271755225397249870.png" title="gongan.png" alt="gongan.png"/></span><a href="http://www.beian.gov.cn/portal/index.do" target="_blank" textvalue="浙公网安备33021202000488号">浙公网安备33021202000488号</a>   </p><p style="white-space: normal; text-align: center;"><img src="https://www.zixin.com.cn/FileUpload/ueditor_s/upload/2022-7/4/6379256265460890686562879.png" title="icp.png" alt="icp.png"/><a href="http://beian.miit.gov.cn/" target="_blank" textvalue="浙ICP备2021020529号-1">浙ICP备2021020529号-1</a> <span style="text-align: center;"> | </span> <a href="https://dxzhgl.miit.gov.cn/dxxzsp/xkz/xkzgl/resource/qiyesearch.jsp?num=%E5%AE%81%E6%B3%A2%E8%87%AA%E4%BF%A1%E7%BD%91%E7%BB%9C%E4%BF%A1%E6%81%AF%E6%8A%80%E6%9C%AF%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8&type=xuke" target="_blank" title="浙B2-20240490" textvalue="浙B2-20240490">浙B2-20240490</a><span style="text-align: center;">  </span></p><p style="white-space: normal; text-align: left;"><span style="text-align: center; font-family: 楷体, 楷体_GB2312, SimKai; font-size: 20px;">关注我们</span><span style="text-align: center;"> :<a href="https://www.zixin.com.cn/news/113.html" target="_blank"><img src="https://www.zixin.com.cn/FileUpload/ueditor_s/upload/2022-7/9/6379298231429297878483475.png" title="微信公众号" alt="微信公众号"/></a></span><span style="text-align: center;">    <a href="https://www.zixin.com.cn/news/113.html" target="_blank"><img src="https://www.zixin.com.cn/FileUpload/ueditor_s/upload/2022-7/5/6379257739400583672497521.png" title="抖音" alt="抖音"/></a>    <a href="https://weibo.com/zixinnetwork" target="_blank" style="color: rgb(217, 83, 79); text-align: center; white-space: normal;"><img src="https://www.zixin.com.cn/FileUpload/ueditor_s/upload/2022-7/5/6379257739400583672497523.png" title="微博" alt="微博"/></a>    <a href="https://zixinnetwork.lofter.com/" target="_blank"><img src="https://www.zixin.com.cn/FileUpload/ueditor_s/upload/2022-7/5/6379257740834991205479163.png" title="LOFTER" alt="LOFTER"/></a> </span></p> </div> </div> <div style="position: fixed; bottom: 100px; right: 15px; z-index: 100000000000000000;"> <a href="https://work.weixin.qq.com/kfid/kfcb5dffb1386b26424"><img src="https://www.zixin.com.cn/FileUpload/Images/c1022425-c464-4203-b6dc-db237b2252d5.gif" style="width:36px" alt="客服"/></a> </div> <div class="trnav clearfix" id="navcontent" style="display: none; background-color:#3a71b1; "> <div class="trlogoside" id="navlogo" style="display: none;"> <a href="https://m.zixin.com.cn/" title="咨信网"><img src="https://www.zixin.com.cn/FileUpload/Images/c4280cd2-fe62-449e-aeca-027ef73439f5.png" alt="咨信网"></a> <div class="trnavclose" id="navclose"> <span></span> </div> </div> <div class="navcontainer"> <div class="row"> <ul class="nav navbar-nav trnavul headercontent" id="navigation" style="margin:20px 0 0px;"> <li><a target="_parent"href="https://m.zixin.com.cn/login.aspx">登录</a></li> <li><a target="_parent"href="https://m.zixin.com.cn/">首页 </a></li> <li><a target="_parent"href="https://m.zixin.com.cn/booklist-0.html">分类 </a></li> <li><a target="_parent"href="https://m.zixin.com.cn/infos.html">学堂 </a></li> <li><a target="_parent"href="https://m.zixin.com.cn/newslist.html">公告 </a></li> <li><a target="_parent"href="https://m.zixin.com.cn/h-0.html">帮助中心 </a></li> </ul> </div> </div> </div> <script type="text/javascript"> function stopPropagation(e) { var ev = e || window.event; if (ev.stopPropagation) { ev.stopPropagation(); } else if (window.event) { window.event.cancelBubble = true;//兼容IE } } $("#navmore").click(function (e) { $("#navcontent").show(); $("#navlogo").show(); stopPropagation(e); var navcontentwidth = $("#navcontent").width(); $('#navcontent').css({ 'right': '-' + navcontentwidth + 'px' }); $("#navcontent").show().animate({ "right": 0 }, 300); }); $(document).bind('click', function () { var navcontentwidth = $("#navcontent").width(); $("#navcontent").animate({ 'right': '-' + navcontentwidth + 'px' }, 300, function () { $("#navcontent").hide(); }); $("#navlogo").fadeOut(300); }); $("#navcontent").click(function (e) { stopPropagation(e); }); $("#navclose").click(function (e) { var navcontentwidth = $("#navcontent").width(); $("#navcontent").animate({ 'right': '-' + navcontentwidth + 'px' }, 300, function () { $("#navcontent").hide(); }); $("#navlogo").fadeOut(300); }); </script> <script> function BaseShare(title, desc, imgUrl) { var link = "https://m.zixin.com.cn/docdown/4735358.html"; if (wx) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx49d3b0cb6fb382c4', // 必填,公众号的唯一标识 timestamp: '1748519008', // 必填,生成签名的时间戳 nonceStr: 'E820A45F1DFC7B95282D10B6087E11C0', // 必填,生成签名的随机串 signature: '3c7329b2955a6637f8220087500e3563135de258',// 必填,签名,见附录1 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 //openTagList: ["wx-open-launch-weapp"]//H5打开小程序 }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 menuList: ['menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:share:email', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:delete', 'menuItem:editTag', 'menuItem:share:facebook', 'menuItem:share:weiboApp', 'menuItem:share:brand'] }); var shareData = { title: title, // 分享标题 desc: desc,//这里请特别注意是要去除html link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 }; wx.updateAppMessageShareData(shareData);//1.4 分享到朋友 wx.updateTimelineShareData(shareData);//1.4分享到朋友圈 }); } } function BaseShare(title, desc, imgUrl, link) { if (link=="") link = "https://m.zixin.com.cn/docdown/4735358.html"; if (wx) { wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: 'wx49d3b0cb6fb382c4', // 必填,公众号的唯一标识 timestamp: '1748519008', // 必填,生成签名的时间戳 nonceStr: 'E820A45F1DFC7B95282D10B6087E11C0', // 必填,生成签名的随机串 signature: '3c7329b2955a6637f8220087500e3563135de258',// 必填,签名,见附录1 jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 //openTagList: ["wx-open-launch-weapp"]//H5打开小程序 }); wx.ready(function () { //需在用户可能点击分享按钮前就先调用 wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 menuList: ['menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone', 'menuItem:share:email', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:delete', 'menuItem:editTag', 'menuItem:share:facebook', 'menuItem:share:weiboApp', 'menuItem:share:brand'] }); var shareData = { title: title, // 分享标题 desc: desc,//这里请特别注意是要去除html link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 imgUrl: imgUrl, // 分享图标 }; wx.updateAppMessageShareData(shareData);//1.4 分享到朋友 wx.updateTimelineShareData(shareData);//1.4分享到朋友圈 }); } } </script> <!--footer--> <footer class="footer"> <a target="_parent" class="footer-item" href="https://m.zixin.com.cn/"> <img class="footer-item-img" src="/Master/img/tabbar/home.png" alt="首页" /> <div class="footer-item-txt ">首页</div> </a> <a target="_parent" class="footer-item" id="classify" href="https://m.zixin.com.cn/bookmap.html"> <img class="footer-item-img" src="/Master/img/tabbar/category.png" alt="分类" /> <div class="footer-item-txt ">分类</div> </a> <a target="_parent" class="footer-item" id="case" href="https://m.zixin.com.cn/zhuantilist-.html"> <img class="footer-item-img" src="/Master/img/tabbar/case.png" alt="专题" /> <div class="footer-item-txt ">专题</div> </a> <a target="_parent" class="footer-item" id="my" href="https://m.zixin.com.cn/UserDefault.aspx"> <img class="footer-item-img" src="/Master/img/tabbar/my.png" alt="我的" /> <div class="footer-item-txt ">我的</div> </a> </footer> <script> $(document).ready(function () { var arr = $(".headercontent"); for (var i = 0; i < arr.length; i++) { (function (index) { var url = "https://m.zixin.com.cn/header.aspx"; $.get(url + "?tp=0&t=" + (new Date()).valueOf(), function (d) { try { arr.eq(index).empty().html(d); } catch (e) { } try { arr.html(d); } catch (e) { } }); })(i); } }); </script> <script src="https://m.zixin.com.cn/js/jquery.lazyload.js"></script> <script charset="utf-8"> $("img.lazys").lazyload({ threshold: 200, effect: "fadeIn" }); </script> </body> </html>