`

9、访问WEB服务(REST)——ajax基础笔记

阅读更多

最其名的WEB服务实现是SOAP(简单对象访问协议)。SOAP是由W3C管理的规约,它是XML协议,对于如何调用远程过程给出了定义。

WSDL(Web服务描述语言)文档也是XML文档,描述了如何创建Web服务的客户。通过提供WSDL文档,Web服务提供者就能很轻松地为可能的客户创建客户端代码。WSDL和SOAP通过一同使用,不过不一定非得这亲,因为这两个规约是分维护的。

尽管人们在简化SOAP实现上做出了很大努力,但SOAP还是一个很难使用的技术,只有在跨平台互操作性确实是一个很重要的需求时才会作用SOAP。实现Web服务还有一种更简单的方法,称为REST(代表传输),它在开发人员中享有越来越高的知名度,这些开发人员一方面希望得到SOAP好处的80%,另一方面只希望付出SOAP代码的20%。

Yahoo!选择REST作为其公共Web服务的协议,Yahoo!认为基于REST的服务很容易理解,而且很推崇REST的“平易近人”,因为当前大多数编程语言都可以访问REST。实际上,Yahoo!相信,与SOAP相比,REST的门槛更低,使用也更容易。

通过使用REST,建立请求时可以先指定一个服务入口URL,再向查询串追加搜索参数。服务将结果返回为XML文档。

XMLHttpRequest对象非常适合作为基于REST的Web服务的客户。使用XMLHttpRequest对象,可以向Web服务异步地发出请求,并解析得到XML响应。对于Yahoo!返回响应,则使用JavaScriptDOM方法解析响应,并向页面动态地提供结果数据。

问WEB服务(REST)

示例展示了如何使用Ajax技术访问Yahoo!Web服务,并向页面提供结果。页面上的文本字段允许用户指定搜索项。用户可以使用选择框来指定需要显示多少个结果。点击Submit按键就能启动搜索。

但是XMLHttpRequest对象只能访问发起文档所在域的资源。这里的解决办法,就是建立Yah!的网关,它与XMLHttpRequest脚本在同一个域中,由网关接收来自XMLHttpReqest对象的请求,并把它转发到Yahoo!Web服务。Yahoo!做出响应返回结果,网关再把结果路由传送到浏览器。通过使用这种方法,就能避免使用浏览器特定的JavaScript。

 

以下是搜索1条“ajax”时Yahoo!返回的XML:

<?xml version="1.0" encoding="UTF-8"?>
<ResultSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:yahoo:srch" xsi:schemaLocation="urn:yahoo:srch http://api.search.yahoo.com/WebSearchService/V1/WebSearchResponse.xsd" type="web" totalResultsAvailable="257000000" totalResultsReturned="1" firstResultPosition="1" moreSearch="/WebSearchService/V1/webSearch?query=ajax&amp;appid=thunderboltsoftware&amp;region=us">
    <Result>
        <Title>AJAX - Wikipedia</Title>
        <Summary>Background about the web development technique for creating interactive web applications.</Summary>
        <Url>http://en.wikipedia.org/wiki/AJAX</Url>
        <ClickUrl>http://en.wikipedia.org/wiki/AJAX</ClickUrl>
        <DisplayUrl>en.wikipedia.org/wiki/AJAX</DisplayUrl>
        <ModificationDate>1255590000</ModificationDate>
        <MimeType>text/html</MimeType>
        <Cache>
            <Url>http://uk.wrs.yahoo.com/_ylt=A0PDB2P12tpKixsAiH7dmMwF;_ylu=X3oDMTBwOHA5a2tvBGNvbG8DdwRwb3MDMQRzZWMDc3IEdnRpZAM-/SIG=16lq3593n/EXP=1255943285/**http%3A//66.218.69.11/search/cache%3Fei=UTF-8%26appid=thunderboltsoftware%26type=all%26query=ajax%26results=1%26ts=1255856883765%26u=en.wikipedia.org/wiki/AJAX%26d=TGfjPd29Tpo6%26icp=1%26.intl=us</Url>
            <Size>70721</Size>
        </Cache>
    </Result>
</ResultSet><!-- ws03.ydn.gq1.yahoo.com uncompressed/chunked Sun Oct 18 02:08:05 PDT 2009 -->

 

yahooSearch.html清单:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Yahoo! Search Web Services</title>

<script type="text/javascript">
var xmlHttp;

function createXMLHttpRequest() {
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
}
//程序入口
function doSearch() {
    var url = "YahooSearchGateway?" + createQueryString() + "&ts=" + new Date().getTime();
    createXMLHttpRequest();
    xmlHttp.onreadystatechange = handleStateChange;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}

function createQueryString() {
    var searchString = document.getElementById("searchString").value;
    searchString = escape(searchString);
    
    var maxResultsCount = document.getElementById("maxResultCount").value;

    var queryString = "query=" + searchString + "&results=" + maxResultsCount;
    return queryString;
}
    
function handleStateChange() {
    if(xmlHttp.readyState == 4) {
        if(xmlHttp.status == 200) {
            parseSearchResults();
        }
        else {
            alert("Error accessing Yahoo! search");
        }
    }
}
//回调函数
function parseSearchResults() {
    var resultsDiv = document.getElementById("results");
    while(resultsDiv.childNodes.length > 0) {
        resultsDiv.removeChild(resultsDiv.childNodes[0]);
    }

    document.write(xmlHttp.responseText);
    var allResults = xmlHttp.responseXML.getElementsByTagName("Result");
    var result = null;
    for(var i = 0; i < allResults.length; i++) {
        result = allResults[i];
        parseResult(result);
    }
}

function parseResult(result) {
    var resultDiv = document.createElement("div");
    
    var title = document.createElement("h3");
    title.appendChild(document.createTextNode(getChildElementText(result, "Title")));
    resultDiv.appendChild(title);
    
    var summary = document.createTextNode(getChildElementText(result, "Summary"));
    resultDiv.appendChild(summary);
    
    resultDiv.appendChild(document.createElement("br"));
    var clickHere = document.createElement("a");
    clickHere.setAttribute("href", getChildElementText(result, "ClickUrl"));
    clickHere.appendChild(document.createTextNode(getChildElementText(result, "Url")));
    resultDiv.appendChild(clickHere);
    
    document.getElementById("results").appendChild(resultDiv);
}

function getChildElementText(parentNode, childTagName) {
    var childTag = parentNode.getElementsByTagName(childTagName);
    return childTag[0].firstChild.nodeValue;
}
</script>
</head>

<body>
  <h1>Web Search Using Yahoo! Search Web Services</h1>
  
  <form action="#">
    Search String: <input type="text" id="searchString"/>
    
    <br/><br/>
    Max Number of Results:
    <select id="maxResultCount">
        <option value="1">1</option>
        <option value="10">10</option>
        <option value="25">25</option>
        <option value="50">50</option>
    </select>
    
    <br/><br/>
    <input type="button" value="Submit" onclick="doSearch();"/>
  </form>
  
  <h2>Results:</h2>
  <div id="results"/>

</body>
</html>

 

YahooSearchGatewayServlet.java清单:

package ajaxbook.chap4;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.servlet.*;
import javax.servlet.http.*;

public class YahooSearchGatewayServlet extends HttpServlet {
    private static final String YAHOO_SEARCH_URL = 
        "http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=thunderboltsoftware"
        + "&type=all";
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        
        String url = YAHOO_SEARCH_URL + "&" + request.getQueryString();
        
        HttpURLConnection con = (HttpURLConnection)new URL(url).openConnection();
        con.setDoInput(true);
        con.setDoOutput(true);
        
        con.setRequestMethod("GET");
        
        //Send back the response to the browser
        response.setStatus(con.getResponseCode());
        response.setContentType("text/xml");
        
        BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String input = null;
        OutputStream responseOutput = response.getOutputStream();
        
        while((input = reader.readLine()) != null) {
            responseOutput.write(input.getBytes());
        }
    
    }
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
}

 

基于REST的Web服务结合使用时,Ajax技术相当强大。如果想在你自己的域中访问Web服务,用JavaScript就可以完成。否则,当访问其他域的资源时,就要创建外部资源的某种网关,这样就能避免浏览器安全沙箱问题。

 

运行结果:

 



 

 

 

 

  • 大小: 8.4 KB
分享到:
评论

相关推荐

    Docket-App:笔记本Web应用程序

    综上所述,Docket-App是一个利用JavaScript技术构建的Web应用程序,集成了前端框架、AJAX通信、本地存储等多种技术,旨在提供一个高效、便捷的在线笔记平台。同时,其背后还涉及到了安全性、测试、版本控制等多个...

    ExtJS笔记---Grid实现后台分页

    这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...

    aprendendo-mais-de-[removed]我会从javascript写下一些东西进行研究

    在深入探讨JavaScript这一...它涵盖了从基础知识到高级特性的广泛内容,通过实践和理论结合的方式,帮助开发者提升JavaScript技能,从而更好地应对Web开发的挑战。无论是初学者还是有经验的开发者,都可以从中受益。

    javassist-3.13.0-GA.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    scratch少儿编程逻辑思维游戏源码-光线投射引擎 v0.9.zip

    scratch少儿编程逻辑思维游戏源码-光线投射引擎 v0.9.zip

    全套S7-1200 PLC与KTP触摸屏实现恒压供水PID控制案例详解:程序样例+项目图纸+操作注释

    内容概要:本文详细介绍了基于S7-1200 PLC的一拖三恒压供水系统,涵盖PLC程序、PID控制、触摸屏界面及项目图纸等方面。PLC程序方面,重点讲解了PID控制功能块的应用及其参数配置,确保系统能够根据设定值和实际测量值调整输出,保持供水压力恒定。触摸屏程序提供了直观的操作界面,允许操作人员实时监控和调整系统参数。项目图纸展示了详细的硬件连接和布线方式,有助于理解和实施系统安装与调试。此外,文中还分享了许多调试经验和注意事项,如PID参数整定、泵组切换逻辑、报警处理机制等。 适合人群:从事自动化控制系统设计、调试的技术人员,尤其是对PLC编程和PID控制感兴趣的工程师。 使用场景及目标:适用于工业现场的恒压供水系统设计与实现,旨在提高系统的稳定性和效率,减少维护成本。通过学习本文,读者可以掌握S7-1200 PLC编程技巧、PID控制原理及触摸屏应用方法。 其他说明:本文不仅提供了理论知识,还包括大量的实战经验和调试技巧,帮助读者更好地理解和应用相关技术。

    aws-java-sdk-s3-1.12.259.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    网络仿真与自动化_华为ENSP模拟器_MobaXterm会话管理_Python脚本自动化生成Telnet会话文件_用于批量创建连接ENSP设备的MobaXterm会话_自动解析拓扑.zip

    网络仿真与自动化_华为ENSP模拟器_MobaXterm会话管理_Python脚本自动化生成Telnet会话文件_用于批量创建连接ENSP设备的MobaXterm会话_自动解析拓扑

    【Linux内核调试】基于KGDB的内核调试技术详解:从原理到实战案例

    内容概要:本文详细介绍了使用KGDB(Kernel GNU Debugger)调试Linux内核的方法及其重要性。文章首先强调了Linux内核作为系统核心的重要性及其调试的必要性,随后介绍了KGDB的基本原理和优势,包括其基于调试stub和GDB串行协议的工作机制。接着,文章详细描述了使用KGDB调试内核的具体步骤,包括准备工作、内核配置、设置启动参数、建立调试连接和进行调试操作。文中还通过一个实战案例展示了KGDB在解决实际问题中的应用,并总结了使用KGDB时的注意事项和常见问题的解决方法。最后,文章展望了KGDB未来的发展方向和应用场景,如优化调试性能、支持新型硬件架构以及在嵌入式系统、云计算和大数据领域的应用。 适合人群:具备一定Linux系统开发经验的研发人员,尤其是那些需要调试和优化Linux内核的工程师。 使用场景及目标:①帮助开发者深入了解Linux内核的运行状态,精准定位并修复内核问题;②优化内核性能,提高系统的稳定性和可靠性;③适用于嵌入式系统开发、远程服务器维护等场景,特别是在硬件资源有限或无法直接接触设备的情况下。 其他说明:在使用KGDB进行调试时,需特别注意串口设置的一致性、内核版本的兼容性以及调试信息的完整性。同时,要解决常见的连接失败、断点无效等问题,确保调试过程顺利进行。未来,KGDB有望在技术上不断优化,并拓展到更多应用场景中,为Linux系统的持续发展提供支持。

    CNC雕刻机STM32F407源码详解:带详细中文注解与原理图解析

    内容概要:本文深入剖析了一款基于STM32F407的CNC雕刻机控制系统,涵盖硬件原理图和源码实现。首先介绍了步进电机驱动部分,详细解释了XYZ三轴的方向引脚配置及时序控制,确保电机平稳运行。接着讨论了PWM脉冲生成的核心配置,通过定时器精确控制雕刻精度,并解决了高速雕刻时的脉冲丢失问题。串口通信部分采用DMA+空闲中断,显著提升了数据处理效率。运动插补算法利用定时器触发DMA传输脉冲,实现高效的三轴联动。此外,文中还涉及了G代码解析、运动前瞻算法以及硬件设计中的防呆措施,如IO口的TVS二极管和RC滤波。最后,分享了一些调试经验和隐藏的开发彩蛋,如通过LED灯效显示工作状态和电流检测实现堵转保护。 适合人群:具备嵌入式开发基础,尤其是对STM32和CNC雕刻机感兴趣的开发者和技术爱好者。 使用场景及目标:①帮助开发者理解和实现CNC雕刻机的控制系统;②提供详细的硬件和软件设计方案,便于动手制作;③分享调试技巧和实战经验,提高系统的稳定性和可靠性。 阅读建议:本文不仅提供了详细的代码实现和硬件设计,还包括了许多实战经验和调试技巧,因此在阅读过程中应重点关注这些细节,并尝试复现相关功能。

    aws-java-sdk-s3-1.12.265.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    ELMAN网络回归预测MATLAB代码:清晰注释,本地EXCEL数据读取,初学者易上手

    内容概要:本文详细介绍了如何使用MATLAB实现ELMAN神经网络进行时间序列预测。首先讲解了如何读取本地Excel数据,并进行了必要的数据预处理,如转置和归一化。接着,构建了ELMAN网络,设置了训练参数,并进行了模型训练。随后,展示了如何进行预测并将结果反归一化,以及如何通过可视化手段评估预测效果。文中还提供了多个调试技巧,帮助解决常见的新手问题。 适合人群:具备基本MATLAB编程能力,希望学习时间序列预测的新手。 使用场景及目标:适用于需要进行时间序列数据分析和预测的研究人员或工程师,目标是掌握ELMAN神经网络的基本原理及其在MATLAB中的具体实现方法。 其他说明:本文不仅提供完整的代码示例,还包括了许多实用的小贴士,如数据读取、归一化、网络结构调整等,帮助读者更快地上手并解决问题。

    winmm简谱播放器3音轨程序代码ZXQZQ-2025-5-4.txt

    winmm简谱播放器3音轨程序代码ZXQZQ-2025-5-4

    scratch少儿编程逻辑思维游戏源码-鼓手猴子.zip

    scratch少儿编程逻辑思维游戏源码-鼓手猴子.zip

    thymeleaf-1.0.0-beta5.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    基于改进二进制粒子群算法的含需求响应机组组合问题研究——MATLAB代码实现及复现国际学术研究A Modified Binary PSO在微电网中的创新应用

    内容概要:本文详细介绍了如何使用MATLAB实现改进二进制粒子群算法来解决含需求响应的机组组合问题。文章首先构建了机组组合问题的基本模型,定义了机组的数量及其最小和最大发电功率等参数。接着,在此基础上加入了需求响应机制,通过设置需求响应的最大可削减负荷量和补偿系数,实现了对负荷侧的管理。为了提高求解效率,采用了一种改进的二进制粒子群算法,该算法通过独特的更新策略使粒子更快更准地找到最优解。此外,还讨论了微电网调度中如何降低发电成本并确保供电稳定性,强调了需求响应在优化调度中的重要性。 适合人群:对电力系统优化、机组组合问题、需求响应机制以及改进粒子群算法感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要优化电力系统调度的研究项目或实际工程应用,旨在通过引入需求响应机制和改进的粒子群算法,降低发电成本,提高系统的灵活性和经济效益。 其他说明:文中提供的MATLAB代码示例有助于理解和复现算法的具体实现,同时提醒了一些常见的陷阱和注意事项,如负荷预测误差的影响和合理的参数选择。

    威纶触摸屏与台达变频器RS485通讯:控制正反转、点动及监视频率电流电压程序实现

    内容概要:本文详细介绍了威纶触摸屏与台达变频器通过RS485通讯实现控制与监视的方法。首先,文章解释了MODBUS RTU协议的基础,包括读写指令的数据帧格式。接着,描述了威纶触摸屏和台达变频器的通讯参数设置步骤,确保双方参数一致。随后,提供了具体的Lua脚本代码示例,展示了如何通过写入特定寄存器来控制变频器的启动、正反转、点动、停止等功能,以及如何读取变频器的频率、电流、电压等运行参数。此外,还提到了一些常见的调试技巧和注意事项,如数据类型的正确转换、线序连接、通讯超时处理等。 适合人群:从事自动化控制系统开发的技术人员,尤其是熟悉威纶触摸屏和台达变频器的工程师。 使用场景及目标:适用于需要通过RS485通讯接口实现威纶触摸屏对台达变频器进行远程控制和实时监测的应用场景。主要目标是提高系统的自动化程度和可靠性,减少人工干预。 其他说明:文中提供的代码和配置方法可以直接应用于实际项目中,但在具体应用时需要注意不同型号设备的具体参数差异。调试过程中可以借助串口助手等工具进行辅助验证。

    「高精度UWB模块测距代码程序,支持基站和标签设置编号,实时距离数据查看,烧录单片机」

    内容概要:本文详细介绍了基于UWB(超宽带)技术的多设备测距系统的设计与实现。主要内容涵盖设备ID管理、双向测距(TWR)算法、温度补偿、功耗优化、串口通信协议设计等方面。文中提供了具体的C语言代码片段,展示了如何通过宏定义控制设备类型,利用位操作高效管理设备ID,采用双向测距算法提高测距精度,通过加速度计动态调整测距频率以优化功耗,以及设计轻量级串口通信协议确保数据传输可靠性。此外,还讨论了一些常见的烧录和调试问题及其解决方案。 适合人群:具有一定嵌入式开发经验的研发人员,特别是从事无线通信、室内定位系统开发的技术人员。 使用场景及目标:适用于需要实现高精度室内定位系统的开发者,帮助他们理解和掌握UWB模块的工作原理及其实现细节,从而能够构建稳定的多设备测距系统。 其他说明:文中提到的具体实现方法和技术细节对于理解和优化UWB模块的应用非常有价值,尤其是关于设备管理和测距算法的部分。同时,文中提供的代码片段可以直接用于实际项目中,加快开发进度并提高系统的稳定性。

    即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点.zip

    即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点

    mybatis-3.4.4.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics