欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    MVC框架中英文对照外文翻译文献.docx

    • 资源ID:3061754       资源大小:57.76KB        全文页数:39页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MVC框架中英文对照外文翻译文献.docx

    MVC框架中英文对照外文翻译文献中英文对照外文翻译文献 (文档含英文原文和中文翻译) 译文: Web 2.0下的Spring MVC框架 摘要 - 当要建立丰富用户体验的WEB应用时,有大量的WED应用框架可以使用,却很少有该选择哪一种的指导。WEB 2.0应用允许个体管理他们自己的在线网页,并能与其他在线用户和服务器共享。这样分享需要访问控制器来实现。然而,现有的访问控制器解决方案不是令人很满意。因为在开放且由用户主导的WEB环境下,它满足不了用户的功能需求。MVC框架是在所有的WEB开发框架中最受欢迎的。模型-视图-控制器是一种软件架构,如今被认为是一种体系结构在软件工程模式中使用。该模式从用户界面分离出了“领域逻辑”,它允许独立地开发,测试和维护每个分离的部分。模型-视图-控制器模型创建的应用分离为不同的层次应用,同时在每两者之间建立松散的耦合。 关键字 - Spring MVC, 结构, XStudio, SOA, 控制器 I.绪论 如何确切地定义一个网站为“WEB 2.0”的呢?关于这有着许多不同见解,使它很难精确地下一个确切的定论。但当我们将所有的WEB开发框架过一遍之后它就会变得清晰了。各种基于WEB开发的架构如下: l Ntier架构 在软件工程中,多层架构是一种表示层,应用处理层和数据管理层在逻辑上分开处理的客户端-服务器架构。例如,一个应用在用户与数据库之间使用中间件提供数据请求服务就用到了多层体系结构。最为广泛应用的多层体系结构是三层架构。N-tier应用架构为开发者提供了用来创建了一个灵活且可复用的模型。通过打破应用层次,开发者只需修改或添加一个特定的层,而不是要去重写一遍整个应用。它需要有一个表示层,一个业务层或者数据访问层和一个数据层。层和层(tier)之间的概念常常是可以互换的。 l 服务导向架构 在软件工程中,服务导向架构是一套原则,是一种软件设计开发的方法,基于以可互操作服务形式。这些服务是明确的业务功能,由可重用于不同方面的软件组件组成。SOA设计原则被应用到了系统开发和集成的各个阶段。SOA也普遍为消费者的服务提供了一种方式,如基于WEB的应用,以了解可用的基于SOA的服务。例如,一个公司的几个不同部门可能开发和部署了SOA服务在不同的实现语言;他们各自的客户通过访问公开,良好定义的接口能从中获益。XML经常用于SOA服务接口,即使它不是必要的。JSON也开始变得很常见。 l MVC架构 MVC是来自Hyfinity的一种新生代的开发应用和集成工具。基于原生XML,MVC能够使企业规模、基于浏览器的应用快速的开发。为了快速组装完整的交互式应用程序,MVC提供了直观的图形化IDE。其中一个使MVC区别于大多数传统方法的关键是信息流的概念,它保留了所采集的基于文档的信息,通过数据绑定和路由校验。这些全部使用原生XML执行。 MVC使用XStudio来开发XML应用,使用XPlatform来运行产生的应用。MVC主要关注交互式自助应用的发展和使用包括以FromMaker闻名的XStudiio在内的工具来建立完整的WEB应用。 II. MVC架构 正如我们在之前章节所讨论的,普遍认为一个应用应有三个主要层次:表现层,应用逻辑,和资源管理。在MVC中,表现层划分为了控制器和视图。最重要的分隔在于表现层和应用逻辑之间。视图/控制器的分隔相对较少。MVC包含的不仅仅是架构的应用还有典型的设计模式。因此结构模式之类的术语可能被用到,再或者是集合设计模式。 l 模型 以特定领域来表现应用操作的信息。模型是应用逻辑层)的另一种称呼。应用逻辑丰富了原始数据的意义。许多应用利用现有的存储机制来存储数据。MVC并没有特意提及资源管理层次,因为它被理解为底层的或者封装的模型。 l 视图 使模型渲染到表单适合于交互,典型的是一个用户的界面元素。在WEB应用中经常看到的MVC中,视图是HTML页面和为页面采集动态数据的代码。 l 控制器 处理和相应事件,尤其是用户actions,并且可能调用模型和视图的变化。 虽然MVC有不同的特性,控制流程一般如下: 1.用户以某种方式与用户界面进行交互。 2.一个控制器处理来自用户界面的输入事件,经常通过注册操作或回调。 3.控制器访问模型,可能采用适当用户的action方法来更新它。复杂的控制器通常被设计使用命令模式封装action和简化继承。 4.一个视图使用模型来生成一个合适的用户界面。视图从模型中得到自己的数据。模型与视图没有直接关联。 5.用户界面等待进一步用户交互后开始新的循环。 以上数字概述的模型,视图和控制器之间的关系由基于以下。 A.实现策略 SpringMVC框架是基于分派请求操作的分发器设计的。有着可配置的处理器映射、视图解析器、本地化和主题解析器同时支持上传文件。 B.SpringMVC的特性 n 明确分工。每个角色控制器,校验器,命令对象,表单对象, 模型对象, 分发器,处理器映射, 视图解析器等等都有专门的对象来实现。 n 将框架类和应用类作为JavaBeans的配置强大且直接明了。包括通过应用上下文配置中间层引用,例如从WEB控制器到业务对象和校验器。 n 适用性,不受干扰性,和灵活性。根据给定场景,用一些参数注解来定义你需要的控制器方法。 n 可复用业务代码,无需复制。使用已有的业务对象作为命令对象或者表单对象而不是通过映射来继承特殊的框架基类。 n 可定制的绑定和校验。将类型不匹配作为应用级别校验错误,能保留值,本地化日期和数字绑定等,而不是使用需要手动解析并转换业务对象的且只是字符串的表单对象。 n 可定制的处理器映射和视图解析器。处理器映射和视图解析器策略的范围从简单的基于URL的配置到复杂的专用解析策略。Spring比WEB MVC框架更加灵活在授权一个特定技术上看来。 n 灵活的模型传输。模型传输是支持根据名字/值的Map,很容易集成任何视图的技术。 n 可定制的本地化和主题解析,支持JSP,无论是否使用Spring标签库,支持JSTL,支持不需要额外过度的Velocity等等。 n 一个简单且强大的JSP标签库称为Spring标签库,提供的功能如数据绑定和主题。定制标签允许最大程度的灵活性就标记代码而言。 n 在Spring2.0中引入的一种JSP表单标签库能使在JSP界面中写表单更便捷。 n Beans的生命周期范围是当前HTTP请求或HTTP会话。它并不是Spring MVC本身具体特征,而是Spring MVC使用了WebApplicationContext容器的。 图1.MVC架构 C.可插拔性的其他MVC的实现 如果你不想使用Spring的WEB MVC,但打算使用Spring提供的其它功能,你可以很容易地将你选择的WEB MVC框架和Spring整合。直接通过Spring的Context-LoaderListener启动一个Spring根应用上下文,通过它的ServletContext属性来访问来自Struts或者WebWork的action。没有"plugins"参与, 所以也没有针对它整合的必要。从WEB层的角度看,你只要使用Spring作为库,带有根应用上下文的实例作为切入点。 你所注册的beans和Spring的服务随时可访问及时在没有Spring的WEB MVC的情况下。Spring并没有在这种情景下与Struts或者WebWork竞争。它只是提供了纯WEB MVC框架在很多领域所不具备的,从bean配置到数据访问和事务处理。所以你可以用Spring中间层和/或数据访问层来丰富你的应用,及时你只是想使用,好比,JDBC和Hibernate这样的抽象事务管理。 Spring的WEB MVC框架同很多其他的WEB框架一样,是由请求驱动的。围绕着一个能将请求分发到控制器的servlet设计,它还提供其他有利于WEB应用开发的功能。然而Spring的分法器所做的不仅如此。它完整的整合了Spring Ioc容器使你能够使用Spring所具有的其他功能。 Spring Web MVC分发器的请求处理工作流在下方的图说明。模式理解阅读器会识别分发器是“前端控制器”设计模式的表达式。 分发器是一个真正的Servlet,并同样要在你的web应用的web.xml文件中声明。你需要映射你想让分发器处理的请求,通过在同个web.xml文件中使用URL映射。这是标准的J2EEservlet配置。 <web-app> . <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>example</servlet-name> <url-pattern>*.form</url-pattern> </servlet-mapping> </web-app> 在上面的例子中,所有以.form结尾的请求会被exampleDispatcherServlet处理。这只是配置Spring WEB MVC的第一步。你现在需要使用Spring Web MVC框架配置各种beans。当初始化一个分发器,框架会查找一个名为servlet-name-servlet.xml在你的Web应用的WEB-INF目录下并创建里面所定义的beans,重定义所有全局同名定义的beans。 图2.请求处理工作流 Spring分发器使用特有的beans来处理请求和显示相应的视图。这些beans就是Spring框架的一部分。你可以在WebApplicationContext中配置它们,配置方式就象配置其它bean的方式一样。然后,对于大多数bean来说,已经提供了合理的缺省配置,所以你最初不需要配置它们。 在你启动好分发器后,且有一个请求触发了指定的分发器,接下来分发器按以下步骤处理请求: 1.查找WebApplicationContext,并绑定该请求成为一个属性,使控制器和其他处理器在处理过程中能使用。缺省绑在分发器.WEB_APPLICATION_CONTEXT_ATTRIBUTE这个关键字上。 2.绑定本地化信息解析器到请求上,使处理过程中的处理器在处理请求时能解析本地化信息。如果你不需要本地化信息解析器,就忽视它。 3.绑定主题解析器到请求上,让视图之类的元素能决定使用哪个主题。如果你不需要主题,你可以忽视它。 4.如果你指定了多文件解析器,请求会被检测是否使用了multiparts;若是,请求会保存到MultipartHttpServletRequest中,以便处理过程中的其他处理器进一步处理。 5.查找合适的处理器。如果找到,为了准备模型数据或渲染视图,与该处理器相关的执行链会被执行。 6.如果模型返回数据,就显示视图。否则,无视图显示,因为请求已经被结束。 III. 控制器实现 Spring 2.5引入了基于注解的编程模型,MVC的控制器可以使用诸如RequestMapping, RequestParam, ModelAttribute等注解。注解能同时支持Servlet MVC和Portlet MVC。这种方式实现的控制器无需继承指定的基类或者实现指定的接口。而且,它们通常不直接依赖于Servlet或Portlet APIs,但你可以很配置访问到Servlet或Portlet设置。 Controller public class HelloWorldController RequestMapping("/helloWorld") public ModelAndView helloWorld ModelAndView mav = new ModelAndView; mav.setViewName("helloWorld"); mav.addObject("message", "Hello World!"); return mav; 你能够看到,Controller和RequestMapping注解允许灵活的方法名和签名。在这上面的例子中的方法没有参数,返回一个ModelAndView,但还有其他各种策略的存在,会在本章后面介绍。ModelAndView,Controller,和RequestMapping是Spring MVC实现的基础组成。这章节文档会介绍这些注解如何普遍的在Servlet中应用。 Controller表明一个独有的类为一个控制器服务。Spring不要求你继承任何控制器的基类或引用Servlet API。然而,你仍能引用你需要的Servlet其他的功能。Controller注解以固定注解类形式来表明它的角色。分发器就可以通过该注解来获取这个类中带有RequestMapping注解的方法。你可以明确的注解控制器bean,通过在分发器上下文中使用标准的Spring bean定义。然而,Controller模式也允许自动侦测,在类路径中匹配Spring的公共侦测组件类并为他们自动注册bean定义。要实现注解控制器自动探测,需要在配置文件中加入探测组件。 A.用RequestMapping映射请求 使用RequestMapping注解来映射就像/appointments这样的URLs到整个类或特定的处理方法。一般来说,类级别的注解映射特定的请求路径到表单控制器上,而方法级别的注解只是映射为一个特定的HTTP方法请求或HTTP请求参数。下这个例子显示了在Spring MVC应用中的一个控制器使用该注解: Controller RequestMapping("/appointments") public class AppointmentsController private final AppointmentBook appointmentBook; Autowired public AppointmentsController(AppointmentBook appointmentBook) this.appointmentBook = appointmentBook; RequestMapping(method = RequestMethod.GET) Public Map<String, Appointment> get return appointmentBook.getAppointmentsForToday; RequestMapping(value="/day", method = RequestMethod.GET) public Map<String, Appointment> getForDay(PathVariable RequestMapping(value="/new", method = RequestMethod.GET) public AppointmentForm getNewForm return new AppointmentForm; RequestMapping(method = RequestMethod.POST) public String add(Valid AppointmentForm appointment, BindingResult result) if (result.hasErrors) appointmentBook.addAppointment(appointment); return "redirect:/appointments" return "appointments/new" return appointmentBook.getAppointmentsForDay(day); DateTimeFormat(iso=ISO.DATE) Date day, Model model) 在例子中,RequestMapping在多处使用到。第一种用法在类级别上,表明该控制器中的所有处理方法与/appointments路径有关。get方法进行进一步RequestMapping细化配置:它只接受GET请求,也就意味着只有/appointments路径下的HTTP GET请求才调用该方法。post方法有类似的细节,通过 getNewForm方法与HTTP方法和路径的定义合而为一,/appointments /new的GET请求能够处理该方法。 B.支持的处理方法参数和返回类型 RequestMapping注解的处理方法拥有十分灵活的签名。大多数可以不按顺序的使用。 l 请求或响应对象,选择任意指定的请求或响应类型,例如ServletRequest或HttpServletRequest。 l 会话对象:HttpSession类型的。这种类型的参数强转成一个相应存在的session。所以,这样的参数绝不会为空。 l PathVariable 注解方法参数并将其绑定到URI模板变量的值上。 l RequestParam对访问指定Servlet请求的参数注解。参数值转化成方法中声明的类型。 l RequestHeader对访问指定的Servlet的HTTP请求头参数注解。参数值转化成方法中声明的类型。 l ModelMap丰富了隐式模型,对于WEB视图是可见的。 l BindingResult 返回先前指令或表单对象的校验结果。 l 标记处理完成的表单状态,会触发清理在处理器类型级别已被SessionAttributes注解表明的会话属性。 接下来是处理器方法所支持的返回类型: l 一个ModelAndView对象,这个模式隐含指令对象和参考数据存取方法ModelAttribute注解的结果。 l 一个模型对象,视图名则通过RequestToViewNameTranslator把请求转换为视图名称。 l 一个Map对象来表示模型,而视图名则利用RequestToViewNameTranslator把请求转换为视图名称。 l 一个视图对象,该处理方法还可以以编程方式通过声明一个模型参数丰富模型。 l 一个String对象来表示视图名,处理器中对于的方法也可以通过声明一个ModelMap的参数来表示model。 l 空表示方法自己处理响应或者通过RequestToViewNameTranslator把请求转化为 视图名。 l 其他任何的返回类型被当做一个单一的模型属性展示给视图,通过在方法级别指定ModelAttribute来使用属性名。 IV. 视图 所有WEB应用的MVC框架都提供了访问视图的方法。Spring提供了视图解析器,使你提交模型到浏览器而无需绑定特定的视图技术。不同一般的,Spring允许你使用JSPs,Velocity模板和XSLT等多种视图。 Spring处理视图最重要的两个接口是ViewResolver和View。ViewResolver接口在视图名称和真正的视图之间提供映射;而View接口访问请求准备并提交请求给其中一种视图技术。 A.用视图解析器接口解析视图 在Spring WEB MVC处理器中所有处理器方法必须解析一个逻辑视图名,无论是显示的还是隐式的。Spring中的视图通过被视图解析器解析后的逻辑视图名来访问。Spring有很多视图解析器。 ResourceBundleViewResolver检查ResourceBundle定义下的bean名称,并解析每个视图。它用属性值视图名.(class)作为视图类,属性值视图名.url作为视图url。 B.视图重定向 正如先前提到的,一个控制器一般返回一个逻辑名,解析器再将其解析成特定的视图技术。对于如JSPs这样通过Servlet或JSP引擎来处理视图的技术来说,它的解决方案通常要结合InternalResourceViewResolver和InternalResourceView,通过RequestDispatcher.forward方法或者 RequestDispatcher.include 方法发布内部转发或包含指令。对于其他诸如Velocity,XSLT的视图技术,视图本上直接输出内容到响应流。 有时在视图渲染前发布HTTP重定向指令返回客户端是会发生的,当一个控制器已经被POSTed的数据调用,并且响应已经委托给另一个控制器。在这种情况下,一个常规的内部转发将意味着其他控制器也可能会看到相同的POST数据,如果它与其他预期的数据混淆是个潜在的问题。消除用户多次提交表单的可能性是另一个显示结果前执行重定向的原因。在这种情况下,浏览器会先发送原始的POST;得到响应后重定向到不同的URL;最后浏览器会显示GET后来在重定向响应指定的URL。这样一来,从浏览器看来,当前页没有反射POST的结果而是GET的。最后影响用户没有办法通过刷新,偶然地重POST同样的数据。刷新出的是GET的结果页,不是重发的原POST数据。 C.重定向视图 控制器响应结果的一种强制重定向方法是该控制器创建并返回一个Spring的重定向视图实例。在这种情况下,分发器不能使用正常的视图解析机制。因为它已经转发给视图了,分发器只能知识视图去完成它的工作。 重定向发出HttpServletResponse.sendRedirect指令使其作为HTTP重定向返回客户端浏览器。所有的模型参数被作为HTTP查询参数。这意味着模型只能包含一个对象,能很好的转换成一个正文HTTP查询参数。 如果你使用了重定向视图并且视图是由控制器自身创建的,建议你配置重定向的URL注入到控制器,这样他没有写在控制器中却能根据视图名在上下文中配置。 D.重定向:前缀 当重定向视图很好的起作用时,如果控制器自身创建了重定向视图,事实上难免控制器知道一个重定向发生。这真的很不理想并且关系太紧密了。控制器不应该关注响应如何处理。通常只有在视图名被注入时它才开始操作。 特殊的重定向:前缀能让你完整上述问题。如果带有前缀的视图名返回时,UrlBasedView-Resolver会识别出它当作一个重定向所需的特殊指示。剩下的视图名会被当作重定向的URL处理。 效果是相同的,如果控制器已返回重定向视图,但现在控制器本身能简单地依据逻辑视图名进行操作。如同 redirect:/my/response/controller.html的一个逻辑视图名会重定向当前相关的servlet上下文,而名为redirect: E.视图技术 Spring为JSP和JSTL提供了对拆箱即用的解决方案。在版本2.0中使用JSP和Spring We-b MVC时,Spring为处理表单提供了一套全面的数据绑定标签。每个标签提供了与HTML相对应的标签属性集的支持,使标签能熟悉且直观的使用。HTML自生成标签符合HTML 4.01/XHTML1.0规范。 不同于其他的表单/输入标签库,Spring的表单标签库整合了Spring Web MVC,通过标签能返问指令对象和关联控制器所处理的数据。表单标签使JSPs更容易开发,阅读和维护。 MVC框架的优点 l Spring提供了一条非常清晰的分割线在控制器,JavaBean模型和视图之间。 l Spring的MVC十分灵活。Spring MVC框架的每个部分随时可以插入配置你自己的接口。当然也提供便利的类作为继承的选择。 l Spring,同WebWork类似,提供和控制器一样的拦截器,使它很容易处理许多请求。 l Spring控制器同其他类一样通过IoC方式配置。使得它们更易于测试和Spring管理的其他对象完美整合。 l Spring MVC web层比Strurs web层更易于测试,由于避免了强制具体继承和直接依赖于分发器servlet的控制器。 l Spring有很好的业务层接口。 V. 3层架构VS.MVC架构 通讯 l 3层:表现层不能直接和数据层通信,只能通过逻辑层 l MVC:所有层直接通信 用法 l 3层:主要用于客户端,中间件和数据层各自独立运行的平台上的web应用 l MVC:从以往来看,用于运行在单一图形化的工作空间上的应用原文: Spring MVC Framework for Web 2.0 Abstract - When building rich user experience web applications, an abundance of web application frameworks is available and only little guidance for making the decision which one to choose.Web 2.0 applications allow individuals tomanage their content online and to share it with other users access control and services on the Web. Such sharing requires to be put in place. Existing access control solutions, however, are unsatisfactory as they do not offer the functionality that users need in the open and user-driven Web environment. Out of all those web development framework the most popular is MVC Framework. Modelviewcontroller (MVC) is a software architecture , currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" (the application logic for the user) from the user interface (input and presentation), permitting independent development, testing and maintenance of each (separation of concerns). Model View Controller (MVC) pattern creates applications that separate the different aspects of the application (input logic, business logic, and UI logic),while providing a loose coupling between these elements. Key Word - Spring MVC, Architecture, XStudio, SOA,Controller. I. INTRODUCTION So exactly what defines a web site as being “Web 2.0”?There are many different opinions on this,making it difficult to pinpoint an exact definition. But it will get clear when we will go through all available web development frameworks.Various architectures for web development are as follows l Ntier Architecture In software engineering, multi-tier architecture (often referred to as n-tier architecture) is a clientserver architecture in which the presentation, the application processing, and the data management are logically separate processes.6 For example, an application that uses middleware to service data requests between a user and a database employs multi-tier architecture.The most widespread use of multi-tier architecture is the three-tier architecture. N-tier application architecture provides a model for developers to create a flexible and reusable application. By breaking up an application into tiers, developers only have to modify or add a specific layer, rather than have to rewrite the entire application over. There should be a presentation tier, a business or data access tier, and a data tier. The concepts of layer and tier are often used interchangeably. l Service Oriented Architecture In software engineering, a Service-Oriented Architecture (SOA) is a setof principles and methodologies for designing and developing software in the form of interoperableservices. These services are well- defined business functionalities that are built as software components (discrete pieces of code and/or data structures) that can be reused for different purposes. SOA design principles are used during the phases of systems development and integration. SOA also generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will access them. benefit from a well-understood, well-defined interface to XML is often used for interfacing with SOA services, though this is not required. JSON is also becoming increasingly common. l MVC Architecture MVC is part of a new generation of application development and integration tools from Hyfinity. Based on native XML, MVC enables the rapid development of enterprise-scale browser-based applications. MVC provides intuitive graphical IDEs for rapidly assembling complete interactive applications. One of the key differences between MVC and more traditional approaches is the information flow concept that preserves document-based information from capture, validation through to data binding and routing. All of this is performed using native XML. MVC uses XStudio for developing XML applications and XPlatform for hosting the resulting applications. MVC is primarily concerned with the development of interactive self-

    注意事项

    本文(MVC框架中英文对照外文翻译文献.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开