转载的web server实例

asp.net—web server模拟网上购物
2014-05-08     我来说两句   来源:asp.net—web server模拟网上购物  
收藏    我要投稿

在学vb的时候学到了api函数,今天学习asp.net中的web server,web server和api函数一样都是为用户提供了一个接口,客户端可以在远程直接调用,不需要知道它具体的算法,难易程度,可以直接使用方法。

一.基础

概念:

1.web服务是应用程序

2.它向外界暴露了一个能够通过web进行调用的api

3.能够用编程的方法,通过web来调用这个应用程序

4.把调用这个web服务应用程序叫做客户。

运行流程

1.目录:web service提供了一个用以定位其他单位提供的web service的中心位置。其中,uddi就是web service目录。Uudi通俗一点说就是建立web service时使用注册到uudi。如果使用服务,就来看uudi。

2.发现:使用wsdl对特定的web service进行描述,一般都是xml文档。其中,wsdl用于描述WebService及其函数、参数和返回值。可以用来向用户介绍Web service的功能,每个函数调用时的参数。

3.联网形式:使用开放式联网形式进行通讯,主要使用sopa通讯协议。

特点:

1.通过web进行访问。

2.使用接口进行调用

3.在服务注册表中注册

4.使用标准web协议通信

5.松散耦合

二.模拟银行转账的实例

需求

web server提供了可以使买家付款给卖家的方法方法和获取商品列表的方法;客户端调用这个两个方法,客户端选中购买的商品后,单击‘购买’按钮就可以买家付款给卖家,并显示买家消费金额。

代码实现

1.web service代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

    public class serviceShopping : System.Web.Services.WebService

{

    [WebMethod]

    //获取商品

    public DataSet getGoods()

    {

        SqlConnection con = new SqlConnection("server=.;database=shop;uid=sa;pwd=123456;");

        con.Open();

        SqlDataAdapter adr = new SqlDataAdapter();

        adr.SelectCommand = new SqlCommand("select * from goods", con);

        DataSet ds = new DataSet();

        adr.Fill(ds, "goods");

        con.Close();

        return ds;

    }

    [WebMethod]

    //购物

    public string shopping(int sum)

    {

        try

        {

            //买家买东西

            this.buy(sum);

            //卖家卖东西

            this.sell(sum);

            return "交易成功,消费:"+sum;

        }

        catch

        {

            return "交易失败";

        }

    }

    //买家买东西

    private void buy(int sum)

    {

        SqlConnection con = new SqlConnection("server=.;database=shop;uid=sa;pwd=123456;");

        con.Open();

        SqlCommand cmd = new SqlCommand("update buy set money=money-" + sum.ToString() + " where  buyer=‘A‘", con);

        cmd.ExecuteNonQuery();

        con.Close();

    }

    //卖家卖东西

    private void sell(int sum)

    {

        SqlConnection con = new SqlConnection("server=.;database=shop;uid=sa;pwd=123456;");

        con.Open();

        SqlCommand cmd = new SqlCommand("update sell set money=money+" + sum.ToString() + " where  seller=‘B‘", con);

        cmd.ExecuteNonQuery();

        con.Close();

    }

}

2.客户端中引用web service的步骤

备注:地址是运行web service后地址栏中地址。

3.客户端代码

客户端html代码

?


1

2

3

4

5

6

7

8

9

10

11

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <title></title>

    <form id="form1" runat="server">

    <div>

        

        </asp:checkboxlist>

        

    </asp:button></div>

    </form>

客户端后台代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

public partial class UseServerShopping : System.Web.UI.Page

{

    //绑定商品列表

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!IsPostBack)

        {

            myserviceShopping.serviceShoppingSoapClient getGoodslist = new myserviceShopping.serviceShoppingSoapClient();

            this.CheckBoxList1.DataSource = getGoodslist.getGoods();   //绑定商品列表

            this.CheckBoxList1.DataTextField = "goodsname";

            this.CheckBoxList1.DataValueField = "cost";

            this.CheckBoxList1.DataBind();

        }

    }

    //购买商品

    protected void Button1_Click(object sender, EventArgs e)

    {

        //商品价格

        int totalCost=0;

        //计算商品总共价格

          for (int i = 0; i < CheckBoxList1.Items.Count; i++)  //循环checjboxlist1的个数

        {

            if (CheckBoxList1.Items[i].Selected == true//checjboxlist1被选中

            {

                totalCost =totalCost+ Convert.ToInt32(CheckBoxList1.Items[i].Value);  //计算商品总价格

            }

         }

        myserviceShopping.serviceShoppingSoapClient buyGoods = new myserviceShopping.serviceShoppingSoapClient();

        buyGoods.shopping(totalCost);   //调用服务中使买家付款给卖家

        Response.Write(buyGoods.shopping(totalCost));

    }

}

源码地址

里面有具体的源码:http://download.csdn.net/detail/suneqing/7313033

三.总结

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。

时间: 2024-10-10 10:38:58

转载的web server实例的相关文章

PHP Web Server 实例

通过WebService,我们可以调用部署在其它地方的程序,而不用关心被调用的程序是在什么平台用什么语言编写的.这里我们使用php调用. 在php4时代调用WebService大部分使用的nusoap,到了php5已经有了自己的soap扩展,我们只需要在php的配置文件php.ini开启扩展 extension = php_soap.dll 实例程序 定义一个实现业务逻辑的类文件basic.php //测试定义公开的类 class Mywsdl { private $nombre = ''; p

【实例图文详解】OAuth 2.0 for Web Server Applications

原文链接:http://blog.csdn.net/hjun01/article/details/42032841        OAuth 2.0 for Web Server Applications, verifying a user's Android in-app subscription 在写本文之前先说些题外话. 前段时间游戏急于在GoolePlay上线,明知道如果不加Auth2.0的校验是不安全的还是暂时略过了这一步,果然没几天就发现后台记录与玩家实际付费不太一致,怀疑有玩家盗刷

Tomcat是怎么工作的(2) -- 动手实现山寨版的简单Web Server

本文先讲解一下Java web server都是怎么工作的.web server也叫HTTP server——顾名思义它是用HTTP协议和客户端交互的.客户端一般就是各种各样的浏览器了.相信所有朋友都清楚这个基本事实,否则你也不会看到这个系列文章了. 基于Java的web server必然用到两个极其重要的类:java.net.Socket和java.net.ServerSocket,然后以HTTP消息进行交互. 1. HTTP协议简介(The Hypertext Transfer Protoc

DICOM:剖析Orthanc中的Web Server,Mongoose之“连接请求触发的事件序列”(二)

背景: Orthanc是本专栏中介绍过的一款新型DICOM服务器,具有轻量级.支持REST的特性,可将任意运行Windows和Linux系统的计算机变成DICOM服务器,即miniPACS.Orthanc内嵌多种模块,数据库管理简单,且不依赖于第三方软件.因此通过剖析Orthanc源码可以学习到搭建DICOM系统中的各个环节,例如SQLite嵌入型数据库.GoogleLog日志库.DCMTK医学DICOM库,以及近期要介绍的开源Web Server,Mongoose. 题记: 近期计划参照官网剖

DICOM:剖析Orthanc中的Web Server,Mongoose之 Flag bit &amp; Event(三)

背景: Orthanc是本专栏中介绍过的一款新型DICOM服务器,具有轻量级.支持REST的特性,可将任意运行Windows和Linux系统的计算机变成DICOM服务器,即miniPACS.Orthanc内嵌多种模块,数据库管理简单,且不依赖于第三方软件.因此通过剖析Orthanc源码可以学习到搭建DICOM系统中的各个环节,例如SQLite嵌入型数据库.GoogleLog日志库.DCMTK医学DICOM库,以及近期要介绍的开源Web Server,Mongoose. 上一篇博文中简单的分析了M

Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目

Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目 1. Resin4.0.22 1 2. 查看http连接数::Summary>>tables 1 2.1.1. Open Connections 1 2.2. TCP ports? 1 3. 查看app::confgi?>>webapps 2 3.1. Host http://localhost:80 2 3.1.1. WebApps 2 4. 查看app2:::   

【转载】SQL Server 2008 中新建用户登录并指定该用户的数据库

提要:我在 SQL Server 中新建用户登录时,出现了三种错误,错误代码分别是 18456.15128.4064 -----------------------------------  正 文 ----------------------------------- 一.实验环境 Windows 7SQL Server 2008数据库实例名为 TestDB,新建的用户名为 testUser 二.操作步骤 1.打开 SQL Server Management Studio,以 Windows身

【轮子狂魔】抛弃IIS,打造个性的Web Server - WebAPI/Lua/MVC(附带源码)

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 引言 此篇是<[轮子狂魔]抛弃IIS,向天借个HttpListener - 基础篇(附带源码)>的续篇,也可以说是提高篇,如果你对HttpListener不甚了解的话,建议先看下基础篇. 这次玩的东西有点多了,大致分为如下几个方向: 1.支持

使用Myeclipse 8.5开发基于JAX-WS的Web service实例

使用Myeclipse 8.5开发基于JAX-WS的Web service实例  本文为Web service 开发入门篇,主要介绍在Myeclipse 8.5环境下开发Web service的服务程序和客户端程序的基本流程.  在Weblogic 10.3.4 中部署Web service服务.   开发环境如下:  JAVA IDE: Myeclipse 8.5 开发Web service服务程序,需要了解以下相关内容, WSDL, SOAP, XML.这些是组成Web service 的基