动态网页静态存储的实现方法、设备和系统的制作方法

文档序号:6485548阅读:162来源:国知局
动态网页静态存储的实现方法、设备和系统的制作方法
【专利摘要】本申请实施例公开了一种动态网页静态存储的实现方法、设备和系统,通过应用本申请实施例的技术方案,处理服务器根据接收到的Web服务器所发送的页面访问请求确定相应的key,并判断所述key的值是否为存储服务器中已存储的值,然后,根据相应的判断结果从相应的存储服务器或数据源获取相应的数据,向Web服务器进行页面片段的反馈,从而,在不需要对业务系统的页面代码进行改写的情况下,即可实现动态页面的静态化缓存和读取,本申请实施例所提出的技术方案对业务系统没有侵入性,只需要根据相应页面的关键信息就可以实现动态页面的静态化缓存,简化了相应操作的程序,提高了网络页面传输的效率。
【专利说明】动态网页静态存储的实现方法、设备和系统
【技术领域】
[0001]本申请涉及通信【技术领域】,特别涉及一种动态网页静态存储的实现方法、设备和系统。
【背景技术】
[0002]随着互联网业务的高速发展,在现实生活,以及基于网络进行的业务处理的过程中,电子商务扮演着越来越重要的角色。
[0003]对于电子商务类网站来说,发布产品信息到网上以后,其内容的改动很少,或者基本不改动,常见改动的地方就是价格,而对于其他部分的页面元素调整性比较小。而且,对于电子商务类网站的网页来讲,读的次数远大于写的次数。如果每次都从Web (网络)应用服务器动态生成内容的话,一方面,会给后台Web应用服务器造成很大的处理压力,另一方面,相应的响应时间也必然会变的比较长,用户的体验不好。
[0004]现有技术方案可以采用ESI (Edge Side Includes)来解决这样的问题。
[0005]ESI是一种小巧的标记语言,主要用来组装动态的Web网页。首先,在ESI具体的应用过程中,需要侵入用户原有的Web页面代码,并要进行改造。而对于Web服务器(比如apache),则需要增加一个模块,用来解析ESI标记语言。不仅如此,在进行后台Web页面改造的时候,还需要改动ESI标签的内容。
[0006]通过这样的处理,ESI将Web网页的部分(这里指页面的片段)进行缓冲/缓存。
[0007]以往的数据缓冲服务器和信息传送服务以页为单位制作,复制到数据缓冲服务器中,由于其对应要求而进行传送,所以,像网络软件等根据用户的输入,内容会动态地转变的网页传送信息的时候,就很难达到高效率。
[0008]而在应用ESI的场景中则是部分地缓冲网页,使用基于XML的标记语言,指示想要缓冲的页面部分。由此,页面内分为动态的变更的部分和静态的不变更的部分(网站内的共通菜单等),只将静态的部分有效地发送到服务器中。
[0009]在实现本申请实施例的过程中, 申请人:发现现有技术至少存在以下问题:
[0010]除了 ESI技术,现有的其他技术并不支持动态页面静态化缓存,每次生成的内容都要Web服务器静态生成。而如果采用ESI技术的话,则需要进行Web页面的手工编码,增加了工作量,降低了页面编辑效率,并不适合在已经成熟的业务系统上使用。

【发明内容】

[0011]本申请实施例提供一种动态网页静态存储的实现方法、设备和系统,解决在现有技术中不能高效地实现动态页面的静态存储的问题。
[0012]为达到上述目的,本申请实施例一方面提供了一种动态网页静态存储的实现方法,包括:
[0013]处理服务器接收Web服务器所发送的页面访问请求,并根据所述页面访问请求确定相应的key ;[0014]所述处理服务器判断所述key的值是否为存储服务器中已存储的值;
[0015]如果判断结果为是,所述处理服务器从所述存储服务器中获取与所述key的值相对应的页面片段,并通过Web服务器向所述页面访问请求的发起端返回所述页面片段。
[0016]另一方面,本申请实施例还提供了一种处理服务器,包括:
[0017]确定模块,用于根据接收到的Web服务器所发送的页面访问请求,确定相应的key ;
[0018]判断模块,用于判断所述确定模块所确定的key的值是否为存储服务器中已存储的值;
[0019]获取模块,用于在所述判断模块的判断结果为是时,从所述存储服务器中获取与所述key的值相对应的页面片段;
[0020]发送模块,用于将所述获取模块所获取的页面片段发送给所述Web服务器,并通过Web服务器向所述页面访问请求的发起端返回所述页面片段。
[0021]另一方面,本申请实施例还提供了一种网络系统,包括Web服务器、处理服务器、存储服务器和数据源:
[0022]所述Web服务器,用于接收发起端所发送的页面访问请求,在完成对所述页面访问请求的分析后,将所述页面访问请求发送给相应的处理服务器,并根据所接收到的反馈信息,向所述页面访问请求的发起端返回相对应的页面片段;
[0023]所述处理服务器,用于根据所述Web服务器所发送的页面访问请求确定相应的key,判断所述key的值是否为所述存储服务器中已存储的值,并根据相应的判断结果,向所述Web服务器反馈相应的信息;
[0024]所述存储服务器,用于对应存储页面片段和key值;
[0025]所述数据源,用于存储和提供页面的数据信息。
[0026]与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
[0027]通过应用本申请实施例的技术方案,处理服务器根据接收到的Web服务器所发送的页面访问请求确定相应的key,并判断所述key的值是否为存储服务器中已存储的值,然后,根据相应的判断结果从相应的存储服务器或数据源获取相应的数据,向Web服务器进行页面片段的反馈,从而,在不需要对业务系统的页面代码进行改写的情况下,即可实现动态页面的静态化缓存和读取,本申请实施例所提出的技术方案对业务系统没有侵入性,只需要根据相应页面的关键信息就可以实现动态页面的静态化缓存,简化了相应操作的程序,提高了网络页面传输的效率。
【专利附图】

【附图说明】
[0028]图1为本申请实施例提出的一种动态网页静态存储的实现方法的流程示意图;
[0029]图2为本申请实施例所提出的技术方案所应用的具体系统场景的示意图;
[0030]图3为本申请实施例所提出的一种具体应用场景下的动态网页静态存储的实现方法的流程示意图;
[0031]图4为本申请实施例所提出的一种网络系统的结构示意图;
[0032]图5为本申请实施例提出的一种处理服务器的结构示意图。【具体实施方式】
[0033]如【背景技术】所述,在现有的技术方案中,动态页面的静态缓存只能依赖于对页面代码本身的修改来实现,需要增加代码编写的工作量以及后续指令解析所带来的处理过程,降低了相应的处理效率,在实现动态页面的动态缓存时,需要额外付出处理过程复杂化的代价,影响了动态页面的动态缓存技术本身所带来效果的实现,并不适合在已经成熟的业务系统上使用。
[0034]基于此,本申请实施例提出了一种基于key(键)的动态页面静态存储的方法,在该方法中,通过页面关键信息生成key,且将页面片段与key对应存储在存储服务器中,当接收到页面访问请求时,处理服务器根据页面访问请求生成key,并根据存储服务器中已存储的key值进行匹配,如果匹配成功,则可以直接获取已存储的页面片段进行反馈,如果匹配不成功,则向数据源获取数据生成相应的页面片段,并在反馈该页面片段的过程中,将该页面片段与新的key值对应存储到存储服务器中。通过这样的处理方案,在存储服务器中,基于key值和页面片段的 对应关系,对动态页面进行静态存储,key值成为了获取相应页面片段的索引依据,从而,实现了动态页面的静态存储数据的高效存储和获取过程,在不侵入业务系统内部代码的情况下,实现了动态页面的静态化缓存。
[0035]如图1所示,为本申请实施例提出的一种动态网页静态存储的实现方法的流程示意图,该方法具体包括以下步骤:
[0036]步骤S101、处理服务器接收Web服务器所发送的页面访问请求,并根据所述页面访问请求确定相应的key。
[0037]在实际的应用场景中,本步骤的具体处理过程如下:
[0038]所述Web服务器接收相应的发起端所发送的页面访问请求,并在完成对所述页面访问请求的分析后,将所述页面访问请求发送给相应的处理服务器。
[0039]所述处理服务器根据接收到的所述页面访问请求中所携带的信息,确定相应的key。
[0040]其中,所述页面访问请求中所携带的信息,至少包括所请求访问页面的地址信息、来源?目息,以及缓存?目息等?目息。
[0041 ] 在具体的处理场景中,上述的地址信息可以具体为URL (Uniform/UniversalResource Locator,统一资源定位符)信息,缓存信息可以具体为cookie信息,当然,凡是可以实现相同的技术效果的信息类型均可以应用到本申请的技术方案中,这样的信息类型的变化并不会影响本申请的保护范围。
[0042]进一步的,上述的处理服务器根据所述页面访问请求确定相应的key的方式,具体包括:
[0043](I)所述处理服务器根据所述页面访问请求中所携带的信息,生成以下的字符串:
[0044]string = componentName|xxx.jsp ? xxx = xxx&xxx = xxx|_lang = zh_CNI refer I特殊标记。
[0045]其中,componentName表示所请求访问页面的地址信息;
[0046]xxx.jsp表示jsp的页面名称信息;
[0047]xxx = xxx表示所请求访问页面的缓存信息中的键值对信息;[0048]Iang = zh CN表示所请求访问页面的缓存信息中的一部分信息;
[0049]Refer表示所请求访问页面的来源信息;
[0050]特殊标记表示备用字段。
[0051](2)所述处理服务器根据相应的消息摘要算法,计算所述字符串string的摘要,并将所述摘要确定为相应的key。
[0052]在实际的应用场景中,上述的消息摘要算法,具体可以为MD5算法。
[0053]当然,上述的字符串的生成方式和具体的字符串的构成形式,均是为了方便说明而给出的具体示例,其具体内容的变化并不会影响本申请的保护范围。
[0054]在完成了上述的处理后,处理服务器获取到了进行页面片段获取的索引信息,SPkey,从而,可以据此通过后续步骤进行相应的页面片段的获取和反馈处理。
[0055]步骤S102、所述处理服务器判断所述key的值是否为存储服务器中已存储的值。
[0056]如果判断结果为是,则表示存储服务器当前存储有该页面访问请求所请求的页面的页面片段,执行步骤S103;
[0057]如果判断结果为否,则表示存储服务器当前没有存储有该页面访问请求所请求的页面的页面片段,执行步骤S104。
[0058]此步骤的目的在于查询存储服务器中是否已经存储了相应的页面片段,由于key值与页面片段存在对应的关系,因此,通过key值进行查询可以在减少数据传输量和匹配数据量的情况下,保证查询的精度和效率。
[0059]需要说明的是,在本申请实施例所提出的技术方案中,存储服务器中可以对动态网页中的部分或全部页面片段进行静态存储。
[0060]所谓动态网页是指网页文件里包含了程序代码,通过后台数据库与Web服务器的信息交互,由后台数据库提供实时数据更新和数据查询服务。动态网页能够根据不同时间和不同访问者而显示不同内容。如常见的BBS、留言板和购物系统通常用动态网页实现。
[0061]但是,对于动态网页中的一些页面片段,如果其所对应的用户身份,访问源等信息确定,则该页面片段中的具体内容也随即确定,因此,可以将这样内容确定的页面片段静态的进行保存。
[0062]本申请实施例中的存储服务器即是完成上述的对动态网页中的片段进行静态保存的处理,并且,其在保存了一个页面片段后,会根据其所对应的信息,按照与步骤SlOl相类似的确定key方式生成该页面片段所对应的key,并与该页面片段的信息一起对应的在存储服务器中进行保存。
[0063]与现有的保存方式的不同在于,本实施例中所提出的保存方式不需要对所保存的页面片段进行任何的代码修改,而是直接将页面片段本身的内容进行保存,并根据相应的信息生成了 key作为索引信息,而key本身是与页面片段的信息相独立的信息,两者虽然具有对应关系,但是是在存储服务器中分别进行独立保存的,只是存储服务器另行存储了两者的对应关系,因此,key的生成和存储没有对存储服务器所静态存储的页面片段的内容产生任何改写或影响。
[0064]而在步骤SlOl中确定了页面访问请求所对应的key后,本步骤将处理服务器所确定的key与存储服务器中所保存的各key进行匹配,并根据匹配结果进行后续处理。
[0065]步骤S103、所述处理服务器从所述存储服务器中获取与所述key的值相对应的页面片段,并通过Web服务器向所述页面访问请求的发起端返回所述页面片段。
[0066]通过本步骤,处理服务器根据key值直接在存储服务器中获取到了相应的页面片段,从而,可以直接向Web服务器进行页面片段的反馈,Web服务器在将接收到的页面片段进行组装后,即可通过相应的浏览器窗口呈现给用户进行浏览。
[0067]在步骤S102的查询结果为是的情况下,处理服务器确定存储服务器中当前已经静态保存了与接收到的页面访问请求所对应的动态页面中的一个或多个页面片段,因此,可以直接在存储服务器中获取相应的保存结果,即获取相应的页面片段,并完成后续的页面组装和反馈。
[0068]步骤S104、所述处理服务器向数据源查询所述页面访问请求所对应的数据信息。
[0069]在步骤S102的查询结果为否的情况下,处理服务器不能通过存储服务器进行相应的页面片段的获取,因此,只能直接向数据源获取相应的数据。
[0070]在步骤S102的查询结果为否的情况下,处理服务器确定存储服务器中当前没有保存前述页面访问请求所对应的动态页面的页面片段,因此,处理服务器只能直接向数据源获取相应的页面片段,并根据获取的结果完成后续的页面组装和反馈。
[0071]此处获取的页面片段与步骤S103中的页面片段不同,其不是存储服务器中所预先静态存储的页面片段,而是数据源所直接生成并发送给处理服务器的动态网页的页面片段。
[0072]步骤S105、所述处理服务器将查询得到的数据信息发送给所述Web服务器,以使所述Web服务器根据所述数据信息生成相应的页面片段,并将所述页面片段反馈给所述页面访问请求的发起端。
[0073]通过本步骤,处理服务器将从数据源获取到相应的数据,并在完成数据模型的组装后,发送给Web服务器,Web服务器根据接收到的数据进行html页面的渲染,组成上述页面访问请求所请求的页面后,可通过相应的浏览器窗口呈现给用户进行浏览。
[0074]需要说明的是,在实际应用中,为了在存储服务器中保存最全面的动态页面的静态数据,对于上述未在存储服务器中获取到相应存储数据的页面片段,需要在存储服务器中进行更新,以便将新的页面片段和key值对应存储到存储服务器中,以便在后续的使用过程中,可以高效的在存储服务器中获取到相应的页面片段。
[0075]基于上述思路,所述Web服务器将所述页面片段反馈给所述页面访问请求的发起端之前,所述处理服务器还需要将根据所述页面访问信息所确定的key,与所述Web服务器根据所述数据信息生成相应的页面片段,对应存储到所述存储服务器中。
[0076]通过这样的处理,处理服务器及时的将更新的key值和页面片段发送给存储服务器进行对应存储,从而,使存储服务器可以对动态页面存储更多的静态页面片段信息,以便在后续对该动态页面进行访问请求的过程中,可以直接在存储服务器中获取相应的页面片段,简化相应的处理过程,提高页面信息反馈的效率。
[0077]与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
[0078]通过应用本申请实施例的技术方案,处理服务器根据接收到的Web服务器所发送的页面访问请求确定相应的key,并判断所述key的值是否为存储服务器中已存储的值,然后,根据相应的判断结果从相应的存储服务器或数据源获取相应的数据,向Web服务器进行页面片段的反馈,从而,在不需要对业务系统的页面代码进行改写的情况下,即可实现动态页面的静态化缓存和读取,本申请实施例所提出的技术方案对业务系统没有侵入性,只需要根据相应页面的关键信息就可以实现动态页面的静态化缓存,简化了相应操作的程序,提高了网络页面传输的效率。
[0079]下面,结合具体的应用场景,对本申请实施例所提出的技术方案进行说明。
[0080]本申请实施例所提出的技术方案所应用的具体系统场景的示意图如图2所示,具体包括:
[0081]用户进行网络访问的终端设备、Web服务器、处理服务器、存储服务器和数据源。
[0082]在实际的应用场景中,上述的处理服务器实际可以具体为动态页面缓存的框架处理程序,对于一个Web服务器来讲,可以根据不同的网络访问需要,对应连接多个处理服务器,从而,可以将不同的页面访问请求,或者对同一个页面访问请求的不同数据需要,分配到不同的处理服务器上进行处理,进一步提高相应的处理效率。
[0083]另一方面,上述的存储服务器,具体为能够实现KV(Key-Value,键-值)存储的设备或功能模块,具体可以为独立的服务器,也可以是集成于某个服务器中的存储设备或内存。
[0084]需要说明的是,上述处理服务器和存储服务器的物理实体类型,以及系统中具体处理服务器的部署方式,均可以根据实际需要进行调整,这样的变化并不影响本申请的保护范围。
[0085]如图3所示,为本申请实施例所提出的一种具体应用场景下的动态网页静态存储的实现方法的流程示意图,包括以下步骤:
[0086]步骤S301、用户通过相应的终端设备向Web服务器发起页面访问请求,请求对具体的网页进行浏览,例如,请求访问某门户网站的主页。
[0087]步骤S302、Web服务器的servlet引擎分析该网页访问请求所对应的待访问页面的信息,然后,进行该页面访问请求的计算,并向相应的处理服务器进行相应的页面访问请求的分发。
[0088]在本步骤中,根据相应的分析和计算结果,该页面访问请求可能被分发给一个处理服务器,也可能被分发给多个处理服务器,在本实施例中,为了方便说明,仅以发送给一个处理服务器的处理过程为例进行说明。
[0089]需要说明的是,上述的对页面访问请求的计算结果中,至少包括URL、Refer、cookie等信息,这些信息可以在后续步骤中,作为相应的处理服务器生成key的信息依据。
[0090]步骤S303、处理服务器根据Web服务器所发送的信息来计算key。
[0091]在本实施例中,提出的一种key的生成算法为:
[0092]生成字符串string,具体的字符串结构形式如下:
[0093]string = componentName | xxx.jsp ? xxx = xxx&xxx = xxx |_lang = zh_CNI refer I特殊标记。
[0094]然后,处理服务器计算string的md5摘要,并以此摘要作为key。
[0095]其中,上述的字符串string中的各字段的说明如表I所示。
[0096]表I字符串string中的各字段的说明
[0097]
【权利要求】
1.一种动态网页静态存储的实现方法,其特征在于,包括: 处理服务器接收Web服务器所发送的页面访问请求,并根据所述页面访问请求确定相应的key ; 所述处理服务器判断所述key的值是否为存储服务器中已存储的值; 如果判断结果为是,所述处理服务器从所述存储服务器中获取与所述key的值相对应的页面片段,并通过Web服务器向所述页面访问请求的发起端返回所述页面片段。
2.如权利要求1所述的方法,其特征在于,所述处理服务器判断所述key的值是否为存储服务器中已存储的值之后,还包括: 如果判断结果为否,所述处理服务器向数据源查询所述页面访问请求所对应的数据信息; 所述处理服务器将查询得到的数据信息发送给所述Web服务器,以使所述Web服务器根据所述数据信息生成相应的页面片段,并将所述页面片段反馈给所述页面访问请求的发起端。
3.如权利要求2所述的方法,其特征在于,所述Web服务器将所述页面片段反馈给所述页面访问请求的发起端之前,还包括: 所述处理服务器将根据所述页面访问信息所确定的key,与所述Web服务器根据所述数据信息生成相应的页面 片段,对应存储到所述存储服务器中。
4.如权利要求1所述的方法,其特征在于,所述处理服务器接收Web服务器所发送的页面访问请求,并根据所述页面访问请求确定相应的key,具体为: 所述Web服务器接收相应的发起端所发送的页面访问请求,并在完成对所述页面访问请求的分析后,将所述页面访问请求发送给相应的处理服务器; 所述处理服务器根据接收到的所述页面访问请求中所携带的信息,确定相应的key ;其中,所述页面访问请求中所携带的信息,至少包括所请求访问页面的地址信息、来源?目息,以及缓存?目息。
5.如权利要求4所述的方法,其特征在于,所述处理服务器根据所述页面访问请求确定相应的key的方式,具体包括: 所述处理服务器根据所述页面访问请求中所携带的信息,生成以下的字符串string=componentName I XXX.jsp ? xxx = xxx&xxx = xxx|_lang = zh_CN | refer | 特殊标记;所述处理服务器根据相应的消息摘要算法,计算所述字符串string的摘要,并将所述摘要确定为相应的key ; 其中,componentName表示所请求访问页面的地址信息; xxx.jsp表示jsp的页面名称信息; xxx = xxx表示所请求访问页面的缓存信息中的键值对信息; _lang = zh_CN表示所请求访问页面的缓存信息中的一部分信息; Refer表示所请求访问页面的来源信息; 特殊标记表示备用字段。
6.如权利要求5所述的方法,其特征在于, 所述消息摘要算法,具体为MD5算法;和/或, 所述地址信息,具体为URI信息;和/或,所述缓存信息,具体为cookie信息。
7.—种处理服务器,其特征在于,包括: 确定模块,用于根据接收到的Web服务器所发送的页面访问请求,确定相应的key ; 判断模块,用于判断所述确定模块所确定的key的值是否为存储服务器中已存储的值; 获取模块,用于在所述判断模块的判断结果为是时,从所述存储服务器中获取与所述key的值相对应的页面片段; 发送模块,用于将所述获取模块所获取的页面片段发送给所述Web服务器,并通过Web服务器向所述页面访问请求的发起端返回所述页面片段。
8.如权利要求7所述的处理服务器,其特征在于,还包括查询模块: 所述查询模块,用于在所述判断模块的判断结果为否时,向数据源查询所述页面访问请求所对应的数据信息; 所述发送模块,还用于将所述查询模块查询得到的数据信息发送给所述Web服务器,以使所述Web服务器根据所述数据信息生成相应的页面片段,并将所述页面片段反馈给所述页面访问请求的发起端。
9.如权利要求8所述的处理服务器,其特征在于,还包括: 存储模块,用于将所述确定模`块根据所述页面访问信息所确定的key,与所述Web服务器根据所述数据信息生成相应的页面片段,对应存储到所述存储服务器中。
10.如权利要求7所述的处理服务器,其特征在于,所述确定模块,具体用于: 根据所述页面访问请求中所携带的信息,生成以下的字符串string =componentName I xxx.jsp ? xxx = xxx&xxx = xxx|_lang = zh_CN | refer | 特殊标记; 根据相应的消息摘要算法,计算所述字符串string的摘要,并将所述摘要确定为相应的 key ; 其中,所述页面访问请求中所携带的信息,至少包括所请求访问页面的地址信息、来源?目息,以及缓存?目息; componentName表示所请求访问页面的地址信息; xxx.jsp表示jsp的页面名称信息; xxx = xxx表示所请求访问页面的缓存信息中的键值对信息; _lang = zh_CN表示所请求访问页面的缓存信息中的一部分信息; Refer表示所请求访问页面的来源信息; 特殊标记表示备用字段。
11.一种网络系统,其特征在于,包括Web服务器、处理服务器、存储服务器和数据源: 所述Web服务器,用于接收发起端所发送的页面访问请求,在完成对所述页面访问请求的分析后,将所述页面访问请求发送给相应的处理服务器,并根据所接收到的反馈信息,向所述页面访问请求的发起端返回相对应的页面片段; 所述处理服务器,用于根据所述Web服务器所发送的页面访问请求确定相应的key,判断所述key的值是否为所述存储服务器中已存储的值,并根据相应的判断结果,向所述Web服务器反馈相应的信息; 所述存储服务器,用于对应存储页面片段和key值;所述数据源,用于存储和提供页面的数据信息。
12.如权利要求11所述的网络系统,其特征在于,所述处理服务器,具体用于: 在判断结果为是时,从所述存储服务器中获取与所述key的值相对应的页面片段,并通过Web服务器向所述页面访问请求的发起端返回所述页面片段;或, 在判断结果为否时,向所述数据源查询所述页面访问请求所对应的数据信息,并将查询得到的数据信息发送给所述Web服务器,以使所述Web服务器根据所述数据信息生成相应的页面片段,并将所述页面片段反馈给所述页面访问请求的发起端。
13.如权利要求12所述的网络系统,其特征在于,所述处理服务器,还用于: 在所述Web服务器将所述页面片段反馈给所述页面访问请求的发起端之前,将根据所述页面访问信息所确 定的key,与所述Web服务器根据所述数据信息生成相应的页面片段,对应存储到所述存储服务器中。
【文档编号】G06F17/30GK103428243SQ201210157489
【公开日】2013年12月4日 申请日期:2012年5月21日 优先权日:2012年5月21日
【发明者】孟凡光 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1