- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JSP标记文件动态生成JavaScript代码
很多 Web 开发人员都经常抱怨说 Java? EE 太复杂、构建新的 Web 组件太难、定制现有的组件没有预想的那样简单,并且即便是很小的更改都需要重新启动应用程序。本系列给出了针对这些问题的解决方案,即采用代码生成器、约定、脚本语言和先进的 JavaServer Pages ? (JSP) 特性。在本文中,您将了解如何基于 JSP 标记文件构建可重用的 Ajax 和 Java 组件,而这些 JSP 标记文件很容易开发和部署。更改之后,JSP 标记文件会由 Java EE 服务器自动重编译,而无须重启应用程序。此外,您还能完全控制所生成的代码,并能轻松地定制这些轻量级组件,因为它们使用的是 JSP 语法。 本系列含 4 部分,展示了一种基于 JSP 的技术,用以生成 JavaScript 代码、显著减少需要手动编写的代码量,本文是第 1 部分。本文的示例应用程序展示了如何生成 JavaScript 函数来发送 Ajax 请求和处理 Ajax 响应。如果想要轻松地更改 Ajax 代码,可以将这里讨论的简单技巧应用到实际的应用程序中。本文更宽泛的目标是展示如何使用 JSP 标记文件针对具体需求生成 JavaScript 代码,而非只是 Ajax 例程。 使用框架和代码生成器 如果您很幸运地找到了一种能满足您需要的组件或框架,那么就请使用它吧。如果没有找到也没关系,因为您总是可以开发自己的解决方案,也可以定制现有的一段代码。不管是哪种情况,一种很好的做法是 “参数化” 代码并将其放入一个可重用的库,而非将参数硬编码到您的代码里。不过有时候,实现泛型并不实际,因为它会使开发变得复杂,而非简化。在将泛型代码放入可重用组件或框架时,可以考虑使用代码生成器来更有效地生成特定的代码。 在开发的过程中避免复制 粘贴 假设,您需要应用程序使用 Ajax 请求站点上的某些信息,最快的(当然不是最好的)方法是找到一些如清单 1 这样的免费代码、更改 URL 并将这些代码粘贴到 Web 页面。很多开发人员都会这么做,但这种做法会导致巨大的维护问题。如果应用程序具有数百个页面,最后的结果将是出现大量像清单 1 中的 getInfo() 这样的函数。不好的一面是每次需要进行添加或更改(比如实现 Ajax 请求的错误处理)时,您都必须要手动修改所有页面并重新测试它们。好的一面是您可以通过使用库、框架和代码生成器,很容易地避免这个维护问题。 清单 1. Ajax 函数 function getInfo(country, city) { var request = null; if (window.ActiveXObject) request = new ActiveXObject(Microsoft.XMLHTTP); else if (window.XMLHttpRequest) request = new XMLHttpRequest(); else return; var url = CityInfo.jsp?country= + escape(country) + city= + escape(city); request.open(GET, url, true); function processResponse() { if (request.readyState == 4) { if (request.status == 200) { // ... } } } request.onreadystatechange = processResponse; request.send(null); } 开发泛型函数 一种好的开发实践是将尽量多的代码移入可重用的例程、函数、类或组件,而这些例程、函数、类或组件均能划分到库或框架中。在我们的示例中,您能找到一个泛型函数,此函数能创建 XMLHttpRequest 实例和调用实例的 open() 和 send() 方法。 假设您决定使用的函数的名称为 xhr(),它能接受 5 个参数:返回信息的页面的 URL、包含名称和请求参数的值的两个数组、HTTP 方法和用来处理 Ajax 响应的一个回调函数。现在,您的应用程序将会包含更为简单的函数,比如清单 2 中所示的 getInfo2(),而且代码也更容易维护。如果想要更改发送 Ajax 请求的代码,只能修改 xhr() 函数。
有哪些信誉好的足球投注网站
文档评论(0)