首页
学习
活动
专区
工具
TVP
发布

LeoXu的博客

专栏作者
81
文章
94625
阅读量
13
订阅数
JavaScript : 两个数的精确乘法
工作中要处理两个数的乘法,网上搜索了没有找到满意的答案,然后根据网上提供的思路自己实现了一个,重点满足容错的要求,就是不会轻易报错。
LeoXu
2019-06-05
6600
一个 Android Studio 异常 :pkunk.hoi4.Hoi4CodeStyleSettingsProvider.getDefaultCommonSettings()
最近启动 AS 的时候,右下角总是显示一个红色的感叹号,久而久之就感到厌烦,于是点开看了下,是一个异常:
LeoXu
2019-05-15
3620
XCode 中引入目录的两种区分 原
XCode中引入文件资源,可以在要引入的节点上右键选择 “Add Files to XXXX”的选项,这时候会弹出来一个对话框,供你选择需要添加的目录或者文件。
LeoXu
2018-12-12
5250
在 Tomcat 中设置 Tapestry 框架的 html 热加载
如果开发中使用到了 Tapestry 这个框架,如果事先没有设置过的话,开发的时候 html 是不会热加载的,也就是说修改了 html 文件,不能刷新浏览器后立马看到修改完的效果,必须先重新启动应用服务器(比如 Tomcat)才行。
LeoXu
2018-09-21
1.8K0
[翻译]Android教程-保存数据-保存文件
http://developer.android.com/training/basics/data-storage/files.html
LeoXu
2018-08-15
2.6K0
[翻译]Android教程-保存数据-保存键值对
http://developer.android.com/training/basics/data-storage/index.html
LeoXu
2018-08-15
2.5K0
Android虚拟键盘挡住输入组件的解决办法 原
如题,一开始遇到这个问题,请教了做苹果开发的哥们(做苹果的哥们好说话),他说要做监听,打开键盘的时候把会被遮住的输入组件向上移动。
LeoXu
2018-08-15
4040
队友的代码
多希望自己能穿越到捣腾记事本和命令行编写代码的年代(如果有那么个年代的话),那样我就可以对IDE里眼花缭乱的黄色波浪线眼不见心不烦了...
LeoXu
2018-08-15
2740
SpringMVC 项目中 Quartz 定时任务的设置纪要
项目使用的是SpringMVC, 以前就已经集成了 1.x 版本的 Quartz,有专门的配置文件定义了需要的bean。
LeoXu
2018-08-15
1.6K0
IE7下面固定尺寸的 div 滚动样式设置的一个BUG
今天我在编辑html页面的时候使用到一个固定尺寸的div,这里就叫它wrapper吧。
LeoXu
2018-08-15
6610
[翻译]Ext JS 教程-布局和容器 原
布局系统是ExtJS中一个强大的组成部分。它控制着应用程序的每一个组件的尺寸和位置。这个操作手册包含开始使用布局的基础操作。
LeoXu
2018-08-15
1.7K0
[翻译]Ext JS 教程-ExtJS 4中的数据包(Package)
数据包(data package)是用来加载和保存你应用程序中的数据的东西,包含41个类,但是其中有三个类比所有其他类更加重要——Model,Store和Ext.data.proxy.Proxy。这些类被几乎所有的应用程序用到了,并且受到了许多其他卫星类(satellite class)的支持。
LeoXu
2018-08-15
1.1K0
[翻译]VelocityLayoutServlet (VLS) 综观
这一个基本的VelocityViewServlet的一个扩展。它为基于Velocity Tools 的工程项目提供了一个简单的布局控制和定制的错误显示屏幕。VelocityTools已经推出了一个展示使用这个servlet的示例应用。
LeoXu
2018-08-15
2660
[翻译]Ext JS 教程-组件 原
一个ExtJS 应用程序是由一个或者更多个叫做组件的窗口小部件组成的。所有的组件都是Ext.Component类的子类,它允许它们参与到自动的生命周期管理中去,包括实例化、渲染、设置尺寸和位置、还有去实例化。ExtJS提供了大范围的实用组件,而且任何组件都可以很容易的被扩展,去创建一个定制的组件。
LeoXu
2018-08-15
3.1K0
[翻译]Ext JS 教程-MVC架构 原
大规模的客户端应用程序常常难于去编写、组织机构和维护。随着你加入更多的功能,并且投入更多的开发人员,它们渐渐趋向于失去控制。ExtJS 4 带来了一种新的不仅仅能规整你的代码组织结构,而且能限制你要编写的代码数量的应用程序架构。
LeoXu
2018-08-15
3.3K0
[翻译]Ext JS 教程-类系统 原
<h3>类系统</h3> <p>ExtJS 史上第一次进行了重整新的类系统的大重构。新的架构以ExtJS 4.X所编写的每一个类作为后盾,因此在你编写代码以前理解它是非常重要的。</p> <p>这个手册主要面向任何想在ExtJS 4.x中新建或者扩展类的开发人员。它分成四个部分:</p> <p>Ø 部分一:“综观”解释了稳定的类系统的需求</p> <p>Ø 部分二:“命名规则”讨论给类、方法、属性、变量和文件命名的最佳实践</p> <p>Ø 部分三:“动手实践”提供详细的一步步编码的例子</p> <p>Ø 部分四:“错误处理&amp;调试”提供如何处理一场的小建议和小计谋</p> <h3>一 综观</h3> <p>ExtJS 4 靠超过300 多个类驱动。我们拥有一个超过20万来自世界各地,具备各种编程背景的开发人员组成的巨大社区。在一个框架的范围内,我们面对提供一个通用的编码结构的那些大挑战:</p> <p>Ø 简单易上手</p> <p>Ø 开发快速、调试简单、部署无忧</p> <p>Ø 结构良好,可扩展可维护</p> <p>JavaScript 是 classless 的面向原型的语言。天性使然,灵活是这个语言最强大的特性。使用不同的方式,不同的编码形式和技术,都可以让工作有效。然而就是那个特性,带来了不可预知的代价。没有一个统一的形式,JavaScript代码可能很难去理解、维护和重用。</p> <p>从另一方面来看,基于类的编程仍然是面向对象编程领域最受欢迎的模式。基于类的语言常常需要强类型,提供封装和标准的编码规范。一般而言要让开发人员遵守一大堆规则,而编码就会变得一直可预知、可扩展和规规矩矩。然而,他们不会有在JavaScript这样的语言中发现的同样的动态能力。</p> <p>每种方法都有其利弊,但是我们是否可以利用两者好处的同时避免他们的坏处呢?答案是肯定的,我们在ExtJS 4中实现了这个解决方案。</p> <h4>二 命名规范</h4> <p>至始至终为你编码的类、命名空间和文件名使用一致的命名规则有助于保持你代码的组织性、结构性和可读性。</p> <h4>1)类</h4> <p>类名应该只包含字母和数字字符。数字在大多数情况下是不鼓励使用的,除非他们属于一种技术手段。不要使用下划线,连字符或者其它任何非字母非数字的字符。举个例子:</p> <p>Ø MyCompany.useful_util.Debug_Toolbar 不鼓励这样命名</p> <p>Ø MyCompany.util.Base64 是可以被接受的</p> <p>类名应该被组成成为包,在包中合适恰当的使用对象属性点记号(.)分出命名空间。至少,应该只有唯一的顶层命名空间后面跟类名。举个例子:</p> <p>MyCompany.data.CoolProxy</p> <p>MyCompany.Application</p> <p>顶层命名空间和真实类的命名应该采用Camel形式(单词的首字母都大写),其它所有事物都应该是小写的。举个例子:</p> <p>MyCompany.form.action.AutoLoad</p> <p>不是Sencha发行的类永远不应该使用Ext作为顶层命名空间的名字。</p> <p>首字母缩略词也应该遵守上面列出的Camel形似命名规则。示例如下:</p> <p>Ext.data.JsonProxy 而不是Ext.data.JSONProxy</p> <p>MyCompany.util.HtmlParser 而不是 MyCompary.parser.HTMLParser</p> <p>MyCompany.server.Http 而不是MyCompany.server.HTTP</p> <h4>2)源代码</h4> <p>类地址的名字应该直接指向文件被存储的路径。基于此,每个文件中只能有一个类,示例如下:</p> <p>Ext.util.Observable 被存储在路径 /to/src/Ext/util/Observable.js 中</p> <p>Ext.form.action.Submit 被存储在路径 /to/src/Ext/form/action/Submit.js中</p> <p>MyCompany.chart.axis.Numeric 被存储在路径 /to/src/MyCompany/chart/axis/Numeric.js中</p> <p>Path/to/src 是你的应用程序类所在的路径。所有的类都应该在这个公共的根下面,并且为了获得最好的开发、维护和部署体验,适当的赋予命名空间。</p> <p>2)方法和变量</p> <p>跟类名类似,方法和变量的名字应该只包含数字和字母字符。数字被允许的,但在大多数情况下是不被鼓励的
LeoXu
2018-08-15
1.3K0
[翻译]Ext JS 教程-开始使用 ExtJS 4
<h3>入门</h3> <h4>1. 需求</h4> <h5>1.1 网页浏览器</h5> <p>ExtJS 4 支持所有主流的浏览器,从IE 6 到最新的谷歌Chrome。在开发期间,我们建议你使用下面这些浏览器,以获得更好的调试体验。</p> <p>Ø Google Chrome 10+</p> <p>Ø Apple Safari 5+</p> <p>Ø Mozilla Firefox 4+ 带Firebug Web 开发插件</p> <p>本教程假设你正在使用最新的谷歌 Chrome 浏览器。如果你还没有 Chrome,花点时间去下载它吧,然后去熟悉熟悉 Chrome 的开发者工具。</p> <h5>1.2 Web 服务器</h5> <p>尽管使用 ExtJS 4 并不一定需要一个本地的web 服务器,仍然强烈建议你在开发的时候能有一个,因为 XHR 在大多数浏览器上有针对本地 file:// 的cross origin 限制。如果你还没有本地的web 服务器,建议你下载并安装 Apache HTTP Server。</p> <p>Ø 了解在 Windows 上面安装 Apache</p> <p>Ø 了解在 Linux 上面安装 Apache</p> <p>Ø Mac OS X 已经内置了apache,你可以在 System Preference &gt; Sharing 下面的 Web Sharing 旁找到</p> <p>一旦你安装好了 Apache ,你可以通过在浏览器地址栏输入 localhost 验证它是否在运行。你会看到一个表示 Apache HTTP 服务器已经成功安装并且正常运行的开始页面。</p> <h5>1.3 Ext JS 4 SDK</h5> <p>下载 Ext JS 4 SDK,把压缩包解压到一个在你的web 根路径下新建的extjs文件夹。如果你不知道web根目录在哪儿,查阅你web服务器的相关文档。Web 根路径的位置根据你操作系统的不同而有所不同,但是如果你使用的是 Apache,你一般会在:</p> <p>Ø Windows - &quot;C:\Program Files\Apache Software Foundation\Apache2.2\htdocs&quot;</p> <p>Ø Linux - &quot;/var/www/&quot;</p> <p>Ø Mac OS X - &quot;/Library/WebServer/Documents/&quot;</p> <p>一旦你已经完成安装,将浏览器导航至 <a href="http://localhost/extjs/index.html">http://localhost/extjs/index.html</a> 。如果一个 ExtJS 4 的欢迎页面出现了,代表你已经一切就绪了。</p> <h4>2. 应用程序结构</h4> <h5>2.1 基本结构</h5> <p>如下所列的建议尽管不是强制的,但是可以作为最佳实践指南考虑,以保持你的应用的结构条理性、可扩展性和可维护性。下面是推荐的Ext JS 应用程序结构:</p> <p>- appname</p> <blockquote> <p>- app</p> </blockquote> <blockquote> <p>&#160;&#160;&#160; - namespace</p> </blockquote> <blockquote> <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; - Class1.js</p> </blockquote> <blockquote> <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; - Class2.js</p> </blockquote> <blockquote> <p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; - ...</p> </blockquote> <blockquote> <p>- extjs</p> <p>- resources</p> </blockquote> <blockquote> <p>&#160;&#160;&#160; - css</p> </blockquote> <blockquote> <p>&#160;&#160;&#160; - images</p> </blockquote> <blockquote> <p>&#160;&#160;&#160; - ...</p> </blockquote> <blockquote> <p>- app.js</p>
LeoXu
2018-08-15
6.3K1
[翻译]使用 Velocity 构建一个稳定安全的Web应用
<p> draft document -- 2003年6月11日 </p> <p> 作为一名web开发者,任何时候当你构建一个Web应用时,有责任确保你的应用程序能够做什么和什么是应该做的:在发生错误的时候优雅的处理错误;让用户获取不到他们不应该查看的数据;防止恶意用户对应用程序进行的干扰操作。 </p> <p> 然而,详细的讨论如何去构建一个稳定的web应用程序是一个太过复杂的主题,这一篇短文设计的是构建基于Velocity的web应用程序常见的几个问题。短文是从一个开发者的角度写起的,他需要同大量的html模板开发人员和最终用户接触。我们鼓励读者发表自己的意见,其他问题和相关的设计建议请致信 Velocity 用户列表,或者直接联系作者,Will Glass-Husain。 </p> <p> <b>Velocity 如何帮助开发者创建一个稳定的App</b> </p> <p> 通常,Velocity 是一个html设计师容易学会,并且不会难用的web模板工具。这一点基于如下的几个要素: </p> <p> <b>Velocity 模板语言(VTL)是简单的。</b> 使用几个简单的指令,外加应用本身定义的引用,需要学习的东西少(也不怎么凌乱)。 </p> <p> <b><em>页面文件中不存储非展示用的信息。</em></b> 对比JSP文件,它常常需要带上一个页面头文件。如果一个不懂技术的web设计师去掉了这个头部,那么这个JSP页面就不起作用了。在一个Velocity模板中这样的头部或者其他技术信息是不需要的。 </p> <p> <b><em>在一个web页面中没有Java代码。</em></b> 这样就消除了一些共有的错误和混乱设计,同时让恶意的页面编辑者去调用不必要的Java代码变得困难。 </p> <p> <b><em>一个方法的异常不会阻塞一个页面的创建。</em></b> 使用MethodExceptionEventHandler,一个方法异常可以被获取和记录日志。 </p> <p> <b><em>一个无效的引用不会阻塞一个页面的创建。</em></b> 模板指令中无效的引用通常被忽略不计。页面中一个无效的引用将会简单的把其引用参考字打印出来。(比如:$foo)。 </p> <p> 基于如上的原因,大部分Velocity开发者将会发现:没有什么离奇的现象或者问题,页面以一种直接的方式被渲染。 </p> <p> <b></b> </p> <p> <b>基于Velocity稳定和安全性的具体问题</b> </p> <p> 考虑安全和稳定要素时,你需要意识到基于Velocity的web应用程序的几个特性。 </p> <p> <b><em>Velocity 是一个模板工具, 而不是一个框架。</em></b> 它不解决任何像认证、访问控制、会话状态或者数据持久化这样的问题。 </p> <p> <b><em>VTL方法调用实际上是Java的方法调用。</em></b> 这意味着一个糟糕的velocity应用程序设计使得模板设计者改变系统的状态,直接执行SQL查询或者随意的实例化Java类。潜在的安全威胁将在下面被详细提到。 </p> <p> <b><em>VTL引用具有Java类型。</em></b>尽管对被模板编辑者是不可见的,每一个引用还是一个具有特定类型的Java对象。如果 $apple 是一个 integer 的 “1”, $orange是一个String 的“1”,$banana是一个 double 的 “1.0”,那么根据VTL这些对象没有一个是==(对等)的。典型的非技术html模板设计者可能会对此感到迷惑。(事实上,如果对象不是同一个类型的,会有对它们字符串值的比较。因此, 在VTL中, $apple和 $orange现在是对等的了。) </p> <p> <b></b> </p> <p> <b>在构建安全,稳定的Velocity Web应用程序中的最佳实践。</b> </p> <p> 如下所列是能够帮助你构建一个稳定的Velocity Web应用程序的最佳实践。它们包括: </p> <blockquote> <p> <i>在上下文环境context中审查所有不必要的方法。</i> </p> </blockquote> <blockquote> <p> <i>编码HTML特殊字符,以避免交叉脚本漏洞。(cross-scripting)</i> </p> </blockquote> <blockquote> <p> <i>使用最新且做了合适设置的app服务器。</i> </p> </blockquote> <blockquote> <p> <i>进行适合生产中使用的Velocity配置</i> </p> </blockquote> <p> <b><i>在上下文环境context中审查所
LeoXu
2018-08-15
4890
[翻译]使用 Velocity 构建一个web应用
作为JSP的替代方案,Velocity 经常被用来在应用中生成web页面。使用Velocity生成页面的一些好处有:
LeoXu
2018-08-15
5430
在我的Dynamic Web 应用中使用 Jetty
Jetty 有一句口号,“不要把你的应用部署在Jetty上,把Jetty部署在你的应用上”,这意味着Jetty可以作为一个组件,来被你的Java程序像POJO一样初始化并使用。
LeoXu
2018-08-15
2490
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档