JFRAMEWORK架构设计.doc
《JFRAMEWORK架构设计.doc》由会员分享,可在线阅读,更多相关《JFRAMEWORK架构设计.doc(95页珍藏版)》请在咨信网上搜索。
JFRAMEWORK 2024-11-16 JFRAMEWORK架构设计 编撰:赵万刚 目录 1. 系统设计架构说明 5 1.1. 总体架构示意图 6 1.1.1. 各层示意图 7 1.1.1.1. WEB页面请求/返回结果处理过 7 1.1.1.2. 逻辑层 8 1.1.1.3. 统一错误处理 8 1.1.1.4. 日志记录 9 1.1.2. 各层采用JAVA技术 9 2. 各层设计 11 2.1. 页面层HTML 11 2.1.1. 页面脚本处理 11 2.1.1.1. Enter to tab处理 11 2.1.1.2. 客户端输入域判断 11 2.1.1.3. 快捷键的使用 12 2.1.1.4. 打印处理 12 2.1.2. CSS样式表 13 2.1.3. 控件样式 13 2.2. 数据处理层JSP 13 2.2.1. 注意问题 13 2.2.2. 公用变量 14 2.3. 数据分离层SERVLET 14 2.3.1. 注意事项 14 2.3.2. 错误处理 15 2.3.3. 公用参数 15 2.3.4. 样例说明 15 2.4. 过滤层 18 2.4.1. 过滤FILTER 18 2.4.2. 事件LISTENERS 20 2.5. 逻辑层 22 2.5.1. 调用数据库操作 22 2.5.2. 调用EMAIL操作 23 2.5.3. 参数传递说明 24 2.5.4. 错误处理 24 2.5.5. 公用参数 28 2.6. 持久层 29 2.6.1. 数据库操作部分 29 2.6.2. 离线数据集WzResult 30 2.6.3. 结果封装集WzTyResult 31 2.6.4. 持久类规范 31 2.7. 配置文件 34 2.7.1. 信息配置文件ApplicationResources.properties 35 2.7.2. 标记库配置文件DTHTML.TLD 35 2.7.3. WEB配置文件WEB.XML(固有) 35 2.7.4. 日志配置文件LOG4J.properties 39 2.7.5. 应用服务器配置和发布 40 2.7.5.1. RESIN配置文件RESIN.properties(应用服务器相关) 40 2.7.5.2. TOMCAT 41 2.7.6. 持久生成器主类MANIFEST.MF 43 2.7.7. 配置文件CONFIG.XML 43 2.7.8. 数据库SQL配置文件CONFIGSQL.XML 48 2.8. 测试 49 2.8.1. 说明 49 2.8.2. 测试文件命名 49 2.8.3. JUNIT说明 49 2.8.3.1. JUNIT架构说明 49 2.8.3.2. 样例文件 60 3. 系统开发约定 66 3.1. 程序命名约定 66 3.1.1.1. 一般程序名字约定 66 3.1.1.2. 数据库命名约定 67 3.1.1.3. WEB 67 3.2. 书写规范 68 3.2.1.1. 数据库 68 3.2.1.2. Java书写规范 69 备注 69 Java 文件样式约定 70 一般性编程约定 72 3.2.1.3. Web 73 网页 73 4. 各模块设计 74 4.1. 持久层生成器 74 4.1.1. 格式化信息定义 74 4.2. JAVA类路径 74 4.3. 通用维护 75 4.3.1. 设计目的 75 4.3.2. 数据库设计 75 4.3.3. 通用维护 77 4.3.4. 复合通用维护 77 4.3.4.1. 功能 77 4.3.4.2. web端设计 77 4.3.4.2.1. 初始化 77 4.3.4.2.1.1. 子表查询参数初始化原则 78 4.3.4.2.1.2. 隐含字段初始化原则 78 4.3.4.2.1.3. 默认查询条件原则 78 4.3.4.2.1.4. spcid取得 78 4.3.4.2.2. Web端调用流程说明 78 4.3.4.2.3. 样例说明 79 4.4. servlet集成类 86 4.4.1. 验证信息配置 86 4.4.1.1. 样例文件 86 4.4.2. 调用方法 87 4.4.3. 样例文件 87 4.5. 外部邮件(公用包) 90 4.5.1.1. 发送 90 A simple text email 90 Sending emails with attachments 90 Sending HTML formatted email 92 Debugging 93 Authentication 93 Handling Bounced Messages 94 4.5.1.2. 接收 95 4.6. 压缩(公用包) 95 4.6.1.1. 压缩 95 4.6.1.2. 解压 95 1. 系统设计架构说明 本系统设计主要是概要设计,具体详细设计见: 详细设计 名称 开发工具 程序UML Dcework2 TOGAHTER 6 数据库建模 DCEWORK2DB SYBASE PowerDesign10 程序开发 DCJFRAMEWORKPER BORLAND JBUILERX WEB.WAR DCWEB.WAR BORLAND JBUILERX JAVA基类包 DCJFRAMEWORK.JAR BORLAND JBUILERX 持久层生成器 DCJFRAMEWORKPER.EXE BORLAND JBUILERX 代码生成器 DCJFRAMEWORKPER.EXE BORLAND JBUILERX JAVA帮助 DCEWORK2DOC 开发工具 工具名称 备注 TOGAHTER 6 JAVA程序UML SYBASE POWLERDESIGNER10 数据库建模 BORLAND JBUILERX JAVA程序开发 DCJFRAMEWORKPER.EXE 持久层生成器 DCJFRAMEWORKPER.EXE 代码生成器 PLSQL Developer 数据库调试工具 Visio2003 流程开发工具 RESIN2 运行环境 1.1. 总体架构示意图 1.1.1. 各层示意图 1.1.1.1. WEB页面请求/返回结果处理过 1.1.1.2. 逻辑层 1.1.1.3. 统一错误处理 1.1.1.4. 日志记录 1.1.2. 各层采用JAVA技术 层 技术方案 采用技术方案 显示层 HTML XML APPLETE HTML APPLETE 显示处理层 JSP JSF JSP+TAGLIB XLST JSP+TAGLIB 应该是离线的结果集 过滤层 FILTER LISTENER FILTER LISTENER 数据分离层 SERVLET及相关衍生 JSP SERVLET扩展 封装和处理的结果应该是可序列化的 数据持久层 CMP JDO HIBERNATE 自定义 自定义持久层 日志记录 LOG4J LOGFACTORY(J2SE1.4) LOG4J 错误信息定义 BOUDERSOURCE 相关技术 BOUDERSOURCE 国际化语言定义 BOUDERSOURCE BOUDERSOURCE 2. 各层设计 2.1. 页面层HTML 2.1.1. 页面脚本处理 通过规则定义,使用统一脚本处理。 以下脚本通过VBS实现,请在页面的低端加入: <script language="vbScript" src="脚本名称"> </script> 2.1.1.1. Enter to tab处理 通过统一脚本实现。 脚本:entertotabs.vbs 2.1.1.2. 客户端输入域判断 判断内容:值的判断:非空,数字(整数),日期,范围,比较。 判断规则:通过title表示,title格式组成,通过”|”分割 域 内容 名称 提示内容 简单判断 _not:不为空 _num:数字 _d:日期 _t:时间 _dt:日期+时间 _int:整数 格式 正则表达式 范围 ,分割 比较 [l|g|n],相关域 L:小于 g:大于 n:不等于 脚本:Checkclient.vbs的方法Checkclient(x):x:表示FORM的名称或序号,返回BOOLEAN类型 方法调用:<input name="DATASAVE" id=”DATASAVE” type="submit" accesskey= “s” title="快捷键(CTRL+ENTER)" onclick="return checkclient(0)" value="保存" language="JavaScript"> 2.1.1.3. 快捷键的使用 定义: 快捷键 Id代号 功能 PAGEDOWN(34) PAGEDOWN 下一页 PAGEUP(33) PAGEUP 上一页 HOME(36) PAGEHOME 首页 END(35) PAGEEND 尾页 INSERT(45) DATAINSERT 新增 DELETE(46) DATADELETE 删除 CTRL+ENTER DATASAVE 保存 F9(120) PAGEREFRESH 重载页面 ESC(27) 关闭本页 脚本:entertotab.vbs 2.1.1.4. 打印处理 通过调用本地 EXCEL实现,对规则的table调用(没有跨行、跨列的)进行页面打印或EXCEL文档格式导出. 脚本:printclient.vbs 调用方法:msg_print(bt,table_id,row_start,row_end,col_start,col_end,ym,yj) 参数说明: 参数 说明 bt 标题 table_id 要打印表格的ID row_start 开始打印的行数 如第一行从0开始 col _end 打印结束的行数:指到最后一行的行数 如最后一行为0 col _start 开始打印的列 从0开始 col _end 打印结束的列数:指到最后一列的列数 如最后一列为0等 ym 页眉内容 yj 页脚内容 2.1.2. CSS样式表 统一存放在目录CSS下 样式表 body.css 表和连接定义 putong_1t.css 仿XP风格定义 2.1.3. 控件样式 控件 CLASS 备注 text input file input TEXTAREA InputArea checkbox checkbox radio radio SELECT Inputselect button button 2.2. 数据处理层JSP 这一层主要是把要显示的数据生成HTML格式。 分两种方式生成:动态和静态的。 动态:JSP/SERVLET及其相关衍生技术。 静态:HTML。 2.2.1. 注意问题 l 对名称命名和属性的定义见《页面》 l 对于JSP等页面处理 数据的处理 对于数据分离层传递过来的数据应该是离线(最好是序列化)。 对结果集的传递应用wzresult(已继承java.sql.resultset),不应在页面中出现资源操作代码(如数据库操作、文件操作、邮件操作等);、 对结果集的封装应该适用wztyresult 其GetDisplayLabel方法可以取得字段对应代码的含义 字符集设定 l <%@ page contentType="text/html; charset=gb2312" %> l <%@ page pageEncoding="GB2312"%> l response.setContentType("text/html; charset=gb2312"); l request.setCharacterEncoding("gb2312"); 在使用request和response之前,进行设置 验证处理 主要是非空判断,其他不做判断 错误处理 本层不设错误处理 对NULL的处理 Ob==null?””: Ob 对页面的连接 在路径前加上<%=request.getContextPath()%>上下文环境变量 标准信息的定义 l 通过在ApplicationResources.properties定义错误信息,以msg.html.[button][label][menu][title].开头 l <dchtml:messages key="error.data.del.exception" /> l HTML <META http-equiv="Content-Type" content="text/html; charset=gb2312"> l 其他注意问题 使用统一css处理 对日期和时间的输入,应通过脚本取得 2.2.2. 公用变量 session变量 名称 含义 用户信息请继承wz.elec.web.pubs.bean. LoginUserIMp 用户类 __EWORK_SYSTEM_APP_USER SESSION存储变量 全部小写 application变量 名称 含义 _EWORK_SYSTEM_ORGANIZE_USER 记录在线用户信息:用户编号、用户名称、登陆计算机,登陆时间 2.3. 数据分离层SERVLET 2.3.1. 注意事项 l 把提交的数据进行(主要指request,SESSION,APPLICATION)分离、验证、封装,传递到逻辑层 功能含义 含义 说明 l Request数据 首先通过GETPARMTER方法取得数据 非空判断(null和””)(验证) 对取得的数据进行格式验证(验证) 对取得的数据进行类型转换(验证) 对验证和转换完毕的数据按逻辑层需要的格式进行封装(封装) l SESSION和APPLICATIN数据 逻辑层需要的数据可能来自SESSION和APPLICATIN变量,这样在分离层取得后,封装传递到逻辑层 l 通过在ApplicationResources.properties定义错误信息,以error.开头 l 通过 ActionError进行错误处理封装 l 通过 ActionErrors进行错误结果类的封装,通过saveErrors(request, errors); //保存错误集合到request对象 l errors.isEmpty 判断是否进行错误处理 l 把逻辑层返回的结果进行分离、验证(根据错误码,进行错误处理)、封装,传递到数据结果显示层 处理方式: SERVLET及其相关衍生技术. 2.3.2. 错误处理 定义、调用 l 通过在ApplicationResources.properties定义错误信息,以error.开头 l 通过 ActionError进行错误处理封装 l 通过 ActionErrors进行错误结果类的封装,通过saveErrors(request, errors); //保存错误集合到request对象 l errors.isEmpty 判断是否进行错误处理 l ActionForward(url);进行转向处理 2.3.3. 公用参数 wz.elec.web.pubs.webConst Web端公用参数 2.3.4. 样例说明 package wz.elec.web.xt.action; import wz.elec.pubs.action.*; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import wz.elec.cli.pubs.WzCliOperation; import wz.elec.pubs.WzTyResult; import java.util.HashMap; import java.util.Enumeration; import org.apache.log4j.*; import wz.elec.pubs.action.ActionInitErrors; /** * 功能简介:实现通用模块的删除处理 * @version 2.0 * @author 原军旗 * @see Action * @since 1.3 */ public class FhCommonDel extends Action { static Logger logger = Logger.getLogger ( FhCommonDel.class.getName () ) ; /** * 功能简介:处理删除以及删除后转向页面 * @param mapping The ActionMapping used to select this instance. * @param form The optional ActionForm bean for this request. * @param request The HTTP Request we are processing. * @param response The HTTP Response we are processing. */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { request.setCharacterEncoding("GB2312"); String target = null; String url = null; ActionErrors errors = new ActionErrors(); //错误处理类 WzCliOperation dataOperate = new WzCliOperation(); //数据操作和EJB调用类 WzTyResult resultSet = null; //获得删除结果集 /* 数据删除操作开始 */ String tableCode = request.getParameter("tableCode"); //表的名称代码 if (tableCode==null||tableCode=="") { errors.add("error3", new ActionError("error.param.tableCode.wrong")); return this.ActionForwardS(errors,request,response); } String sWhere = ""; //查询条件 try { String str = ""; System.out.println(request.getParameter("T_1")); Enumeration enums = request.getParameterNames(); while (enums.hasMoreElements()) { str = (String) enums.nextElement(); //System.out.println("["+str+"]"); if (str.indexOf("T_") != -1) { if (request.getParameter(str) != null) { sWhere = sWhere + "'" + request.getParameter(str) + "',"; } } } if (sWhere == "") { sWhere = ""; } else { sWhere = sWhere.substring(0, (sWhere.length() - 1)); } //System.out.println("["+sWhere+"]"); HashMap tableRMAP = new HashMap(); //主要填充数据 resultSet = dataOperate.tyRequestDel(tableCode, sWhere, tableRMAP); //得到删除结果 if (resultSet.errCode != 0) { errors.add("error2", new ActionError("error.ejb.failure")); logger.warn(resultSet.errMsg); return this.ActionForwardS(errors,request,response); } Object head = resultSet.getBT(); //得到标题数据 Object body = resultSet.getTA(); //得到表体数据 Object set = resultSet.getJH(new Object()); //得到数据集 } catch (Exception e) { errors.add("error1", new ActionError("error.data.del.exception")); logger.error(ActionInitErrors.getProperty("error.data.del.exception"),e); return this.ActionForwardS(errors,request,response); } /* 数据删除操作结束 */ sWhere = request.getParameter("sWhere"); if (sWhere == null) { sWhere = ""; } saveErrors(request, errors); //保存错误集合到request对象 if (!errors.isEmpty()) { target = "failure"; url = "/error/error.jsp"; } else { target = "success"; String swh = request.getParameter("swh"); if (swh == null) { swh = "000"; } url = "/yk/FhCommonSelect.do?tableCode=" + tableCode + "&sWhere=" + sWhere + "&swh=" + swh; } return new ActionForward(url); } } 2.4. 过滤层 2.4.1. 过滤FILTER 通过继承FILTER,进行以下方面的流程传递控制: l 权限:判断是否登录、是否允许登录到相关页面等 l 字符集:对REQUEST、RESPONSE等输入输出进行规定的字符设置。 l 格式转换:对输出或输入的数据进行统一的格式化数据处理。 样例 package wz.elec.web.pubs.filter; import javax.servlet.ServletResponse; import javax.servlet.Filter; import javax.servlet.ServletException; import javax.servlet.FilterConfig; import javax.servlet.ServletRequest; import javax.servlet.FilterChain; import java.io.IOException; import javax.servlet.http.*; import wz.elec.web.pubs.bean.LoginUserMap; import javax.servlet.RequestDispatcher; import wz.elec.cli.pubs.WzCliOperation; /** * 功能简介:URL地址过滤器,对URL地址进行过滤 * <p>创建日期:2003-1-6 * <p>修改日期: * <p>修改说明: * <p>版权所有:Copyright 2003 山东五洲科技开发有限公司, Inc. All rights reserved. * @version 2.0 * @author 原军旗 * @see Filter * @since 1.3 */ public class UrlAddressMonitorFilter implements Filter { private FilterConfig filterConfig = null; public final static String url="invalid"; /** * 功能简介:初始化 * @param filterConfig */ public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } /** * 功能简介:破坏掉 */ public void destroy() { this.filterConfig = null; } /** * 功能简介:执行过滤器 * @param request * @param response * @param chain */ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; /* HttpSession session = req.getSession(true); LoginUserMap user = (LoginUserMap)session.getAttribute("userId"); if(user ==null) { urlForward(request,response,""); //chain.doFilter(req, res); return; }*/ chain.doFilter(req, res); } /** * 功能简介:过滤私有方法 */ private void urlForward(ServletRequest request, ServletResponse response,String url)throws IOException, ServletException{ RequestDispatcher dispath =request.getRequestDispatcher("/forward.jsp?url="+url); dispath.forward(request,response); } } 2.4.2. 事件LISTENERS 主要有四个事件 名称 解释 备注 ServletContextListener 上下文事件 产生、销毁 ServletContextAttributeListener 上下文属性事件 添加、删除、修改 HttpSessionAttributeListener 会话属性事件 添加、删除、修改 HttpSessionListener 会话事件 产生、销毁 样例 package wz.elec.web.pubs.servlet; import javax.servlet.http.HttpSessionBindingEvent; import javax.servlet.http.HttpSession; import javax.servlet.ServletContextAttributeListener; import java.util.Hashtable; import wz.elec.web.pubs.bean.LoginUserMap; import javax.swing.*; import java.util.*; /** * 功能简介:SESSION变量的参数处理,主要用于登录模块的监听处理 * <p>创建日期:2003-12-25 * <p>修改日期: * <p>修改说明: * <p>版权所有:Copyright 2003 山东五洲科技开发有限公司, Inc. All rights reserved. * @version 2.0 * @author 原军旗 * @see HttpSessionAttributeListener * @since 1.3 */ public class LoginSessionAttributeListener implements javax.servlet.http.HttpSessionAttributeListener { private HttpSession session = null; private String name = null; /** * SESSION参数添加操作 * @param event 监听参数添加处理 */ public void attributeAdded(HttpSessionBindingEvent event) { name = event.getName(); session = event.getSession(); if(name.equals("userId")) { Hashtable users = (Hashtable)event.getSession().getServletContext().getAttribute("users"); if(users != null) { if(!users.containsKey(event.getValue())){ users.put(event.getValue(),session); event.getSession().getServletContext().setAttribute("users",users); } } } } /** * 功能简介:SESSION参数注销操作 * @param event 监听参数注销处理 */ public void attributeRemoved(HttpSessionBindingEvent event) { name = event.getName(); if(name.equals("userId")) { Hashtable users = (Hashtable)event.getSession().getServletContext().getAttribute("users"); if(users != null) { HttpSession session = (HttpSession)users.get(event.getValue()); if(session != null) { users.remove(event.getValue()); event.getSession().getServletContext().setAttribute("users",users); } } } session = event.getSession(); } /** * 功能简介:SESSION参数取代操作 * @param event 监听参数取代处理 */ public void attributeReplaced(HttpSessi- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JFRAMEWORK 架构 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文