參考:由GlobalContext可以拿到的值:http://www.projectzero.org/sMash/1.1.x/docs/zero.devguide.doc/zero.core/GlobalContextReference.html
用sMash開發RestFul Service時,也可以在Request中帶上query string,呼叫的方法如下:
http://localhost:8080/basic_info/?abc
在上述的例子中,? 後面的東西就會被當作 query string。
檢視zero.config的設定(如下),表示所有URL是 /basic_info/xxx的東西,都會被送交Test.class這個handeler來處理。
# HTTP port (default is 8080)
/config/http/port = 8080
# Runtime mode (default is "production")
/config/runtime/mode="development"
/config/handlers +=[{
"events":"GET",
"handler":"Test.class",
"conditions":"/request/path=~/basic_info/(.*)?"
}]
再檢視Test.class這個class
import java.io.PrintWriter;
import zero.core.context.GlobalContext;
public class Test {
public void onGET(){
PrintWriter writer = (PrintWriter) GlobalContext.zget("/request/writer");
String uri = (String) GlobalContext.zget("/request/queryString");
writer.println("Hello World!");
writer.println(uri);
}
}
其中,GlobalContext.zget("/request/writer")這個方法目的為從GlobalContext拿到 Writer;而GlobalContext.zget("/request/queryString");則是從GlobalContext拿到queryString(即?之後的東西)。
啟動 sMash後,輸入連結http://localhost:8080/basic_info/?abc 可得到
Hello World! abc
沒有留言:
張貼留言