千家信息网

Web应用程序中Resource Bundle技术分析

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"Web应用程序中Resource Bundle技术分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读
千家信息网最后更新 2025年02月01日Web应用程序中Resource Bundle技术分析

本篇内容介绍了"Web应用程序中Resource Bundle技术分析"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

背景概述

世界经济日益全球化的同时,一个应用程序需要在全球范围内使用势在必然。传统的程序设计方法将可翻译信息如菜单按钮的标签,提示信息,帮助文档等文字信息硬编码在程序代码中,不能很好的适应全球化发展,程序的扩展性差,维护成本高。一个能支持全球化的应用程序,必须实现单一可执行的程序,动态地使用资源(Single Source Single Executable),图1 是两种模型的对比图。

图 1. 传统的程序模型和支持全球化程序模型

对于一个能支持全球化的应用程序来说:

一方面需要考虑的是用户的语言环境(我们称作 Language Locale):这里主要就是指翻译,在不同的国家用他们自己的语言正确运作软件,让客户感觉这个产品是为他们而设计的;

另一方面就是用户的文化环境(我们称作 Culture Locale):主要处理的是多元文化的支持,包括货币、日历、时间、日期、排序、界面方向性(Bi-directional) 等符合各个国家自己习惯的显示方式。

图2 概述了如何使得一个应用程序(C/S 或者 B/S)支持全球化和本地化。

图 2. 全球化应用程序

本文结合项目实践,总结了 web 应用程序中 Java,JSP,Dojo 和 HTML 四种不同语言是如何管理 Resource Bundle 的,实现单一可执行程序动态读取资源文件,从而支持全球化和本地化。主要从三个方面来阐述:资源文件存储和命名规则;用户语言区域信息的读取;如何取得对应语言的资源文件中的键值。

Java 程序中的 Resource Bundle 管理

ResourceBundle 是一个机制,主要用来根据用户的语言环境展示不同的界面文字给用户,让用户感觉这个应用程序为我而定制。

然而 Java 中的 ResourceBundle 是一个类,包含在标准的 Java 发行版中。图3总结了 Java 程序中 ResourceBundle 的管理机制。

图 3. Java 程序 Resource Bundle 管理流程

Java 程序中资源文件的存储和命名

在一个多模块的 Java 应用程序中,一般每个模块都有自己独立的资源文件(也叫 Resource Bundles),Resource Bundle 一般存储在对应模块的 src/resources/bundles/java/ 目录下面。通常的命名规则是:模块名_语言_国家 .properties({moduleName}_{language}_{country}.properties)。对应资源文件中的每一个 key,一般都是小写字母开头,用下划线表示这个 key 在程序中的层级结构,并且按照字母顺序排序,便于管理和查找,如清单1所示的例子。

清单 1. Java properties 文件示例

英文Properties 文件:     helloKey=Hello!     goodMorningKey=Good Morning!     goodEveningKey=Good Evening!      日语Properties 文件:     helloKey=\u3053\u3093\u306b\u3061\u306f!     goodMorningKey=\u304a\u306f\u3088\u3046!     goodEveningKey=\u3053\u3093\u3070\u3093\u306f!

Java 程序对资源文件的回滚机制:当对应翻译的资源文件不存在时,将使用"默认"的资源文件(通常为英文),图 4 是 Java 资源文件的组织方式。

图 4. Java 资源文件组织方式

Java 中用户语言环境(Locale)和资源文件的读取

根据用户使用的区域信息来决定从哪个 Resource Bundle 里面读取对应的 key 值。Java 语言通过 java.util.Locale 类来表示区域,一个 Locale 实例就代表了一个特定的区域。在实际的项目中,通常将读取资源文件包装成一个类,方便后续代码的重用和管理,如清单 2 的示例所示。

清单 2. Java 中 ResourceBundleService 使用

public class LocalizedPropertyResources extends MessageResources {  private static final String MODULE_NAME = "resourceBundle.module.name";  public String getProperty(String key, Object... parameters) {  Locale locale = getUserLocale();  String value = getProperty(key, locale, parameters);  Return value;  }  public String getProperty(String key, Locale locale, Object... parameters) {  ResourceBundle resourceBundle = ResourceBundle.getBundle(MODULE_NAME, locale);  String value resourceBundle.getString(key, parameters);  return value;  }  }

JSP 中的 Resource Bundle 管理

资源文件管理:JSP 是基于 Java 技术,所以 Java 中的 ResourceBundle 机制也可以应用于 JSP,同样以 .properties 形式存储资源文件,资源文件的命名规则、资源文件的存储结构,key 的命名规则等都可以遵循 Java 程序中的 Resource Bundle 管理机制。

用户语言环境的设定:HTTP 协议通过 Accept-Language 请求头将本地化信息从浏览器传递至服务器, JSTL fmt 库中的定制标记又会利用这些方法来自动地确定用户的语言环境,从而相应地调整它们的输出。同时用户也可以通过 来设置用户语言环境。

对于 JSP 中资源文件的读取有以下三种情况:

1、使用 fmt 消息标签:JSP 标准标签库(JSP Standard Tag Library,JSTL)中的 fmt标签支持通过资源文件(ResourceBundle)对文本内容进行本地化,该功能可以对一个特定的语言请求作出相应的响应,它使用了 J2SE 的 ResourceBundle 来保持各种翻译过的语言编码。另外用来设置地区,比如,这等于设定了语言和国家代码。默认 JPS 将读取 Accept-Language 信息。还可以指定 ResourceBundle,比如: 。一旦设定了 locale(地区)或 ResourceBundle,就可以使用 来把原文进行相应的转化,同时还可以使用< fmt:requestEncoding/>来设定请求的字符编码。如清单3 示例所示:

清单 3. JSTL fmt 标签示例

//myTest.jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>          JSTL fmt: Localized tag testing                         

//也可以通过下面的方式获取资源文件

2、被 Spring 管理的 JSP,通常 JSP 中有这样的 taglig"",这种情况下可以使用 Spring message 标签。

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>  

3、对于由 Struts 操作类提供的JSP,可以使用 Struts bean 消息标签:

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>  

Dojo 中的 Resource Bundle 管理

Dojo 是一个 JavaScript 库,提供了一个有用的工具来创建丰富的 Web 客户端界面。同时 Dojo 也提供了 API 支持全球化功能,如翻译资源包,函数的格式化和解析日期、数字和货币,Dojo 对全球化的支持主要基于 CLDR (Common Locale Data Repository) 和 ICU 的使用。 这一小节总结了 Dojo 中资源文件的管理,用户区域信息(locale)和资源文件的读取,如图5所示。

图 5. Dojo 中资源文件管理

Dojo 中资源文件的存储和命名

UTF-8 是 Dojo 程序编码的先决条件,Dojo 脚本一般将使用 HTML,JSP,Servlet,js等编写,所以这些文件必须以 UTF-8 编码。Dojo 用 JSON 格式来组织资源文件,首先在 /nls 目录下有一个主资源文件(一般是英文),主资源文件中定义了支持的区域,区域的值设置为 true 或者 false,如清单4所示。

清单 4. Dojo 主资源文件的定义

define({       root: {         OK: "Ok",         CANCEL: "Cancel",         OK_CANCEL: "${OK}, ${CANCEL}"       },       "ko": true,       "ja": true,       "ru": false,       "zh-cn": true     });

翻译的资源文件应放在/ nls / 目录中,目录的命名需要符合下面的规范:

  • 目录的名称必须要全部小写

  • 用横线(而不是下划线)分割语言和国家,比如 zh-cn,zh-tw 等,如清单5所示。

清单 5. 翻译资源文件的目录结构

/src/web/js/nls/menu.js       ... 主资源文件,用于默认的消息显示     /src/web/js/nls/ko/menu.js    ... 韩语的翻译文件                     /ja/menu.js    ... 日语的翻译文件                     /ru/menu.js    ...俄语的翻译文件                      /zh-cn/menu.js  ...简中的翻译文件                     ...

Dojo 资源文件的回滚机制为:在 / nls 目录的根目录下如果检测到区域设置,但 nls 目录中不存在特定于区域设置的资源,则将使用主包;当主资源文件中某个语言设置为 false 时,即使该语言的资源文件存在,也将使用主包。

Dojo 中用户语言环境(Locale)和资源文件的读取

Dojo 和 Java 以相同的方式支持用户区域信息,但 Dojo 和 Java 实现之间存在微小差异。

  • "Dojo 和 Java 对区域设置命名约定有一些区别,Dojo 使用" - "(连字符)作为连接语言代码,国家代码和变体的分隔符,而 Java 使用"_"(下划线)。例如,Java 中的 "zh_CN" 与 Dojo 中的 "zh-cn" 相似。

  • 像 Java 中的默认用户语言区域一样,Dojo 有一个全局变量 dojo.locale 用来存储默认 locale 值,但是我们不能直接修改 dojo.locale,可以通过 dojoConfig.locale 来对 dojo.locale 做初始化工作。

  • 如果 dojoConfig.locale 未定义,Dojo 使用浏览器的显示语言作为用户区域设置。另外 dojoConfig.locale 的设定需要在加载 dojo.js 之前,这样设置的 dojoConfig.locale 才会起效果。如清单 6 是一个示例将用户的 locale 信息保存在 sessionScope,然后传递给 dojoConfig。

清单 6. 将用户 locale 保存在 sessionScope 传递给 dojoConfig

var dojoConfig = {             async: 'sync',             baseUrl: '',             locale: '${sessionScope.userLanguageLocale}',                           bindEncoding: "utf-8",                 …         };

userLanguageLocale:是应用程序中用户所设定的 locale,每个应用程序可能不太一样。

Dojo 中有两种方式读取资源文件:

方式 1:又叫 AMD 方式,通过 dojo/i18n! 这个插件加载资源文件,首先检测 dojoConifg.locale 是否设置,如果设置了就读取 dojoConfig.locale,否则就会使用浏览器的显示语言读取对应的翻译资源文件。清单 7 是 dojo/i18n! 的使用示例。

清单 7. Dojo/i18n!使用示例

...      ...

HTML 中的 Resource Bundle 管理

HTML 中的硬编码(Hard Code)通常分为两种情况:一种情况是 HTML 页面不涉及任何编程逻辑,这时候可以翻译整个 HTML 文件(这种方式在开发过程中不需要特殊处理),或者将 HTML 变更为 JSP,这样就可以利用 JSP 中 fmt 标签将 Hard Code 提取出来,如清单 9 示例所示。

清单 9. HTML 更改为 JSP

//Index.html         Welcome Page       …      //将 Index.html 更改为 Index.jsp,这样就可以利用 JSP 中 fmt 标签  <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>         <fmt:message key="common_welcome" /></ title>  </head>  <body>  …  </body>  </html>  //test.properties  Common_welcome=Welcome Page  …</pre><p>//将 Index.html 更改为 Index.jsp,这样就可以利用 JSP 中 fmt 标签</p><p>另外一种情况是 HTML 作为 Dojo widget 模板文件,这种情况下可以使用 dojo API 的 i18n 库来处理硬编码消息,其处理方式和 Dojo 很类似,模板 HTML 文件中使用的 Key 需要在 Widget 的 js 文件中定义和获取。下面将通过示例介绍 HTML 作为 Dojo 模板文件时,如何抽取当中的 hard code 信息。通常分三个步骤完成模板 HTML 文件中的字符串抽取。</p><p>***步: 将 HTML 中的字符串放到一个资源文件如 message.js 中,资源文件的组织方式和 Dojo 是一样的;</p><p>第二步: 在 Dojo widget 的 js 文件中使用 Dojo Resource Bundle 获取资源文件,定义变量获取对应的Key值;</p><p>第三步: 在HTML模板文件中使用 Dojo .js 文件中定义的变量。如清单 10 所示。</p><p><strong>清单 10. HTML 作为 Dojo Widget 模板</strong></p><pre>Test.html  <div dojoAttachPoint="testNode" style="display:inline">  <table style="position: relative; margin: 20px 0 0 120px; padding: 0;">  <tr>  <td style="text-align: right;">Username:</td> //原来的 hard code  <td style="text-align: right;">${usernameLabel}</td> //Resource out 之后的变量引用  ….  </tr>  </div>  Test.js  dojo.requireLocalization("js", "message");  dojo.declare("Test") {  templatePath: dojo.moduleUrl("common", " /html/Test.html"),  usernameLabel: "",  postMixInProperties: function(){  this.inherited(arguments);  var resources = dojo.i18n.getLocalization("js", "message");  this.usernameLabel = resources.labels.username; //获取资源文件  }  }</pre><p>清单 11. HTML 中特殊硬编码处理</p><pre>// Hard Code  <html>  <body>  <select id="Product">  <option>Is Not</option>  <option>Is</option>  </select>  </body>  </html>  //处理后的 HTML  <html>  <body>  <select id="Product">  <option value="Is Not"> ${ Label.IS_NOT}</option> <option value="Is">${Label.IS}</option>  </select>  </body>  </html></pre><p class="introduction">"Web应用程序中Resource Bundle技术分析"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!</p>

        </div>


        <div class="diggit"><a href="#"> 很赞哦! </a></div>
        <div class="clear"></div>

        <div class="keywords">


        <a href="/s-文件">文件</a>
            <a href="/s-资源">资源</a>
            <a href="/s-程序">程序</a>
            <a href="/s-语言">语言</a>
            <a href="/s-清单">清单</a>
            <a href="/s-用户">用户</a>
            <a href="/s-方式">方式</a>
            <a href="/s-管理">管理</a>
            <a href="/s-应用">应用</a>
            <a href="/s-区域">区域</a>
            <a href="/s-应用程序">应用程序</a>
            <a href="/s-信息">信息</a>
            <a href="/s-全球">全球</a>
            <a href="/s-示例">示例</a>
            <a href="/s-支持">支持</a>
            <a href="/s-标签">标签</a>
            <a href="/s-全球化">全球化</a>
            <a href="/s-环境">环境</a>
            <a href="/s-目录">目录</a>
            <a href="/s-编码">编码</a>
    
<a target="_blank" href="https://www.qianjiagd.com/tag-2377745.html">数据库的安全要保护哪些东西</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2375887.html">数据库安全各自的含义是什么</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377880.html">生产安全数据库录入</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377879.html">数据库的安全性及管理</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377878.html">数据库安全策略包含哪些</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377877.html">海淀数据库安全审计系统</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377876.html">建立农村房屋安全信息数据库</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377875.html">易用的数据库客户端支持安全管理</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377874.html">连接数据库失败ssl安全错误</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377873.html">数据库的锁怎样保障安全</a>

<a target="_blank" href="https://www.qianjiagd.com/tag-1179100.html">全国公安院校网络技术学院</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-755617.html">数据库无法识别网络怎么办</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1048279.html">dna数据库 入吗</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-401898.html">服务器定时删除日志超过多大内存</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1448559.html">网络安全管理系统建设成交</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1144654.html">常熟网络技术支持费用</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2347479.html">想做设计需要什么软件开发</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-656975.html">t3数据库安装</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1983478.html">杨浦区软件开发协议</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-721422.html">数据库基本的数据类型</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-358065.html">哪家券商服务器好</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-203906.html">服务器电源 工作</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2005600.html">接口软件开发协议</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1679234.html">网络安全法对酒店管理等影响</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1648100.html">网络安全科学家岗位分析</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-1171167.html">令牌网络技术</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-196657.html">2008 ca服务器搭建</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-242972.html">魔兽怀旧服服务器怎么赚钱</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-245850.html">本地服务器网页显示不全</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2064793.html">软件开发与设计论文选题</a>
<a target="_blank" href="https://www.qianjiagd.com/s-软件开发师上什么学">软件开发师上什么学</a>
<a target="_blank" href="https://www.qianjiagd.com/s-湖北数据网络安全工程联系方式">湖北数据网络安全工程联系方式</a>
<a target="_blank" href="https://www.qianjiagd.com/s-河南数据网络技术分类资费">河南数据网络技术分类资费</a>
<a target="_blank" href="https://www.qianjiagd.com/s-网络安全大宣讲活动简报">网络安全大宣讲活动简报</a>
<a target="_blank" href="https://www.qianjiagd.com/s-金蝶服务器数据库未启动">金蝶服务器数据库未启动</a>
<a target="_blank" href="https://www.qianjiagd.com/s-linux 管理服务器">linux 管理服务器</a>
<a target="_blank" href="https://www.qianjiagd.com/s-接口软件开发协议">接口软件开发协议</a>
<a target="_blank" href="https://www.qianjiagd.com/s-租房子无线网络安全吗">租房子无线网络安全吗</a>
<a target="_blank" href="https://www.qianjiagd.com/s-网络安全与执法概论小结">网络安全与执法概论小结</a>
<a target="_blank" href="https://www.qianjiagd.com/s-服务器和u盘一样的东西是什么">服务器和u盘一样的东西是什么</a>
        </div>
        


        <div class="share"><img src="https://www.qianjiagd.com/static/zsymb/images/wxgzh.jpg">
          <div class="share-text">
            <p>扫描关注千家信息网微信公众号,第一时间获取内容更新动态</p>
            <p>转载请说明来源于"千家信息网"</p>
            <p>本文地址:<a href="https://www.qianjiagd.com/a115621" target="_blank">https://www.qianjiagd.com/a115621</a></p>
          </div>
        </div>
        <div class="clear"></div>
        <div class="info-pre-next">
          <ul>
            <li><a href="https://www.qianjiagd.com/a115618"><i><em>上一篇</em><img src="https://www.qianjiagd.com/static/assets/images/nopic.gif"></i>
              <h2>怎么使用Java中的foreach语句来获取对象index下标</h2>
              <p>这篇文章主要介绍了怎么使用Java中的foreach语句来获取对象index下标,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在J</p>
              </a></li>
            <li><a href="https://www.qianjiagd.com/a115622"><i><em>下一篇</em><img src="https://www.qianjiagd.com/static/assets/images/nopic.gif"></i>
              <h2>CSS中怎么实现div全屏宽度</h2>
              <p>本文小编为大家详细介绍"CSS中怎么实现div全屏宽度",内容详细,步骤清晰,细节处理妥当,希望这篇"CSS中怎么实现div全屏宽度"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知</p>
              </a></li>
          </ul>
        </div>
      </div>
    </div>


    <div class="clear blank"></div>


    <div class="otherlink whitebg">
      <div class="news-title">
        <h2>相关文章</h2>
      </div>
      <ul>
        <li><a href="https://www.qianjiagd.com/a177928" title="PHP中session会话操作技巧有哪些">PHP中session会话操作技巧有哪些</a></li>
        <li><a href="https://www.qianjiagd.com/a146158" title="PHP类相关知识点有哪些">PHP类相关知识点有哪些</a></li>
        <li><a href="https://www.qianjiagd.com/a123341" title="VS2008无法直接查看STL值怎么办">VS2008无法直接查看STL值怎么办</a></li>
        <li><a href="https://www.qianjiagd.com/a245815" title="php版微信公众平台之微信网页登陆授权的示例分析">php版微信公众平台之微信网页登陆授权的示例分析</a></li>
        <li><a href="https://www.qianjiagd.com/a201934" title="中高级PHP程序员应该掌握什么技术">中高级PHP程序员应该掌握什么技术</a></li>
        <li><a href="https://www.qianjiagd.com/a63118" title="CI框架出现mysql数据库连接资源无法释放怎么办">CI框架出现mysql数据库连接资源无法释放怎么办</a></li>
        <li><a href="https://www.qianjiagd.com/a37602" title="ajax跨域访问报错501怎么办">ajax跨域访问报错501怎么办</a></li>
        <li><a href="https://www.qianjiagd.com/a106909" title="什么是RPC框架">什么是RPC框架</a></li>
        <li><a href="https://www.qianjiagd.com/a157266" title=".net mvc超过了最大请求长度怎么办">.net mvc超过了最大请求长度怎么办</a></li>
        <li><a href="https://www.qianjiagd.com/a213044" title="php分页原理的示例分析">php分页原理的示例分析</a></li>
        <!-- <li><a target="_blank" href="/">制作是这么收费的?</a></li> -->
      </ul>
    </div>





  </div> <!-- . end of left-box -->


<!-- right aside start-->


  <aside class="side-section right-box">
    <div class="side-tab">
      <ul id="sidetab">
        <li class="sidetab-current">站长推荐</li>
        <li>点击排行</li>
      </ul>
      <div id="sidetab-content">
        <section>
          <div class="tuijian">



      <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a622964" title="recovery是什么意思?电脑开机重启显示recovery蓝屏怎么办"><img src="https://www.qianjiagd.com/uploadfile/thumb/a87ff679a2f3e71d9181a67b7542122c/278x185_auto.jpg" alt="recovery是什么意思?电脑开机重启显示recovery蓝屏怎么办"><span>recovery是什么意思?电脑开机重启显示recovery蓝屏怎么办</span></a></section>
      <ul>
        <li><a href="https://www.qianjiagd.com/a67182" title="怎么在Linux中配置SSH和Xshell远程连接服务器"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/9a/65e9dcdf.jpg" alt="怎么在Linux中配置SSH和Xshell远程连接服务器"></i>
          <p>怎么在Linux中配置SSH和Xshell远程连接服务器</p>
          </a></li>
        <li><a href="https://www.qianjiagd.com/a123341" title="VS2008无法直接查看STL值怎么办"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/52/bf79ba42.jpg" alt="VS2008无法直接查看STL值怎么办"></i>
          <p>VS2008无法直接查看STL值怎么办</p>
          </a></li>
        <li><a href="https://www.qianjiagd.com/a106909" title="什么是RPC框架"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/10/d0f5142a.jpg" alt="什么是RPC框架"></i>
          <p>什么是RPC框架</p>
          </a></li>
        <li><a href="https://www.qianjiagd.com/a157266" title=".net mvc超过了最大请求长度怎么办"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/36/6d16d7e5.jpg" alt=".net mvc超过了最大请求长度怎么办"></i>
          <p>.net mvc超过了最大请求长度怎么办</p>
          </a></li>
      </ul>
      <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a244736" title="java怎么实现try/catch异常块"><img src="https://www.qianjiagd.com/uploadfile/thumb/15/9878a9c6.jpg" alt="java怎么实现try/catch异常块"><span>java怎么实现try/catch异常块</span></a></section>
      <ul>
        <li><a href="https://www.qianjiagd.com/a199222" title="PHP中如何处理上传文件"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/ee/203d504b.jpg" alt="PHP中如何处理上传文件"></i>
          <p>PHP中如何处理上传文件</p>
          </a></li>
        <li><a href="https://www.qianjiagd.com/a184615" title="php中require_once报错的解决方法"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/ef/e0177085.jpg" alt="php中require_once报错的解决方法"></i>
          <p>php中require_once报错的解决方法</p>
          </a></li>
        <li><a href="https://www.qianjiagd.com/a192541" title="PHP如何编写学校网站上新生注册登陆程序"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/a1/0898126a.jpg" alt="PHP如何编写学校网站上新生注册登陆程序"></i>
          <p>PHP如何编写学校网站上新生注册登陆程序</p>
          </a></li>
        <li><a href="https://www.qianjiagd.com/a210747" title="php中微信公众号开发模式的示例分析"><i><img src="https://www.qianjiagd.com/uploadfile/thumb/af/9e9aba9a.jpg" alt="php中微信公众号开发模式的示例分析"></i>
          <p>php中微信公众号开发模式的示例分析</p>
          </a></li>
      </ul>

          </div>
        </section>
        <section>
          <div class="paihang">


      <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a21343" title="在vmware esxi6.5中将硬盘驱动类型由HDD变为SSD类型"><img src="https://www.qianjiagd.com/uploadfile/thumb/ab/08b16e75.jpg" alt="在vmware esxi6.5中将硬盘驱动类型由HDD变为SSD类型"><span>在vmware esxi6.5中将硬盘驱动类型由HDD变为SSD类型</span></a></section>
     
      <ul>
        <li><i></i><a href="https://www.qianjiagd.com/a175843" title="Vue中的匿名插槽与具名插槽是什么">Vue中的匿名插槽与具名插槽是什么</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a114973" title="vue3与vue2的区别以及vue3的API用法介绍">vue3与vue2的区别以及vue3的API用法介绍</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a27254" title="录制的横屏视频怎么变成全屏竖屏(录制的横屏怎么变竖屏)">录制的横屏视频怎么变成全屏竖屏(录制的横屏怎么变竖屏)</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a69563" title="qq群作业里为什么图片上传不了(qq群作业照片传不上去)">qq群作业里为什么图片上传不了(qq群作业照片传不上去)</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a71754" title="vscoder如何关闭错误提示">vscoder如何关闭错误提示</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a36693" title="百度网盘PDF怎么转换成Word格式 PDF转Word操作教程">百度网盘PDF怎么转换成Word格式 PDF转Word操作教程</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a15469" title="老年机号码拉黑怎么解除(老年机号码拉黑怎么解除)">老年机号码拉黑怎么解除(老年机号码拉黑怎么解除)</a></li>
        <li><i></i><a href="https://www.qianjiagd.com/a85246" title="京东以旧换新评估价和实际一样吗(京东以旧换新估价和成交价一样吗)">京东以旧换新评估价和实际一样吗(京东以旧换新估价和成交价一样吗)</a></li>
      </ul>
      <section class="topnews imgscale"><a href="https://www.qianjiagd.com/a13935" title="拼多多注销后可以重开新用户吗(拼多多注销后重开算新用户吗)"><img src="https://www.qianjiagd.com/uploadfile/thumb/0a/8e8c068e.jpg" alt="拼多多注销后可以重开新用户吗(拼多多注销后重开算新用户吗)"><span>拼多多注销后可以重开新用户吗(拼多多注销后重开算新用户吗)</span></a></section>
  

          </div>
        </section>
      </div>
    </div>



    <div class="whitebg cloud">
      <h2 class="side-title">标签云</h2>
      <ul>


<a target="_blank" href="https://www.qianjiagd.com/tag-2377745.html">数据库的安全要保护哪些东西</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2375887.html">数据库安全各自的含义是什么</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377880.html">生产安全数据库录入</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377879.html">数据库的安全性及管理</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377878.html">数据库安全策略包含哪些</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377877.html">海淀数据库安全审计系统</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377876.html">建立农村房屋安全信息数据库</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377875.html">易用的数据库客户端支持安全管理</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377874.html">连接数据库失败ssl安全错误</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377873.html">数据库的锁怎样保障安全</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377872.html">数据库安全章节测试</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377871.html">华大基因数据库安全性</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377870.html">数据库es安全性测试工具</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377869.html">数据库与云安全</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377868.html">微生物安全数据库</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377867.html">数据库个人信息安全吗</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377866.html">安全数据库降级</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377865.html">黑龙江数据库安全防护系统</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377864.html">数据库安全性实验例题</a>
<a target="_blank" href="https://www.qianjiagd.com/tag-2377863.html">在国家公共安全数据库有记录</a>


      </ul>
    </div>


    <div class="clear blank"></div>

    <div class="whitebg suiji">
      <h2 class="side-title">猜你喜欢</h2>
      <ul>
        <li><a href="https://www.qianjiagd.com/a29879" title="微信登录加载联系人失败怎么弄(微信加载联系人失败 点击重试)">微信登录加载联系人失败怎么弄(微信加载联系人失败 点击重试)</a></li>
        <li><a href="https://www.qianjiagd.com/a63090" title="华为手机按键震动在哪设置关掉 按键振动怎么取消方法">华为手机按键震动在哪设置关掉 按键振动怎么取消方法</a></li>
        <li><a href="https://www.qianjiagd.com/a73496" title="陌陌无限注册教程(怎么注册陌陌新号)">陌陌无限注册教程(怎么注册陌陌新号)</a></li>
        <li><a href="https://www.qianjiagd.com/a206293" title="win10开机蓝屏终止代码SYSTEM_SERVICE_EXCEPTION的解决方法">win10开机蓝屏终止代码SYSTEM_SERVICE_EXCEPTION的解决方法</a></li>
        <li><a href="https://www.qianjiagd.com/a71928" title="微信看不到朋友圈不显示一条横线(微信看不到朋友圈只有一条横线)">微信看不到朋友圈不显示一条横线(微信看不到朋友圈只有一条横线)</a></li>
        <li><a href="https://www.qianjiagd.com/a123341" title="VS2008无法直接查看STL值怎么办">VS2008无法直接查看STL值怎么办</a></li>
        <li><a href="https://www.qianjiagd.com/a173126" title="快影怎么把视频弄成横屏播放 制作方法分享">快影怎么把视频弄成横屏播放 制作方法分享</a></li>
        <li><a href="https://www.qianjiagd.com/a22324" title="拼多多的多多支付怎么解绑银行卡(拼多多的多多支付怎么解绑银行卡)">拼多多的多多支付怎么解绑银行卡(拼多多的多多支付怎么解绑银行卡)</a></li>
        <li><a href="https://www.qianjiagd.com/a99782" title="怎么将苹果手机中录音发给好友 iPhone传语音文件方法教程">怎么将苹果手机中录音发给好友 iPhone传语音文件方法教程</a></li>
        <li><a href="https://www.qianjiagd.com/a213464" title="iis7.5中如何让html与shtml一样支持include功能">iis7.5中如何让html与shtml一样支持include功能</a></li>
 
      </ul>
    </div>
  </aside>



<!-- right aside  end-->

</article>



<div class="clear blank"></div>


<!--footer start-->
<footer>
  <div class="footer box">
    <div class="wxbox">
      <ul>
        <li><img src="https://www.qianjiagd.com/static/zsymb/images/wxgzh.jpg"><span>微信公众号</span></li>
        <li><img src="https://www.qianjiagd.com/static/zsymb/images/wx.png"><span>我的微信</span></li>
      </ul>
    </div>
    <div class="endnav">
      <p><b>站点声明:</b></p>
      <p>所有文章未经授权禁止转载、摘编、复制或建立镜像,如有违反,追究法律责任。</p>
      <p>Copyright © 2009-2025  <a href="https://www.qianjiagd.com/" target="_blank">千家信息网</a> All Rights Reserved.
        <a href="/sitemap.xml">网站地图</a>
        <a href="/about/">关于我们</a>
        <a href="/contact-us/">联系我们</a>

      </p>
    </div>
  </div>
</footer>

<a href="#" title="返回顶部" class="icon-top"></a>

<!--footer end-->



<div style="display:none">

<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?aec778eae8071ef8921721735a4a9509";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>


<script>
    (function(){
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        }
        else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>

</div>

<div style="display:none">
<span class="dr_show_hits_115621">0</span><script type="text/javascript"> $.ajax({ type: "GET", url:"/index.php?s=api&c=module&siteid=1&app=article&m=hits&id=115621", dataType: "jsonp", success: function(data){ if (data.code) { $(".dr_show_hits_115621").html(data.msg); } else { dr_tips(0, data.msg); } } }); </script></div>

<!--本页面URL https://www.qianjiagd.com/a115621 -->
<!--本页面于2025-02-01 23:51:54更新-->
</body>
</html>