WEB程式設計的精髓探討
做WEB專案也兩年多了,閒下來總結一下WEB開發的精髓,希望對於初學者學習有些幫助。
WEB的精髓用六個字來概括“事件、請求、響應”;事件觸發請求(一般由JS來捕獲),如單擊確定按鍵等,請求指明伺服器的地址和請求攜帶的資料,響應是伺服器向客戶端返回的資料。在WEB專案開發過程中,基本上覆蓋這三塊,下面再討論其中的細節。
JS我一般喜歡用Jquery來寫,它比較簡單,繫結一個事件也比較簡單,$(“#id").bind("click",function(){});捕獲單擊事件的響應函式,在實際中,一般要使用到ajax來做非同步傳輸,寫好url,data以及返回響應函式等,這就是請求,請求必須包含兩個部分:一是請求地址;二是請求攜帶的資料。請求的方式有兩種,一種是get,另一種是post,get攜帶的資料直接在url之後,post將請求的資料封裝在http協議頭部。伺服器響應是向客戶端返回資料,這裡就涉及返回的資料格式了,是html還是xml,還是json呢?視具體的情況來定,返回json資料格式現在比較多,json資料格式是key-value鍵值對的形式。在開發中,我喜歡用fastjson來封裝json資料格式,在下面的開發中你會體會到。
我用Struts2框架來寫一個簡單的例子供大家參考。例子主要實現的功能是,當你輸入一個學生的學號,我就把他的成績彈出顯示,如果沒有該學生的資訊,就返回提示資訊。現在只能查到aaa的成績,返回90。
第一步:寫好事件和請求
關鍵程式碼如下:
$(function(){
$("#send").bind("click",function(){
$.ajax({
url:'login',
type:'post',
data:{name:$("#name").val()},
dataType:'json',
success:function(data) {
var data= eval(data);
var state=data.state;
if(state==false)
alert("沒有查詢你"+data.name+"想要的成績");
else
alert(data.name+",你的成績是:"+data.score);
}
});
});
});
第二步:寫好伺服器響應
public String execute() throws Exception {
Map<String, Object> map = new HashMap<String, Object>();
if (this.name.equals("aaa")) {
map.put("name", "aaa");
map.put("score", 90);
map.put("state", true);
} else {
map.put("state", false);
map.put("name", name);
map.put("score", 0);
}
String result = JSON.toJSONString(map);
System.out.println(result);
HttpServletResponse res = ServletActionContext.getResponse();
PrintWriter out = res.getWriter();
out.write(result);
out.flush();
out.close();
return null;
}
這樣就可以完成我們的功能了。