ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:483.50KB ,
资源ID:873341      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-873341.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于j2me平台的掌上网络商店-服务器端的开发.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于j2me平台的掌上网络商店-服务器端的开发.doc

1、基于j2me平台的掌上网络商店服务器端开发摘 要过去的几年,电子商务的迅猛发展为企业创造了极大的价值,使传统的企业商务模式发生了很大的改变。随着手机使用的普及和无线技术的发展,移动电子商务将会作为电子商务领域中的一种新型的电子商务模式,其发展前景是十分诱人的。可以预见的是,移动电子商务将成为21世纪电子商务领域的主战场。J2ME是为嵌入式消费电子设备提供的JAVA语言开发平台,是针对资源受限设备。因此基于J2ME平台的无线终端的应用程序开发以及与网络服务器端的信息交互开发就十分重要。利用客户端 + Java servlet + SQL Server数据库三层模式实现网上商店系统是通用的方法。所

2、有的业务逻辑都封装在servlet中,数据库的使用提高了数据的安全性,而采用可扩展标识语言XML的数据格式实现了跨平台的数据交换。详细阐述了系统的需求分析、系统总体架构及详细设计,系统实现了以下功能:会员注册、登录、浏览物品详细信息和购买物品。关键词:J2ME;可扩展标识语言;SERVLET;网络商店1The Palm Platform of e-Shop Based on the J2MEServer DevelopmentAbstractOver the years, the fast fierce development of electronic commerce created tr

3、emendous value for the enterprise, which greatly changed traditional enterprise commerce pattern. With the prevalence of mobile phone and development of wireless, Mobile e-commerce will be a new e-commerce mode in the electronic commerce realm, and it is very promising. It can be predicted that the

4、mobile e-commerce will become the major industry of e-commerce in the 21st century. J2ME is the platform that provides the JAVA language to develop the embedded electronic equipment of expense, which aims at the equipment that resource is limited. Therefore the interactive information exploitation d

5、eveloping with network server and applications of wireless terminal development based on J2ME platform is very important. It is a general method to implement the system of e-shop using three layers of pattern: client side + Java servlet + database of SQL Server. All the business logic encapsulated i

6、n the servlet, using of the database improved the security, and using the XML data format achieved cross-platform data exchange. To the system demand analysis, the system requirement analysis, the overall of system construction and the detailed design are elaborated in details in this paper, and the

7、 system achieves the following functions: Member registration, login, browse detailed information and purchase goods.Key words: J2ME; XML; SERVLET; E-SHOP目 录论文总页数:24页1引言11.1选题背景11.2选题意义12相关技术及开发平台简介22.1J2ME简介22.2SQL SERVER数据库和JDBC22.3JAVA SERVLET技术介绍22.4XML和JDOM32.4.1XML简介32.4.2JDOM技术32.5开发平台及系统配置33

8、系统需求分析和设计方案43.1需求分析43.2系统总体框架43.3系统设计关键技术53.3.1网络的连接53.3.2数据存储方式和数据的交换53.4业务数据流分析53.4.1联网的流程53.4.2访问数据库的流程63.4.3输入XML数据解析流程63.4.4输出XML文档建立流程63.5和客户端交互接口的约定73.5.1关于URL73.5.2URL参数约定规则73.5.3接收和发送的XML文档格式的约定73.6数据库的分析与设计83.6.1注册用户基本信息表user83.6.2商品信息表84具体的设计流程和实现系统构架94.1系统主要工作流程94.2系统功能模块设计94.2.1数据库联网模块的

9、设计94.2.2注册模块的设计104.2.3登陆模块的设计134.2.4查询模块的实现154.2.5购买功能模块的实现185测试分析与问题处理215.1数据库连接215.2与客户端的连接21结 论22参考文献22致 谢23声 明241 引言1.1 选题背景网上购物正逐步走向平民化,调查机构AC尼尔森最新研究显示,63%的中国网民曾在网上购物。有业内人士认为,中国的网上购物人数在快速增长,年轻的中国男性更热衷于网上购物。民众对电子商务的热情高涨,表明我国民众电子商务意识的提高,电子商务正改变着人们的消费方式。而近年来随着移动技术的发展,手机在人们中的普及,传统的电子商务越来越满足不来了人们的需求

10、,出现了一种新型的电子商务模式移动电子商务。与传统的Internet上的在线交易相比,移动电子商务具有许多优点,移动交易不受时间和地点的限制;效率高,大大节省客户交易的时间;移动终端的身份固定,能够向用户提供个性化移动交易服务;可以提供与位置相关的交易服务。移动电子商务将用户和商家紧密联系起来,而且这种联系将不受PC或连接线的限制,使电子商务走向了个人。传统的电子商务形式受到越来越大冲击,以网络化、知识管理、全球化为主要特征的信息化社会已是不可逆转的趋势,电子商务化已成为企业发展的必由之路。而信息化社会的核心是互联网、移动通信和电子商务,而三者的有机结合更是未来社会的大势所趋。移动电子商务的快

11、速发展。移动电子商务的基础是互联网,移动电子商务的主要特点是灵活、简单、方便。它能完全根据消费者的个性化需求和喜好定制,设备的选择以及提供服务与信息的方式完全由用户自己选择控制。移动电子商务时代正向我们走来。1.2 选题意义目前,人们逐渐意识到融合移动通信技术的电子商务将具有更大的潜力,移动电子商务的市场前景普遍被业内人士看好。参与电子商务的主要角色是企业(Business)和消费者(Customer),因此在企业之间、企业与消费者之间,网上交易构成了B to B(B2B即Business to Business企业到企业)、B to C(即Business to Customer 企业到用户

12、)两种最典型的商务模式。据预测,到2003年,超过10%的电子商务交易将通过移动通信设备来完成;预计到2008年,全球将出现10亿移动电话用户、10亿因特网用户,其中5亿为移动因特网用户;到2005年截止,将有25%的数据业务通过移动通信设备来传输。这些移动终端构成了移动电子商务巨大的潜在市场。移动电子商务的特征移动电子商务和传统的电子商务存在很大的区别,主要有下述两点:(1) 不受时间和地点的限制。(2) J2ME的优点同传统的WAP相比,J2ME有很多的优点。这些优点主要表现在:网络编程灵活,能突破B/S结构的一些限制,使得上层程序更加自由。正是J2ME的优点,而基于J2ME平台的移动电子

13、商务将具有更大的潜力和优点。本文将研究如何利用JAVA SERVLET和XML技术构建一个基于J2ME平台的掌上网络商店服务器端的开发。2 相关技术及开发平台简介2.1 J2ME简介J2ME(Java 2 Platform Micro Edition)是为机顶盒、移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API。它和J2SE,J2EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的。目前阶段,J2ME最流行的应用是游戏软件。因为与需要昂贵的专用设备和开发工具的竞争对手(如索尼和任天

14、堂)相比,J2ME程序可以在PC机上开发和仿真运行,然后很容易地部署到目标机上,从而使其开发、测试和发布的变得容易和廉价。实际上J2ME的用途和前景要广泛得多。2.2 SQL SERVER数据库和JDBCSQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase和Ashton-Tat三家公司共同开发的,于1988年推出了第一个OS/2版本。在Windows NT推出后,Microsoft与Sybase在SQL Server的开发上就分道扬镳了。Microsoft 将SQL Server 移植Windows NT系统上,专注于开发推广SQL Server的Wind

15、ows NT版本。Sybase则较专注于SQL Server在UNIX操作系统上的应用。在本书中介绍的是Microsoft SQL Server,以后简称为SQL Serve或MS SQL Server。SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统的最新版本。该版本继承了SQL Server 7.0版本的优点同时又比它增加了许多更先进的功能,具有使用方便可伸缩性好与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98的膝上型电脑到运行Microsoft Windows 2000的大型多处理器的服务器等多种平台使用。JD

16、BC的全称是Java Database Connectivity(严格地讲,JDBC是Sun Microsystems的商标而非缩写)。它是Java编程语言中用来规范客户端程序如何来访问数据库的API,提供了诸如查询和更新数据库中数据的方法。JDBC是面向关系型数据库的。JDBC驱动程序共分四种类型:类型1:JDBC-ODBC桥类型2:本地API驱动类型3:网络协议驱动本地协议驱动。2.3 JAVA SERVLET技术介绍Servlet是使用Java Servlet应用程序设计接口(API)及相关类和方法的 Java程序。除了Java Servlet API,Servlet还可以使用用以扩展和

17、添加到API的Java类软件包。Servlet在启用Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。Java servlet对于Web服务器就好像Java applet对于Web浏览器。Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。Java Servlet API定义了一个servlet和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。当客户机发送请求至服务器时,服务器可以将请求信息发送给 S

18、ervlet,并让Servlet建立起服务器返回给客户机的响应。当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。装入后,Servlet继续运行直到其它客户机发出请求。Servlet的功能涉及范围很广。2.4 XML和JDOM2.4.1 XML简介XML是可扩展标志语言(eXtensible Markup Language)的简称。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简

19、化修改出来的。它主要用到的有XML、XSL和XPath等。象HTML一样,XML是从所有标志语言的元语言标准通用标志语言SGML(Standard Generalized Markup Language)那里派生出来的。SGML是一种元语言,也可以称为一个定义诸如HTML等标志语言的系统。XML也是一种元语言,一个定义Web应用的SGML的子集。和SGML一样,你也可以用XML来定义种种不同的标志语言满足不同的需要,特别在数据表现方面。2.4.2 JDOM技术JDOM是一种面向Java的读、写和操作XML文档的API。JDOM与现行的SAX和DOM标准兼容,为Java程序员提供了一个简单、轻量

20、的XML文档操作方法。由于JDOM是专门为Java程序员开发的,所以采用许多Java语言的优秀特性,比如方法重载、集合(Collections)和类映射(Reflection)。2.5 开发平台及系统配置当前流行的JAVA开发平台主要有BORLAND的JBUILD,SUN的NETBEANS和开源的ECLIPSE。但是JBUILD相比较而言简单易用,学习曲线比较平缓。所以开发本系统选用JBUILD。下面是开发平台及系统配置:操作系统:WINDOWS2003。数据库:SQL SERVER 2000。开发工具:JBUILD9。附带的JDOM包为:jdom-1.0。需要的JDBC驱动程序为:Micro

21、soft SQL Server 2000 Driver for JDBC。在JBUILD9所建立工程属性里面要引入jdom-1.0和Microsoft SQL Server 2000 Driver for JDBC。3 系统需求分析和设计方案3.1 需求分析在移动电子商务中,出于安全的考虑用户要有自己的账号,只有注册成功获得账号才能登陆进行必要的操作。所以服务端设计中要有注册登陆的功能。当客户第一次使用系统的时候要先进行注册。在服务端的要的注册模块要完成的工作便是:接受客户的注册资料,然后与自己的数据库的已有客户资料进行比对,检查账号是否重复。如果重复在要返回提示信息:户账号已经存在。如果没有

22、,把用户注册的资料插入的用户信息表中,而后返回注册成功信息:用户注册的名字和密码。在用户登陆的时候,服务端核对账号密码。如果一致,用户可以进行后续的操作,如果不成功,则返回登陆错误信息。用户登陆成功后的可能要查询某件的详细资料,查询的时候输入查询物品的名称,如果有,服务端返回查询的详细信息,其中信息的格式可以是XML的形式。也可以选择以字符串的形式发送。用户浏览到物品信息时想购买的话。则只要输入购买物品的ID和购买的数量。这些购买物品数据从客户端以XML数据格式发送给服务端。服务端首先要解析传送过来的XML文档提取的数据信息。如果信息合法且购买成功就返成功信息和购买物品信息。否则返回购买失败的

23、信息。3.2 系统总体框架利用J2ME和JAVA SERVLET建立企业级移动电子商务应用是非常合适的,可以通过J2ME技术建立客户终端程序,通过JAVA SERVLET建立我的服务端程序。系统的总体框架如图1。图1总体框架图在支持J2ME技术的PDA,手机等移动设备终端,可以利用它们支持的各种简档设计客户端程序,实现与用户的交互,同时,通过HTTP、HTTPS或XML等标准的网络协议与J2EE应用服务器实现数据传递。Web层和企业信息系统层用于构建我的服务器端应用,其中Web层用于实现与客户层的接口和交互,它使用Servlet程序处理客户端发出的连接和请求,并通过JDBC连接到企业信息系统层

24、的数据库系统上。数据库系统处理SQL语句,会将处理结果以一个结果集的形式发送到业务逻辑层,业务逻辑层将接收到的信息提交给Web层的Servlet程序,Servlet程序再通过HTTP、HTTPS或XML将响应信息返回到客户端。3.3 系统设计关键技术3.3.1 网络的连接由于无线设备所能支持的网络协议非常有限,仅限于HTTP,Socket,UDP等几种协议,不同的厂家可能还支持其他网络协议,但是,MIDP1.0规范规定,HTTP是必须实现的协议,而其他协议的实现都是可选的。因此,为了能在不同类型的手机上移植,我们采用HTTP作为网络连接的首选协议,这样还能重用服务器端的代码。但是,由于HTTP

25、是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率。在登陆和注册的时候传输的数据量较少,选用GET方法在基于效率上考虑比较合适的。在服务端对应的采用DOGET方法。而对于在浏览和购买的时候传输的数据量大一些,POST方法是不得不选用的,虽然其效率上比较低,但是它可以传输比较大的数据量,GET方法传输给服务端的数据量是有限制的。对应的服务端为DOPOST方法。3.3.2 数据存储方式和数据的交换由于有大量的数据,采用简单的文件系统显然不合适,采用数据库管理系统对于设计来说是比较简单的,在系统设计中要存储用户的基本信息和商品的基本信息,这就需要用两张表来存

26、储其中的数据。设计表的时候要设置主键以加强数据的完整性。而对于数据的交换格式,本系统则采用XML数据格式,在定义XML数据格式,只要是well-formed,而不需要定义其DTD,以及显示样式表。无论建立还是解析XML,对于JAVA语言来说JDOM是必需的。JDOM是在Apache许可证下发布的开放源码,是JAVA语言中XML和DOM交互的API。在设计实现中将用JDOM建立一个标准的well-formed的XML文档,也将用JDOM解析一个XML文档。3.4 业务数据流分析3.4.1 联网的流程联网的时候按照如下的流程:1、建立连接。2、设置输出的文档MIME类型,设置为text/plain

27、。设置数据编码方式,打开输出流。3、从URL字符串获取参数,判断参数是否合法,如果OK则开始接受数据并进行相应的处理。4、经过处理的结果传输数据给客户端。5、关闭连接和流。3.4.2 访问数据库的流程1、装入JDBC程序。要使用JDBC访问数据库,首先必须加载JDBC驱动程序,只需一句代码Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver)。2、建立连接。建立连接的标准方法是DriverManager.getConnection(String url,String user,String password)。3、执行SQL语句。

28、4、检索结果。5、关闭连接。在对象使用完毕后,应当关闭连接。3.4.3 输入XML数据解析流程由客户端发送过来的数据是XML的格式,首先服务端要解析这些XML格式的数据得到所需要的信息。而解析XML需要用的JDOM。JDOM自身不包含解析器。它通常使用SAX2解析器来解析和验证输入XML文档。它包含一些转换器以将JDOM表示输出成SAX2事件流、DOM模型或XML文本文档。解析的流程如下:1、使用JDOM首先要指定使用什么解析器。2、得到Document。3、得到根元素。4、得到元素(节点)的集合。5、轮循List集合。6、取得元素的子元素(为最低层元素)的值。7、DOM结果处理(输出/保存)

29、。3.4.4 输出XML文档建立流程向客户端发送XML格式数据,首先要建立XML格式的文档数据。这也将用到JDOM。在JDOM中,XML元素就是Element的实例,XML属性就是Attribute的实例,XML文档本身就是Document的实例。因为JDOM对象就是像Document、Element和Attribute这些类的直接实例,因此创建一个新JDOM对象就如在Java语言中使用new操作符一样容易。JDOM的使用是直截了当的。建立XML文档的流程如下:1、首先建立根元素。2、然后用root创建XML文档对象。3、创建元素,设置内容,属性。4、结果处理(输出/保存)。3.5 和客户端交

30、互接口的约定3.5.1 关于URL服务端和数据端的网络通讯采用HTTP协议。购买模块的URL地址为:http:/localhost:8080/servlet/PurchaseServlet。登陆模块的URL地址为:http:/localhost:8080/loginservlet1。注册模块的URL地址为:http:/localhost:8080/registerservlet。浏览物品模块的URL地址为:http:/localhost:8080/userdataservlet。3.5.2 URL参数约定规则在注册模块和登陆模块中用户的帐号约定为id;用户的密码约定为pw。在查询的模块中首先以

31、书名为查询参数,参数约定为name;在登陆中如果登陆成功则返回给客户端yes返回失败返回no。3.5.3 接收和发送的XML文档格式的约定在查询的模块中往客户端发送的XML格式的约定为元素的文本内容物品的名字,元素文本内容为物品的ID,元素内容为产地,元素内容为价格,元素内容为物品描述信息,元素内容为数量。如果根节点不为则表示查询失败返回的是失败信息。查询成功XML式样如下:nameidauthorpricedescriptionquantity查询失败XML式样如下:there is something wrong here在购买模块中要购买物品的需要物品的ID。ID约定为元素的内容,购买数

32、量约定为元素的内容。接收的XML文档为:idquantity3.6 数据库的分析与设计3.6.1 注册用户基本信息表user表user包含4个字段,分别是account,password,username,tele,其中account设置为主键,如表1。表1 用户基本信息表列名数据属性长度是否为NUL是否主键accountchar8否是passwordchar8否否usernamechar8是否telechar8是否3.6.2 商品信息表商品信息表是物品基本信息的简单介绍,它其中包括7个字段,分别是name,id,press,descrption1,price,author,quantity其

33、中设置id为主键,如表2。表2 商品信息表列名数据属性长度是否能为NULL是否主键namechar8能否idchar8否是pressvarchar1024能否authorvarchar1024能否decrpiton1text8000能否pricemoney4能否quantityint2能否4 具体的设计流程和实现系统构架4.1 系统主要工作流程在客户端进入启动画面的时候,对于有账号用户来说可以首先选择是否登陆。如果不想登陆也可以退出系统。若用户没账号首先要申请帐号,如果不想申请帐号则也直接退出系统。假设用户申请成功,则进入登陆流程,如果登陆成功。用户就可以浏览物品,如果不想购买物品,也可以直接

34、推出系统。如果购买物品,若成功可以选择退出,或则继续浏览物品。流程图如图2。图2系统流程图4.2 系统功能模块设计4.2.1 数据库联网模块的设计1、装入JDBC程序:要使用JDBC访问数据库,首先必须加载JDBC驱动程序,只需一句代码Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver)。2、建立连接:建立连接的标准方法是DriverManager.getConnection(String url,String user,String,password).DriverManager类用于处理驱动程序的调如并且对新的数据库连接提供

35、支持,它位于JDBC的管理层,通过该类,能够连接到URL表示的数据库的驱动程序为了存取数据,还需要提供用户名和口令程序的核心代码:public Connection getConnection() try Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);con=DriverManager.getConnection(getConnectionUrl(),userName,password); if(con!=null) System.out.println(Connection Successful!); catch(Ex

36、ception e) e.printStackTrace(); System.out.println(ErrorTracein getConnection(): ); return con; 4.2.2 注册模块的设计客户第一次使用系统的时候必须先进行注册。在服务端的要的注册模块要完成的工作便是接受客户的注册资料然后与自己的数据库的已有客户资料进行比对,看看有没有账号和用户所的账号是否重复,如果重复在要返回提示信息就用户账号已经存在。如果没有在把要把用户注册的资料插入的用户信息表,而后返回注册成功信息以及用户注册的名字和密码。图3和图4显示了失败和成功的信息。下面是程序要引用的包:import

37、 java.util.*;import javax.servlet.*; import javax.servlet.http.*;import java.io.*; import java.sql.*;import javax.sql.*;import myhttp.*;import org.jdom.Element;import org.jdom.Document;import org.jdom.output.XMLOutputter;import java.sql.SQLException;使用doGet()方法来对应客户端的请求。然后设置发送的文本样式response.setConten

38、tType(text/plain; charset = UTF-8);用request.getParameter()提取客户段发送的参数。查询数据库的设计如下:/*-*在数据库进行查询看看是否用户名已经存在,存在返回true,否则返回false。*-*/private boolean DBConnection(String account) Connection conn = null; ResultSet rs = null; Statement stmt = null; boolean ft = false; try JDBCDemo da = new JDBCDemo(); conn =

39、 da.getConnection(); stmt = conn.createStatement(); String command=select account from shenfeng128 where account =+account+; rs = stmt.executeQuery(command); if(rs.next() ft = true; rs.close(); stmt.close(); conn.close(); System.out.println(database connect success); catch (Exception e) e.printStack

40、Trace(); System.out.print(there isomething wrong here); return ft; 然后是查询成功发送的实现如何/*-*更新数据库,如果更新成功返回更新所影响的行数,否则返回0*-*/ private int DBConnectionUpdate(String account,String password) Connection conn = null; ResultSet rs = null; int count = 0; Statement stmt = null; try JDBCDemo da = new JDBCDemo(); conn = da.getConnection(); stmt = conn.createStatement(); String command = insert into shenfeng128 values(+account+,+password+); count = stmt.executeUpdate(command); if(rs != null) rs.close(); if(stmt != null) stmt.close(); if(conn != null) conn.close(); System.out.println(databaseupdates

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922