public void ProcessRequest(HttpContext context) { // 一、解析請求參數,此處忽略 // 二、如下爲具體處理方式 string returnString = string.Empty; string methodName = context.Request.Form["methodName"]; switch(methodName) case "GetData": returnString = GetData(); break; case "InsertNewRow" returnString = InsertNewRow(); break; .....等等多個case分支 default: break; // 三、向客戶端返回結果 context.Response.Write(returnString); }
public void ProcessRequest(HttpContext context) { // 一、解析請求參數,此處忽略其餘參數的解析,僅獲取方法名 string methodName = context.Request.Form["Action"]; // 二、如下爲反射的具體處理方式 Type type = this.GetType(); Object[] params = new Objece[1]; //方法參數,咱們統一將context做爲參數,覺得用戶數據都封裝在其中 MethodInfo method = type.GetMethod(methodName); string returnString = (string)method.Invoke(this,params); // 三、向客戶端返回結果 context.Response.Write(returnString); }
public String GetRequest(HttpContext context, String paramName)
{
if (context.Request[paramName] != null)
{
return context.Request[paramName].ToString();
}javascript
return "";
html
}java
/// <summary> /// UserHandler 的摘要說明 /// </summary> public class UserHandler : BaseHandler { /// <summary> /// 用戶登陸處理 /// </summary> /// <param name="context"></param> /// <returns></returns> public String Login(HttpContext context) { String strAccount = ""; String strPassword = ""; String strRet; try { //獲取頁面傳值 strAccount = GetRequest(context, "Account"); strPassword = GetRequest(context, "Password"); if (strAccount != "" && strPassword != "") { //簡單起見,僅返回傳遞過來的用戶帳號與密碼 //在實際應用中利用傳遞過來的參數值調用業務邏輯層的方法來完成客戶端的請求 strRet = String.Format("帳號:{0},密碼:{1}", strAccount, strPassword); } else { //返回提示信息 strRet = "未能正確獲取參數!"; } return strRet; } catch (Exception ex) { throw ex; } } }
<script type="text/javascript"> $(document).ready(function () { $("#btnLogin").click(function () { var account; var password; account = $("#txtUserName").val(); password = $("#txtPassword").val(); $.ajax({ type: "POST", async: true, url: "Handler/UserHandler.ashx", dataType: "text", data: { Action: "Login", Account: account, Password: password }, success: function (data) { alert(data); }, error: function (xhr) { alert(xhr.statusText); return false; } }); }); }); </script>