Openresty編寫Lua代碼一例

1.前段時間糾結了很久,一直弄不清lua和tomcat的聯系。一直認為是lua調用tomcat的接口才可使用,后面才明白過來,進入了一個誤區,lua本身就是一門獨立的腳本語言。在openresty里面配置好,即可編寫映射和響應。

下面是自己編寫的lua代碼一例,僅供參考。還有些不完善,要開始忙項目了,等有空再繼續更新。

2.下面是lua代碼,記得在nginx.conf寫好配置。

local request_method = ngx.var.request_method
local cjson = require("cjson")
local mysql = require("resty.mysql")
local quote = ngx.quote_sql_str
local db,err = mysql:new()
local function close_db(db)  if not db then  return  end  db:close()  
end 
if not db 
thennax.say("new mysql error",err)
endlocal args = nil
local username = nil
local pwd = nil
if "GET" == request_method
thenargs = ngx.req.get_uri_args()
elseif "POST" == ngx.request_method
thenngx.req.read_body()args = ngx.req.get_post_args()
end
username = tostring(args["username"])
pwd = tostring(args["pwd"])
if username == nil thenngx.say("username not nil")return
elseif username == '' thenngx.say("username not nil")return
elseif pwd == nil thenngx.say("password not nil")return;
elseif pwd == '' thenngx.say("password not nil")return;
enddb:set_timeout(1000)  local props = {  host = "127.0.0.1",  port = 3306,  database = "hwc_hello",  user = "root",  password = "hwc123456"  
}  local res, err, errno, sqlstate = db:connect(props) 
if not res then  ngx.say("connect to mysql error : ", err, " , errno : ", errno, " , sqlstate : ", sqlstate)  return close_db(db)  
end local select_name = "select username from user_table where username="..quote(username)
res, err, errno, sqlstate = db:query(select_name)  
if not res then  ngx.exec("/vi/404.html")  return close_db(db)  
end  
local result = {}
result.success = true;
result.info = "登錄成功"
ngx.say(cjson.encode(result))

?

轉載于:https://www.cnblogs.com/dslx/p/9208622.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/250080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/250080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/250080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Shiro表結構設計

表設計 開發用戶-角色-權限管理系統,首先我們需要知道用戶-角色-權限管理系統的表結構設計。 在用戶-角色-權限管理系統找那個一般會涉及5張表,分別為: 1.sys_users用戶表 2.sys_roles角色表 3.sys_permissions權限表(或資源表&…

[Java核心技術(卷I)] - 簡易的日歷

參考 - P102~P103 1. 目標 生成一個日歷,格式如下圖所示。 ps: 當前的天數需要標記為* 2. 核心 對日歷的變量 import java.time.*; public class CalendarTest{public static void main(String[] args) {LocalDate date LocalDate.now(); // 獲取當前日期int month date…

個人作業——福大微信公眾號使用評測

案例分析:在福州大學公眾號上,我們可以即時使用手機關注福大新聞,查看自身課表、成績等。公眾號可能存在一些小bug影響同學們的用戶體驗。本次作業中,作為一個用戶——福大的學生,將切身體驗該公眾號的功能&#xff0c…

在winform中使用wpf窗體

在winform項目,通過引用dll可以添加WPF窗體,如下 但是如果直接在winform的項目中添加wpf窗體還是有部分問題,圖片的顯示。 直接在XAML界面中用Source屬性設置圖片會出現錯誤。必須通過后臺代碼的方式來實現。 image1.Source GetImageIcon(gl…

shiro---注解

RequiresAuthentication 驗證用戶是否登錄,等同于方法subject.isAuthenticated() 結果為true時。 RequiresUser 驗證用戶是否被記憶,user有兩種含義: 一種是成功登錄的(subject.isAuthenticated() 結果為true)&…

[Java核心技術(卷I)] - Java中的參數能做什么和不能做什么

1. 參考 - P123 ~ P126 2. 你將學到 Java中對方法參數能做什么和不能做什么 方法不能修改基本數據類型的參數(數值型或布爾型)方法可以改變對象參數的狀態方法不能讓一個對象參數引用一個新的對象 3. 代碼證明 public class ParamTest {public static void main(String[] ar…

軟件構造 第五章第一節 可復用性的度量、形態和外部觀察

第五章第一節 可復用性的度量、形態和外部觀察 面向復用編程(programming for reuse):開發出可復用的軟件 基于復用編程(programming with reuse):利用已有的可復用軟件搭建應用系統 代碼復用的類型: 白盒復用:源代碼可見&#x…

洛谷團隊月賽題:題解

10pts10pts10pts 暴力算不解釋,時間復雜度O(knk2)O(knk^2)O(knk2)。 30pts30pts30pts 我們觀察到nnn很大,楊輝三角會T,直接算會上溢,所以需要預處理出111~kkk逆元再算,時間復雜度O(knnlogkn2)O(knnlogkn^2)O(knnlogkn2…

Angular Forms - 自定義 ngModel 綁定值的方式

在 Angular 應用中,我們有兩種方式來實現表單綁定——“模板驅動表單”與“響應式表單”。這兩種方式通常能夠很好的處理大部分的情況,但是對于一些特殊的表單控件,例如input[typedatetime]、input[typefile],我們需要重寫默認的表…

[web性能優化] - 使用在線工具對html、js、css進行壓縮

參考 1. 學習點 使用 在線工具對html、css、js進行壓縮學會分析壓縮前后的效率提高點 2. 解決方案: 2.1 HTML壓縮 在線壓縮nodejs提供了 html-minifier工具(在構建層對代碼進行壓縮)后端模板引擎渲染壓縮 2.2 CSS壓縮 使用html-minifier對html中的css進行壓縮使用clean-cs…

【LOJ】 #2540. 「PKUWC2018」隨機算法

題解 感覺極其神奇的狀壓dp \(dp[i][S]\)表示答案為i,然后不可選的點集為S 我們每次往答案里加一個點,然后方案數是,設原來可以選的點數是y,新加入一個點后導致了除了新加的點之外x個點不能選,那么方案就是把x個數在y …

Shiro的authc過濾器的執行流程

1.先執行isAccessAllowed(),通過subject.isAuthenticated()判斷當前session中的subject是否已經登陸過。如果在當前session即會話中已經登陸過,返回true,authc過濾器放行請求到loginUrl。 問題? 這里會有一個問題,如果我登陸成功…

SpringBoot之基礎

簡介 背景 J2EE笨重的開發 / 繁多的配置 / 低下的開發效率 / 復雜的部署流程 / 第三方技術集成難度大 特點 ① 快速創建獨立運行的spring項目以及主流框架集成 ② 使用嵌入式的Servlet容器, 應用無需達成war包 ③ starters自動依賴和版本控制 ④ 大量自動配置, 簡化開發, 也可修…

[Java核心技術(卷I)] - vscode手動編譯運行繼承類

參考 - P160~P161 主要有3個類: 一個測試類(ManagerTest)、一個子類(Manager)、一個父類(Employee) 注意點: -1. 使用 javac -d . *.java進行預編譯 目錄結構入下: 此時會生成目錄結構如下: 之后運行 java com.inheritance.ManagerTest 附上幾個類的代碼 // com.inhe…

mysql常用語句和函數

mysql語句如果長期不寫,就會忘掉,所以要時常復習,溫故而知新。 1.select length("中國人"),select char_length("中國人"); 2建立數據庫的語句 use new_schema;create table ta(id int primary key);這是小括號&#xff…

shiro框架@RequiresPermissions 解釋

RequiresAuthentication 驗證用戶是否登錄,等同于方法subject.isAuthenticated() 結果為true時。 RequiresUser 驗證用戶是否被記憶,user有兩種含義: 一種是成功登錄的(subject.isAuthenticated() 結果為true)&…

【Social Listening實戰】當數據分析遭遇心理動力學:用戶深層次的情感需求浮出水面...

本文轉自知乎 作者:蘇格蘭折耳喵 ————————————————————————————————————————————————————— 本文篇幅較長,分為五部分,在中間部分有關于心理分析工具的介紹,案例分散在第二部…

Python 字符串切片

#-*- coding:utf-8 -*-#字符串切片names "abcdefgh"切片語法 names[起始位置:終止位置:步長] 起始位置:即字符串的下標,可以是正序下標(0,1,2...),也可以是逆序下標(-1,-2,-3...) 終止位置:也是字符串的下標,但是和起始位置下標不…

[Java核心技術(卷Ⅰ)] - 判斷相等

參考 - P184 public boolean equals(Object otherObject) {// a quick test to see if the objects are identicalif (this otherObject) return true;// must return false if the explicit parameter is nullif (otherObject null) return null;// if the classes dont ma…

Oracle 11g DG主庫節點2 ORA-00245: control file backup fail

--節點1報錯 Sun Dec 09 08:29:57 2018Control file backup creation failed: failure to open backup target file /u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_zwdb.ctl.Errors in file /u01/app/oracle/diag/rdbms/zwdb/zwdb2/trace/zwdb2_arc0_167660.trc:ORA-27037: …