jsp开发中、servlet、dao层、biz层、entity层到底各自什么作用

jsp开发中、servlet、dao层、biz层、entity层到底各自什么作用,第1张

JSP开发中的分层都是基于MVC架构的,即(Model-View-Controller),M:模型层,主要是负责一些具体的业务逻辑的实现,V:视图层,可以理解为JSP页面,C:控制器层,用于接受页面请求与响应请求到JSP页面的控制机制。在模型层中,又分为biz,dao,entity等层,biz:Bussiness Model,业务模型,主要用于处理某一类业务的处理流程,dao:Data Access Object,数据访问层,主要针对于数据表的 *** 作,可以理解为一张数据表,就有一个Dao与之对应,在Dao里面包含对该张数据表的增、删、改、查等 *** 作。entity:又叫POJO(Plain Old Java Object),最原始的Java类,用于将数据表封装为Java模型,一般这里面会以属性的形式,记录数据表的字段,通过getter/setter方法来 *** 作,对应字段的信息,这也可以理解为面向对象中的封装。servlet层就是MVC中的控制器,主要用于接受JSP的页面请求和响应请求。所以整个流程是JSP页面发起请求到servlet,获取请求,交个biz层,在biz层中通过一系列对数据表的 *** 作,这就要结合dao和entity的作用,完成业务逻辑,然后,响应给servlet,由servlet,再响应出JSP 页面。整个流程大概如此,其实还有很多,在此不再赘述,希望帮到你。

问题一:程序开发中的框架是什么 我们目前先不要了解那么多 框架是为了方便我们程序员开发 减贰代码量 及代码质量的工具

框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。

可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。

java开发中的框架不是太多 我们可以慢慢学习 先慢慢了解一种。

问题二:什么是框架?框架中要包含什么?为什么要开发框架?如何做框架? 以Java 为例子。 java 之前没有框架,或者说 自己公司封装了自己的框架。为什么要封装穿? 因为1 在实际开发中 很多代码重复再敲,浪费时间就是浪费金钱。

如: jsp+javabean+servlet 开发 jsp中的数据通过request-------》filter(自己解析了 封装成对象)-----》servlet 这还是好一些的。起初是 :request-------->servlet------>servlet 自己解析 通过requestgetparxxxx(参数名) ------》封装到javabean 代码重复比较大。

如果 用springmvc 就好多了 jsp 通过form 表单提交 直接映射到 controller 方法中的参数 (一句话 就是省代码)

框架的好主要作用是: 快速开发。

好的框架设计 的作用: 松耦合,便于后期维护。减少多余的代码量。

框架包含了 许多 反射机制。

设计模式。

如何做框架:根据你的需求来设计。。。。。。

问题三:Java中的三大框架分别有什么用 一、Spring

Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。 Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。

二、STRUCTS

Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。

三、Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来 *** 纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

问题四:什么是android的框架开发 上图中的第二层Framework

问题五:什么是js框架? 直接用js会有兼容性问题,js框架一般预处理了很多兼容性问题,实现了很多常用 *** 作,减少工作量,当然使用框架也会使整叮网站的js略臃肿,具体的站视情况使用吧

问题六:开源,免费的应用快速开发框架是什么意思 ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架,其开发宗旨是简单、快速的进行Android应用程序的开发,包含Android mvc、简易sqlite orm、ioc模块、封装Android clitent的模块,具有快速构建文件缓存功能,无需考虑缓存文件的格式,都可以非常轻松的实现缓存,它还基于文件缓存模块实现了缓存功能,在android中加载的的时候,对oom的问题,和对加载错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类,如日志管理,配置文件管理,android下载器模块,网络切换检测等等工具。

目前ThinkAndroid主要有以下模块:

MVC模块:实现视图与模型的分离。

ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。

数据库模块:android中的orm框架,使用了线程池对sqlite进行 *** 作。

模块:通过client进行封装数据请求,支持异步及同步方式加载。

缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置

缓存模块:imageview加载的时候无需考虑加载过程中出现的oom和android容器快速滑动时候出现的错位等现象。

配置器模块:可以对简易的实现配对配置的 *** 作,目前配置文件可以支持Preference、Properties对配置进行存取。

日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印

下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。

网络状态检测模块:当网络状态改变时,对网络状态进行检测。

问题七:android 五大应用开发框架是什么 android应用开发框架是 Application Framework 其系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。第二部分将详细介绍这5个部分。下面自底向上分析各层。

Android架构

1、Linux Kernel

Android基于Linux 26提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。 如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(Service Access Point),专业点可以说是高内聚、低耦合。 如果你只是做应用开发,就不需要深入了解Linux Kernel层。

2、Android Runtime

Android包含一个核心库的 ,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java class 转换成 dex 格式。一个dex文件通常会有多个class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。 Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。

3、Libraries

Android包含一个C/C++库的 ,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。下面列出一些核心库: 系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备 媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H264、 MP3、 AAC、 AMR、JPG、 PNG 界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层 LibWebCore--新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图 SGL--基本的2D图形引擎 3D库--基于OpenGL ES 10 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅 FreeType --位图和矢量字体渲染 SQLite --所有应用程序都可以使用的强大而轻量级的关系数据库引擎

4、Application Framework

通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。 开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨>>

问题八:tp框架是什么 应给是 thinkPHP 框架 也就是封装PHP了

问题九:如何选择最为合适的Web开发框架 如何选择Web开发框架

开发框架的选择,始终是个仁者见仁、智者见智的事情。尤其是Web层的开发框架,数量非常多,而且各有特色,如:Struts、WebWork、Spring MVC、Tapestry、JSF、WebPage30……等等。

下面先来看看为什么要使用Web开发框架

一 使用框架的必然性

框架,即framework。其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成品程序,这样的半成品就是所谓的程序框架。

软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。这样每次开发就不用白手起家,而是可以在这个基础上开始搭建。

使用框架的最大好处:减少重复开发工作量、缩短开发时间、降低开发成本。同时还有其它的好处,如:使程序设计更合理、程序运行更稳定等。基于这些原因,基本上现在在开发中,都会选用某些合适的开发框架,来帮助快速高效的开发应用系统。

了解了使用框架的必然性,下面来看看如何选择,当然我们的话题集中在Web层的开发框架。在谈这个问题之前,先来看看我们在Web开发中究竟需要做些什么工作:

二 Web层开发的工作

在J2EE开发中,分层是基本的思想,3层架构或者多层架构早已深入人心,在这里我们就把目光集中到Web层,看看到底Web层开发做了那些工作:

1:数据展示

Web层需要从逻辑层获取需要展示的数据,然后以合理的方式在页面进行展示

2:人机交互

用户需要从界面上输入数据,在界面上进行按钮点击,进而触发事件,标准的事件驱动模型,然后跟后台进行数据交换,出现新的界面。

3:收集数据,调用逻辑层接口

Web层收到用户的事件请求,需要调用相应的逻辑层接口来进行处理,Web层是不会有任何逻辑处理的。调用逻辑层接口,需要传递参数,这时需要收集用户在界面上输入的数据,然后进行组织,组织成为逻辑层接口需要的数据封装形式(通常都是ValueObject)。

4:根据逻辑层的数据来重新展示页面

逻辑层处理完了,需要返回数据或信息到界面上。这个时候Web层需要根据返回的值选择合适的页面,然后展示这些数据或者信息。

从上面可以看出,Web层开发的主要工作集中在展示上,也就是图形用户界面。这一部分是用户直观感受应用程序的窗口,也是用户要求最多的地方,其表现形式也是最丰富的。

三 Web层开发的步骤

下面再来总结一下Web层开发的大致步骤(也就是需要开发人员做的工作):

注意:这里讨论的Web层开发,是不使用任何开发框架时候的开发。

1:写页面Html,到底有哪些数据需要在界面上表现

2:每个数据的具体表现形式,如:有的需要表现成为下拉列表,有的需要表现成为单选按钮等。

3:界面表现形式的逻辑布局,所谓逻辑布局是指某些数据的表现形式应该放在前面,某些应该放在后面;某些放在上面,某些放在下面。如:某个请假申请 的业务,有请假开始时间和结束时间,很明显开始时间的表现就应该排在结束时间的前面。而美工是负责最后页面的美观,一般美工不能动界面的逻辑布局。

4:完成前面3步,页面的表现形式的大致模样就有了,下面需要来做功能性的开发。第一个就是这些表现形式的值的来源,如:下拉列表显示的值从什么地方来。值的来源方式很多,有数据库中来、固定值、某断程序运行的中间结果、前面页面传递过来等等,当然典型的还是来自数据库。

好了,确定了值的来源,开发人员就要写代码来获取这些值,然后把这些值赋值到对应的表现形式里面。

5:还有一些>>

问题十:android开发一般都使用什么框架 目前框架使用的主要都是开源框架,都可以在github上找到: 1、volley,项目地址 2、android-async- 3、Afinal框架 项目地址 4、xUtils框架 项目地址 5、ThinkAndroid 项目地址 6、LoonAndroid 项目地址 主要有以下模块: (1) 自动注入框架(

您好,Spring框架中实现了多种Servlet,包括DispatcherServlet、FrameworkServlet、>

一:Web Service基础知识

一个最简单web服务就一个web页面等待请求与处理。更容易理解的方式是Web

Service可以把一个应用变成一个基本WEB方式的请求与处理的应用。常见的两种

Web Service处理方式为:

a 基于WSDL/SOAP的方式

b Rest方式

方式a是比较正统的,客户端调用必须先取得WSDL文件,然后生成调用的API才可

以使用。它不是我要说的重点,基本调用流程如下:

方式b是Rest方式,Rest的Web Service的设计原则是基于CRUD,其支持四种 *** 作分

别为:

GET – 获取信息/请求信息内容,绝大多数浏览器获取信息时使用该方式。

POST – 增加信息内容,显示以前的信息内容,可以看作是insert *** 作

PUT – 更新信息内容,相当与update

DELETE – 删除信息内容可以看作是delete

Rest方式更加简单便捷,如果从设计原则上看>

JAVAEE常说的三大框架就是SSH:Struts2+spring+hibernate;

其中Struts2是显示层的框架,为数据传入、数据返回客户端提供支持。

hibernate是数据层的框架,负责与数据库连接,简化JDBC开发。

spring则是一个轻量级框架,他提供很多功能,能对上面的框架提供更好的支持,同时解决耦合、业务变更等其他问题。

servlet是后台处理程序,负责接收客户端发送的信息,处理并返回相应的信息。

jsp在现在的环境下,作用就如同一个显示器+键盘+鼠标,负责显示、输入数据。

Java Web项目运行的流程大概是这样的客户端jsp页面发送请求-->servlet接收-->其他层次处理数据(biz、dao等业务处理,访问数据库等)-->servlet将处理后的结果返到客户端jsp-->jsp负责显示处理后的数据。

搞清楚这个流程之后,servlet和jsp的作用就一目了然了。

jsp和servlet的区别有以下几点:

Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。

1、jsp经编译后就变成了Servlet。

2、jsp更擅长表现于页面显示,servlet更擅长于逻辑控制。

3、Servlet中没有内置对象,Jsp中的内置对象都是必须通过>

4、而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。

扩展资料

Servlet和JSP的不同点:

1、Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

2、而JSP的情况是Java和HTML可以组合成一个扩展名为jsp的文件。

3、JSP侧重于视图,Servlet主要用于控制逻辑

4、Servlet更多的是类似于一个Controller,用来做控制。

参考资料来源:百度百科-servlet

肤浅的讲,其实servlet可以实现的东西,现在的框架都可以完成,他的很多东西都已经被取代了,但这并不因为这他不重要。楼主你要清楚java的MVC架构,之前的servlet处于那一层呢?答案是C,现在这一层已经被ssh框架的那一部分代替了呢?不用多说吧。 然后需要你明白的是,jsp其实就是servlet的进化产物,之前的网页都是用servlet编写的,由于编写麻烦,经过封装出现了jsp,解决了servlet的编写麻烦问题。但是servlet毕竟是根基,因为jsp页面运行时最终还是要转换成servlet文件。 其实servlet的只是还是蛮重要的,他可以帮你理解很多jsp的内容,也可以说你把servlet搞清楚了学习jsp就是一个太快乐的事情了。而且servlet不是那么难,比起后面的框架,servlet真的太简单。 java的学习要讲究循序渐进,不要指望短期内得到巨大提升,很多东西培训的时候了解,记下,上班了再去丰富。祝楼主好运吧,程序员的路才刚刚开始。

在本文中 我将集中讨论现代的Java开发框架 分析它们的特征和各自的使用优点 另外 我还想比较目前流行的生产质量框架 例如Struts Spring和Hibernate 并详细讨论其基本相似性及有关基本概念

我将简短分析被用于支持这些框架的企业开发环境或工具箱 例如Borland JBuilder Eclipse以及BEA Workbench 请记住 市场上有许多有关这些开发框架的图书;然而 在任何一篇文章中 要对它们进行深入描述是不可能的 不过 我将尽力讨论最广泛地使用的概念

共同点

几乎所有现代的网络开发框架都遵循了模型 视图 控制(MVC)设计模式 商业逻辑和描述被分开 由一个逻辑流控制器来协调来自客户端的请求和服务器上将采取的行动 这条途径成为了网络开发的事实上的标准 每个框架的内在的机制当然是不同的 但是开发者们使用来设计和实现他们的Web应用软件的API是很类似的 差别还存在于每个框架提供的扩展方面 例如标签库 JavaServer Faces或JavaBean包装器等

所有的框架使用不同的技术来协调在Web应用程序之内的导航 例如XML配制文件 java属性文件或定制属性 所有的框架在控制器模块实现的方法方面也存在明显的不同 例如 EJB可能实例化在每个请求中需要的类或使用Java反射动态地调用一个适当的行动(Action)类 另外 不同框架在各自引入的概念上也有所不同 例如 一个框架可能定义用户请求和反应(以及错误)场所 而另外一个框架可能仅仅定义一个完整的流 从一个请求到多个响答和随后的再请求……

各种Java框架在它们组织数据流的方法方面是很类似的 在请求发出后 在应用程序服务器上产生一些行动;而作为响应 一些可能包含对象集的数据总是被发送到JSP层 然后 从那些对象 可能是有setter和getter方法的简单类 javabeans 值对象 或者一些集合对象 中提取数据 现代的Java框架还想方设法简化开发者的开发任务 如通过使用简易的API 数据库连接池 甚至数据库调用包等提供自动化的追踪方式来实现 一些框架或者能够钩进(hooked into)另外的J EE技术中 例如JMS(Java消息服务)或JMX 或把这些技术集成到一起 服务器数据持续性和日志也有可能成为框架的一部分

企业开发环境

一些框架在Web开发者社区和企业发展领域变得相当流行 随着这些框架的日渐成熟并开始发行稳定的版本 商业的IDE(集成发展环境)开始为这些框架提供支持并把他们纳入到自己的产品中 一些IDE甚至基于框架的概念开发出整个的产品 例如 BEA WebLogic Workshop就是基于Struts框架建立起来的

Borland Jbuilder为Struts提供了内建的支持 也支持JSF和JSTL

Eclipse平台已成为一个很流行的开发工具 部分因为它是基于插件的 部分因为它对于Web框架的支持 现在 出现了众多的Eclipse插件 甚至完整的基于Eclipse的IDE 许多插件被设计适合于Struts框架开发 例如MyEclipse()或M

大多数IDE都具有图形化的流程和可视化对象(类代理) 例如 下面是一个JBuilder的行动(Action)设计器 用于规划Web应用程序的页面顺序

WebLogic Workshop引入Java页面流程技术 它扩展了Struts框架而提供了一个简化的开发模型并增加了另外一些特性 Workshop使用页面流(Page Flows) 实现轻易地把用户接口与导航和商业逻辑分离开来 页面流由JSP页组成 这些页面包含用户接口元素和一个控制器文件(JPF) 它包含由用户提供的数据将怎样被处理的指令以及下一步什么页面将被返回到用户的信息 页面流动提供给开发者一个可视化的Web应用程序总体轮廓 它让开发者能够看到直观地分析不同的JSP页彼此相关联 并实现Web应用程序整体结构的快速建立

MyEclipse提供类似的特征 并带有更多吸引人的代价标签

Apache Struts框架

Struts框架是一开源产品 基于模型 视图 控制器(MVC)设计范例来开发Web应用软件 它使用并且扩展了Java Servlet API 最初由Craig McClanahan创建 在 年 月 它被捐赠到Apache Foundation Struts框架展示了一个强有力的定制标签库 平铺显示 表单检验和I N(国际化) 另外 Struts支持许多描述层 包括JSP XML/XSLT JavaServerFaces(JSF)和Velocity;还支持一些模型层 包括JavaBeans和EJB

Spring框架

Spring框架是一个分层的Java/J EE应用程序框架 基于Expert One on One J EE设计和发行的代码 Spring框架提供一种简单的开发技术 用于自动化处理工程中大量的属性文件和助理类

Spring框架包括的主要特色有:

  强有力的基于JavaBeans的配置管理 使用Inversion of Control(IoC)原则   一个核心bean工厂 可用在任何环境 从applets到J EE容器程序   通用的抽象层适合于数据库事务管理 允许可插入的事务管理器 并且不需要处理低层次的问题就可容易地划分各事务的界限   一个很有意义的异常处理的JDBC抽象层   与Hibernate集成到一起 DAO实现支持以及事务策略

Hibernate框架

Hibernate是一适合于Java语言的对象 关系映射(ORM)解决方案 它也是开源软件 类似Struts 并且在LGPL保护下发布 Hibernate被一群来自世界各地的Java软件开发者所共同开发 它提供一个易用的框架来实现把一个面向对象的域模型映射到一传统的关系数据库 它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射 而且还提供数据查询和检索能力 并能大大减少花在SQL和JDBC手工数据处理上的开发时间

Hibernate的目标是减轻开发者的与大量普通的数据持续性相联系的编程任务 Hibernate还能够适应开发进程 无论它是刚开始设计还是来自一现成的数据库 Hibernate可以自动生成SQL 使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务 并能使应用程序移植到所有的SQL数据库 它还能提供透明的持续性 对持续性类的唯一的要求的是实现一个无参数的构造器

这个框架典型地使用在JavaSwing应用软件 基于Servlet的Java应用软件和使用EJBsession beans的J EE应用软件中

结论

lishixinzhi/Article/program/Java/hx/201311/26488

以上就是关于jsp开发中、servlet、dao层、biz层、entity层到底各自什么作用全部的内容,包括:jsp开发中、servlet、dao层、biz层、entity层到底各自什么作用、开发框架是什么、spring框架中实现了哪些servlet等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10090820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存