日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java servlet .net_JAVA学习之 Model2中的Servlet与.NET一般处理程序傻傻分不清楚

發布時間:2023/12/19 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java servlet .net_JAVA学习之 Model2中的Servlet与.NET一般处理程序傻傻分不清楚 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

時隔多日,多日合適嗎,應該是時隔多月。我又想起了一般處理程序。這都是由于近期在實現的DRP系統中經經常使用到jsp+servlet達到界面與邏輯的分離。servlet負責處理從jsp傳回的信息;每當這個時候我就有一種感覺,這里的Servlet好像跟一般處理程序有著相同的作用,只是由于我對一般處理程序的了解并不深刻,僅僅是在一個寫簡單的實例中應用過。大家有什么看法都能夠提出來,以下我就從我有限的知識出發來說說我的理解:

一、一般處理程序

一般處理程序用來處理一般的web請求。一般處理程序實現一個FrameWork的接口:IHttpHandler,該接口定義了假設實現一個HTTP騎牛的處理所必須實現的一些系統約定。創建一個空白的一般處理程序:

///

/// HelloWord 的摘要說明

///

public class HelloWord : IHttpHandler

{

public void ProcessRequest(HttpContextcontext)

{

context.Response.ContentType ="text/plain";

context.Response.Write("HelloWorld");

}

public bool IsReusable

{

get

{

return false;

}

}

}

我們能夠看到僅僅須要實現一個方法和一個屬性,當中ProcessRequest放置處理請求的主要代碼;IsReusable屬性,獲取指示其它請求能否夠使用IHttpHandler 實例,一般都設置為true;

以下以以一個簡單的加入用戶為例。看一般處理程序是怎樣實現的:

web傳遞信息:

//加入用戶信息

function saveOneOrganization() {

//獲username稱

var nameValue =$("#UserName").val();

//獲取password

var passWordValue =$("#PassWord").val();

//給隱藏控件test的value賦值

var test = "add";

if (nameValue == "" ||passWordValue == "" ||) {

alert("請將信息填寫完整!");

}

$.post("addManager.ashx", {nameValue: nameValue, passWordValue: passWordValue,test: test }, function(data) {

alert(data);

});

}

一般處理信息處理:

///

/// addManager1 的摘要說明

///

public class addManager1 : IHttpHandler

{

UserManagerBLL userManagerBll = newUserManagerBLL();

public void ProcessRequest(HttpContextcontext)

{

//接受前臺傳過來的test值

string command =context.Request.Params["test"];

if (command =="addUser") //加入username

{

addUser(context);

}

else if (command =="delUser")

{

modifyUser(context);

}

}

//加入用戶信息

public void addUser(HttpContextcontext) {

//username稱

string strNameValue =context.Request.Params["nameValue"];

//用戶密碼

string strpassWordValue =context.Request.Params["passwordValue"];

//實例化用戶實體

UserEntity userEntity = new UserEntity();

//將變量值傳給實體

userEntity.UserName = strNameValue;

userEntity.Password =strpassWordValue;

//調用B層的方法

string strResult=userManagerBll.add(userEntity);

//往前抬傳值

context.Response.Write(strResult);

context.Response.End();

}

//改動

public void modifyUser(HttpContextcontext)

{

//實現與加入用戶已知不再詳述

}

public bool IsReusable

{

get

{

return true;

}

}

}

二、Servlet

事實上Servelet范圍非常廣。這里我說的Servlet僅僅是Servlet的一種實現。創建Servlet事實上現HttpServlet,與IHttpHandler相似的是HttpServleteasy也是響應Web客戶的請求,WEB容器把客戶請求封裝成一個HttpServletRequest對象,然后把對象傳給Servlet的對象方法進行處理。

在繼承HttpServlet時。能夠選擇覆蓋部分方法。比如:doGet()或doPost(),或者覆蓋Service方法。

以下簡答的加入改動實例看一下servlet的實現:

jsp調用:

function add(){

window.self.location="servlet/flowCard/FlowCardServlet?command=add"

}

Servlet實現:

publicclass UserServlet extends HttpServlet {

@Override

protectedvoid service(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

//必須顯示調用父類的service方法

super.service(request,response);

if("add".equals(getCommand())) {

add(request,response);

}elseif ("del".equals(getCommand())) {

}elseif ("modify".equals(getCommand())) {

}else {

}

}

/**

* 加入

* @param request

* @param response

* @throws ServletException

* @throws IOException

*/

privatevoid add(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

//用戶姓名

String userName=request.getParameter("userName");

//用戶password

String passWord=request.getParameter("passWord");

user.setUserName(userName)

user.setpassWord(passWord)

UserManager.add(user);

//頁面跳轉

response.sendRedirect(request.getContextPath()+ "/flowcard/flow_card_maint.jsp");

}

/**

* 刪除

* @param request

* @param response

* @throws ServletException

* @throws IOException

*/

privatevoid del(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

//略去

}

}

使用servlet須要在web.xml中進行配置:

UserServlet

com.tgb.UserServlet

2

UserServlet

/servletUserServlet

比較:

1、事實上從上面的代碼能夠看出。他們兩個都能夠依據頁面傳過來的參數推斷要運行的方法。進而調用業務層的詳細處理過程,非常easy的把頁面與業務邏輯分開。

2、在.net中的一般處理程序與java中Servlet都是用來處理web端發送的請求,解開頁面與業務邏輯的耦合;看起來作用就像是MVC框架中Controller的作用,近期感覺非常多東西非常像。主要是缺乏實踐還沒摸透當中的道理,歡迎指正。

總結

以上是生活随笔為你收集整理的java servlet .net_JAVA学习之 Model2中的Servlet与.NET一般处理程序傻傻分不清楚的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。