【lua】LWT HttpdModule

要使用httpd模块,需要在脚本开头添加:  

require "httpd"

  httpd.pairs(apr_table)

  用以遍历apr_table

for key, value in httpd.pairs(t) do body end

  例:

 1 require "httpd"
 2 local table = { "uri", "protocol", "hostname", "path", "path_info", "args",
 3                 "method", "filename", "filedir", "user", "auth_type",
 4                 "local_ip", "remote_ip" }
 5
 6 httpd.set_content_type("text/plain; charset=utf8")
 7
 8 httpd.write("Hello Lua World\r\n")
 9 httpd.write("----------------------------------\n")
10
11 for mm, key in ipairs(table) do
12         httpd.write(mm .. "->" .. key .. "\r\n")
13 end
14
15 httpd.write("----------------------------------")

  httpd.set_status (status)

    设置一个介于100到599的值作为HTTP响应的状态。

  httpd.set_content_type (content_type)

    将HTTP响应的内容类型设置为指定值。

httpd.set_content_type("text/html; charset=utf-8");

  httpd.add_header (name, value [, err_header])

    添加HTTP响应头,值是表示该头的值的字符串。

  httpd.add_cookie (name [, value [, expires [, path [, domain [, secure [, httponly]]]]]])

    添加cookie  

  httpd.write_template (filename [, flags [, file]])

    根据指定的文件模版渲染网页

    如果模版被解析,则下面的指令将被模版引擎解释:

  httpd.escape_uri (string)

      相对于uri的转义字符序列

  httpd.escape_xml (string)

      相对于xml的转义字符串序列

      

  httpd.escape_js (string)

      相对于js的转义字符串序列

      

    httpd.input

      用来读取HTTP请求数据流,和Lua的input类似

    httpd.output

      用来输出HTTP响应数据流,和Lua的output类似

  httpd.read(...)

      相当于httpd.input:read(....)

  httpd.write(...)

      相当于httpd.output:write(...)

  httpd.debug (message)

      将消息记录写入HTTP server debug级别的日志内

  httpd.notice (message)

      将消息记录写入HTTP server notice级别的日志内

  httpd.err (message) 

      将消息记录写入HTTP server err级别的日志内

  httpd.redirect (request, uri, status)

      设置Location头信息并返回状态码,当浏览器接受到头信息中的 Location: xxxx 后,就会自动跳转到 xxxx 指向的URL地址,这个跳转只有浏览器知道,不管体内容里有没有东西,用户都看不到。     

return httpd.redirect(request, "/next.lua", status)

  httpd.dump (value)

      将value写入至HTTP响应主体、HTML内、函数处理的Lua表中、ARP表或者递归

时间: 2024-10-10 18:13:57

【lua】LWT HttpdModule的相关文章

【lua】LWT request请求处理

request请求处理 通过mod_lwt模块提供的处理程序来调用Lua脚本处理HTTP请求.具体流程: 判断该请求是否由LWT处理,如果不是,拒绝处理请求; 判断Lua脚本文件是否存在,如果不存在,返回一个HTTP 404(未找到); 响应内容类型默认为"text/html"; 创建一个新的Lua状态; 在这个新Lua状态中打开标准Lua库; 在Lua的状态下打开httpd.core库; 根据适用于该脚本的配置指令设置package.path和package.cpath变量; 加载L

【Lua】LWT遍历指定目录并输出到页面中

首先用lua遍历目录: 1 function getDirs(path) 2 local s = {} 3 function attrdir(p) 4 for file in lfs.dir(p) do 5 if file ~= "." and file ~= ".." then 6 local f = p .. file 7 local attr = lfs.attributes (f) 8 if attr.mode == "directory"

【Lua】LWT后台用JSON与 ExtJS传递数据

要完成目录树的构建,需要前台ExtJS构筑页面,后台处理逻辑,中间由JSON传递数据. 首先搭建后台环境: 1 require "httpd" 2 require "lfs" 3 4 request, args = ... 5 6 local s = {root = { 7 text = "rootNode", 8 expanded = true, 9 children = { 10 { 11 text = 'book1', 12 leaf =

【Lua】面向对象编程(一)

类和对象: account.lua   module(...,package.seeall) Account={balance=0} Account.new=function(self,o) local o=o or {} setmetatable(o,self) self.__index=self return o end Account.getBalance=function(self) return self.balance end Account.setBalance=function(

【Lua】Lua中__index与元表(转)

转载于:http://blog.csdn.net/xocoder/article/details/9028347 Lua的表本质其实是个类似HashMap的东西,其元素是很多的Key-Value对,如果尝试访问了一个表中并不存在的元素时,就会触发Lua的一套查找机制,也是凭借这个机制,才能够实现“面向对象”的. 举例说明: tempTable = {} print(tempTable.memberA) --这里试图打印tempTable并不存在的成员memberA 执行结果:nil输出为nil的

【Lua】特性和一些基础语法

在Lua中,你可以使用单行注释和多行注释. 单行注释中,连续两个减号"--"表示注释的开始,一直延续到行末为止.相当于C++语言中的"//". 多行注释中,由"--[["表示注释开始,并且一直延续到"]]"为止.这种注释相当于C语言中的"/**/".在注释当中,"[["和"]]"是可以嵌套的. Lua 编程 经典的"Hello world"的程序总

【Lua】Lua + LWT + ExtJS构建目录树

Lua处理后台逻辑,Lua lwt搭建后台程序,ExtJS根据后台传来的json数据构建目录树. 前台html和ExtJS代码不用多讲,直接上代码: treePanel.html 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 5 <title>ExtJS TreePanel</

【Lua】linux下lua+mod_lwt环境搭建

Lua 是一个小巧的脚本语言.它具有轻量级.可扩展等优势.它可以作为一个强大.轻量的脚本语言,供任何需要的程序使用. LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并可直接在 Apache 上运行.LWT 的核心功能通过一个 Apache 的模块(mod_lwt)来提供.另外 LWT 提供可选的 Lua 模块用来访问数据库和缓存. 现在用lua + LWT来搭建后台web环境. 安装lua: 在linux中,有两种方法可以安装lua. 第一种:系统为Ubunut

【Lua】Lua + openresty遍历文件目录

OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器,它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项. 今天用OpenResty + lua来遍历指定目录,返回json字符串 我们用Lua来遍历文件目录,并用nginx来访问lua文件,使其返回这个目录的json字符串. Lua代码: 1 local lfs = require("lfs") 2 3 function getType(path) 4 return