关于脚本

主要内容是关于脚本对文本的解析,都是些很实用的东西,涉及了很多先进的网络方面的技术。先把名词列出来:HTML,XML,JSP(JavaSeverPage),LSP(LuaSeverPage),Javascript,Lua,PHP,Severlet,StaticPage,DynamicPage,Ajax。

HTML:超文本标记语言,浏览器可以解析的东西。

XML:可扩展的标记语言,我理解是HTML的泛化,没有固定的标签,主要用来保存数据,和数据传输。

StaticPage:静态页面,没有交互的纯纯的html页面,一开始就写好的,主要是用来展示的。

DynamicPage:根据输入的不同动态生成的页面,一开始并不存在。

JavaScript: 可以嵌入到html中的一种脚本,浏览器在客户端可以执行。 

那动态页面是怎么生成的呢?比如用户输入了用户名和密码,提交,这时候数据传到了服务器,服务器根据模板,再加上用户名和密码,生成一份临时的html页面传到客户端,这样用户就看到了一份只跟自己相关的页面。

JSP(JavaSeverPage):就实现了上面的功能,就是上面提到的模板。

html里面根据规定语法潜入Java代码,就形成了JSP,这样的页面是保存在服务器端的模板。在收到用户的request时,Severlet就会解析JSP,生成一份Java代码,然后执行Java代码得到html页面,返回给用户作为response。

LSP(LuaSeverPage):跟JSP实现了同样的功能,只不过这次HTML中嵌入的是Lua代码,服务器会解析这样的页面生成Lua脚本,执行,得到html文本。

下面是Eric给的一个Lua的例子,有些地方我改了:

<%# for day=1 to getcnt()  do #%>
<td>Any one here?</td>
<%#end#%>

目标是得到想要的html文本:先通过正则表达式进行替换得到Lua脚本,然后执行Lua脚本得到html文本,这样比较简单,因为我们有现成的Lua解释器或Java解释器。

得到的Lua脚本是:

for day=1 to getcnt() do
theFile.write("<td>Any one here?</td>");
end

执行完这段Lua脚本得到的html文本是:

<td>Any one here?</td>
<td>Any one here?</td>
<td>Any one here?</td>

很爽吧,这样问题就解决了,html中可以写我们的逻辑,只是我们要自己再处理一下,得到html而已。

PHP也是那种原理。

这样的解析比较重要的两点:regular expression 和 treat code as string。最主要的就是匹配和替换吧。

利用同样的方法我们可以貌似可以解析很多比较复杂的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值