仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 593|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET编程:ASP.NET交互Rest服务接口(Jquery的Get...

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:17:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
效率会有不少的变化。而实际上java是基于堆栈机器来设计,这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说,这是一种虚拟机的设计思路。本文将经由过程一个复杂的实例,先容怎样创立一个Rest服务接口,和经由过程JQUERY往对它举行挪用;次要接纳两种体例分离为Get跟Post;个中将经由过程Post提交复杂范例(Sring)和庞大范例(自界说完成UserModel)与Rest服务举行交互;
一Rest服务创立

个中Web客户端(ClintWeb)不合错误别的层的援用,只经由过程Rest部署后的服务举行效互;
1:实体层(Model)
  1. usingSystem.Runtime.Serialization;namespaceModel{[DataContract]publicclassUserModel{[DataMember]publicintID{get;set;}[DataMember]publicstringUserName{get;set;}[DataMember]publicstringPassWord{get;set;}[DataMember]publicintAge{get;set;}publicoverridestringToString(){returnstring.Format("ID:{0};姓名:{1};岁数:{2};暗码:{3}",ID,UserName,Age,PassWord);}}}
复制代码
此处要注重[DataContract],[DataMember]在定名空间usingSystem.Runtime.Serialization上面;

2:接口层(IServiceInterface)
  1. usingSystem.ServiceModel.Web;usingSystem.ServiceModel;usingModel;namespaceIServiceInterface{[ServiceContract]publicinterfaceIUser{[WebGet(UriTemplate="/{ID}",RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]UserModelGetUserFromID(stringID);[WebGet(UriTemplate="All",RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Bare)]List<UserModel>GetAllUser();[WebInvoke(UriTemplate="/User/UserName",Method="POST",RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)]StringGetUserName(stringName);[WebInvoke(UriTemplate="/User/Post",Method="POST",RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.WrappedRequest)]stringUpdateUser(UserModelmodel);}}
复制代码
3:逻辑层(ServiceBll)
  1. usingIServiceInterface;usingModel;namespaceServiceBll{publicclassUserBll:IUser{publicstaticList<UserModel>GetUserList(){List<UserModel>list=newList<UserModel>(){newUserModel(){ID=1,UserName="踏浪帅",PassWord="123456",Age=27},newUserModel(){ID=2,UserName="wujunyang",PassWord="345678",Age=30},newUserModel(){ID=3,UserName="cnblogs",PassWord="987654",Age=33}};returnlist;}publicUserModelGetUserFromID(stringID){UserModelitem=GetUserList().Where(a=>a.ID==int.Parse(ID)).SingleOrDefault();if(item!=null){returnitem;}else{returnnewUserModel();}}publicList<UserModel>GetAllUser(){returnGetUserList();}publicstringUpdateUser(UserModelmodel){returnmodel.ToString();}publicStringGetUserName(stringName){return"您好:"+Name;}}}
复制代码
前面创立的客户端传参数要跟下面各个办法的参数不异,好比:Name,model等
4:Rest服务(RestService)
此处新建一个文本文件把它修正成.svc格局,在其内里写进:
  1. <%@ServiceHostLanguage="C#"Debug="true"Service="ServiceBll.UserBll"%>
复制代码
web.config文件内容:
  1. <?xmlversion="1.0"encoding="utf-8"?><configuration><system.web><compilationdebug="true"targetFramework="4.0"/></system.web><system.serviceModel><behaviors><endpointBehaviors><behaviorname="webHttp"><webHttphelpEnabled="true"/></behavior></endpointBehaviors><serviceBehaviors><behaviorname="MapConfigBehavior"><!--为制止泄露元数据信息,请在部署前将以下值设置为false并删除下面的元数据闭幕点--><serviceMetadatahttpGetEnabled="true"/><!--要吸收妨碍非常具体信息以举行调试,请将以下值设置为true。在部署前设置为false以免泄露非常信息--><serviceDebugincludeExceptionDetailInFaults="true"/><dataContractSerializermaxItemsInObjectGraph="2147483647"/></behavior></serviceBehaviors></behaviors><bindings><webHttpBinding><bindingname="webHttpBindConfig"receiveTimeout="00:30:00"sendTimeout="00:30:00"maxReceivedMessageSize="104857600"><readerQuotasmaxStringContentLength="2147483647"maxArrayLength="2147483647"/><securitymode="None"></security></binding></webHttpBinding></bindings><services><servicename="ServiceBll.UserBll"behaviorConfiguration="MapConfigBehavior"><endpointbinding="webHttpBinding"contract="IServiceInterface.IUser"bindingConfiguration="webHttpBindConfig"behaviorConfiguration="webHttp"/></service></services></system.serviceModel></configuration>
复制代码
<p>那做企业软件是不是最好用J2EE?
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-19 06:48:49 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-24 15:03:56 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
老尸 该用户已被删除
地板
发表于 2015-2-1 17:35:40 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
深爱那片海 该用户已被删除
5#
发表于 2015-2-7 13:32:43 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-22 06:38:08 | 只看该作者
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
爱飞 该用户已被删除
7#
发表于 2015-3-6 23:32:30 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
柔情似水 该用户已被删除
8#
发表于 2015-3-13 23:07:16 | 只看该作者
ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。
飘灵儿 该用户已被删除
9#
发表于 2015-3-20 21:19:55 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-11 06:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表