论文-车间信息管理系统.doc_第1页
论文-车间信息管理系统.doc_第2页
论文-车间信息管理系统.doc_第3页
论文-车间信息管理系统.doc_第4页
论文-车间信息管理系统.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

车间信息管理系统摘 要 本系统实现的是一个车间信息管理系统,它是某汽车生产工厂管理系统中的一个子系统。主要用户是普通用户、管理员。普通用户即工厂员工,包括领导、管理员、普通员工和其他工作人员。管理员主要负责管理系统中的基本信息(如:员工信息、产品信息),普通用户和管理员通过系统完成不同的工作。系统需要实现的功能总体来说有两个部分,分别如下1、 普通用户对应功能;2、 管理员对应功能;该系统使用开发工具MyEclipse3.2,web服务器tomcat,数据库orace9i.系统采用基于MVC模式的Struts框架,和Hibernate对象持久化框架。关键词:MVC;Struts;Hibernate;DAO;ServiceAbstractWhat this system realizes is a workshop information management system, it is in a some automobile Production plant management system management systems sub-system. The main user is the average consumer, the manager. The average consumer is the factory staff, including leader, manager, ordinary staff and other staff. In manager primary cognizance management system management systems basic information (for example: The staff information, the product information), the average consumer and the manager complete the different work through the system. The system needs to realize the function generally speaking has two parts, distinction following 1, Average consumer correspondence function; 2, The manager corresponds the function; That system usage development tool MyEclipse3.2, the web server tomcat, database orace9i.The system adopts according to the frame of Struts of the mode of MVC, holding out for long time to turn the frame with object of Hibernate.Key Words:(Times New Roman 10.5)MVC;Struts;Hibernate;DAO;Service目 录3摘要-3Abstract-3 前言-6第1章绪论-71.1选题背景与目的-71.2系统开发工具-7第2章J2EE Web应用开发技术概述-82.1J2EE概述-82.2Struts-82.2.1Struts与MVC-82.2.2Struts与Web App的关系-82.3Hibernate与ORM-92.4JSP(Java Server Pages)技术-10第3章系统设计-113.1系统分析-123.1.1需求分析-123.1.2系统功能模块划分-133.1.3系统流程-143.2系统设计-143.2.1 数据库逻辑结构设计-14 3.2.2 创建数据库-153.2.3 创建表的脚本语言-163.3 系统中的主要类图-18第4章系统实现-194.1实现文件的组织-194.2系统功能实现-214.2.1 定义HibernateUtil-214.2.2 定义EncodingFilter类-214.2.3数据层设计-214.2.4数据层代码实现-224.2.5创建持久化类-224.3 功能代码实现-224.3.1登录功能-244.3.2登录功能的逻辑设计 -.配置Struts-登录功能-244.3.3管理员进行员工信息管理的功能实现-254.3.4管理员进行产品信息管理的功能实现-294.3.5普通用户功能实现-32第5章工程运行-375.1 开发平台-375.2 创建工程-375.3 运行工程-37结论-38附录-39注释-40参考文献-41谢辞-41车间信息管理系统前 言该车间信息管理系统,是某汽车生产工厂管理系统中的一个子系统。该系统能够使得一个工厂的管理简单明了化,免除了传统手工记录的冗余繁杂的缺点,提高了管理员的工作效率,增强了工厂透明信息的透明度,加强了管理的规范化。本系统使用基于MVC模式的Struts架构,使整个工程清晰明朗,使代码封装性做得更好,并且降低模块之间的耦合性,运用先进的Hibernate进行对象的持久化操作,在JSP页面使用AJAX技术实现异步机制,使用动态action减少action的数量。该系统层次清晰,便于维护;使用JAVA语言,便于移植。1车间信息管理系统第1章 绪论1.1 选题背景与目的随着网络的普及与发展,车间信息管理系统为工厂管理带来了方便,同时它是整个工厂管理系统的一个子系统,对工厂管理起着相当重要的作用。系统方便了普通用户对工厂车间、员工、产品等相关信息的查询,方便了管理员对员工和产品信息的管理,更重要的是,系统方便了工厂的车间管理。1.2 系统开发工具 本系统采用MVC三层架构的模式,在开发过程中使用了Struts和Hibernate,使系统的结构更加清晰,同时简化了开发工作。本文所要开发的车间信息管理系统是一个基于B/S架构的Web应用。由于J2EE在开发中具有的诸多优良特性和便利,因此本系统将使用J2EE体系架构。在设计模式上,将使用当前流行的Struts框架,采用Hibernate作为ORM框架。在软件环境方面,系统的开发环境如下:操作系统:Linux;Web应用服务器:Tomcat5.0.28;数据库:Oracle 10g,运行在远程Sun Solaris 10服务器上;开发工具:Eclipse3.2,MyEclipse5.0插件5车间信息管理系统第2章 J2EE Web应用开发技术概述2.1 J2EE概述 J2EE是美国Sun公司刚刚退出的一种全新概念的模型,与传统的互联网应用模型相比有着不可比拟的优势。 目前,Java 2平台有3个版本,他们是适用于小型设备和智能卡的Java 2平台Micro版(Java 2 Platform MicroEdition,J2ME)、适用于桌面系统的Java 2平台标准版(Java 2 Platform Standard Edition,J2SE)、适用于创建服务器应用程序和服务的Java 2平台企业版(Java 2 Platform Enterprise Edition,J2EE)。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“跨平台”特性、方便存取数据库的JDBC(Java DataBase Connectivity)应用程序接口(API,Application Program Interface)技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够是企业开发者大幅度缩短投放市场时间的体系结构。2.2 Struts2.2.1Struts与MVC Struts由一组相互协作的类、Servlet以及Jsp Taglib组成。基于Struts架构的web应用程序基本上符合Jsp Model2的设计标准,可以说是MVC设计模式的一种变化类型。根据上面对framework的表述,我们很容易理解为什么说Struts是一个web framework,而不仅仅是一些标记库的组合。但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类。 Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge,在视图层,Struts能够与JSP,Velocity Templates,XSL等等这些表示层组件相结合。2.2.2Struts与Web App的关系 既然struts叫做web framwork,那么其肯定主要基于web层的应用系统开发。按照J2EE Architecture的标准,struts应当和jsp/servlet一样,存在于web container中。图2.1 Struts与WebApp的关系2.3 Hibernate与ORM Hibernate是JDBC的轻量级的对象封装,它是当前比较流行的对象持久化技术,也就是说,用Hibernate可以将一个java对象保存到数据库。它是一个独立的对象持久层框架,和App Service,和EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合,例如Java应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,Hibernate和EJB不是一个范畴的东西,也不存在非此即彼的关系。 Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性的问题。图2.2Hibernate体系总览图 由于Hibernate比较复杂,提供了好几种运行方式。在轻型系统中,应用程序自己替JDBC连接,并自行管理事务。这种方式使用了Hibernate API的一个最小子集。(如下图) 在前面解决体系中,对于应用程序来说,所有的底层JDBC/JTA API都被抽象了,Hibernate会体你照管好所有的细节。本文中所用到的就是这种体系。图2.3冬眠轻型应用体系以下是图中一些对象的定义:SessionFactory对属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照。它是Session的工厂,是ConnectionProvider的客户。可能持有一个可选的二级数据缓存,可以在进程级别后集群级别保存可以在事务中重用的数据。 Session会话 Session是生命周期单线程对象,代表应用程序和持久层之间的一次对话。封装了一个JDBC连接,也是Transaction的工厂。保存有必需的(第一级)持久化对象的缓存,用于遍历对象图或通过标识符查找对象。 持久化对象(Persistent Object)及其集合(Collection) 生命周期短的单线程对象包含了持久化状态和商业功能。它们可能是普通的JavaBean/POJOs,唯一特别的是它们现在都从属于且仅从属于一个Session。一旦Session关闭,他们都将从Session中取消联系,可以在任何程序层自由使用。 事务(Transaction) 事务也是生命周期短的单线程对象,应用程序用它来表示一批工作的原子操作。是底层的JDBC,JTA或者CORBA事务的抽象。一个Session某些情况下可能跨越多个事务。2.4 JSP(Java Server Pages)技术 JSP技术提供了一种简单快速的方法来创建显示动态生成内容的Web页面。也就是在MVC中充当V(View)的角色。由业界处于领先地位的Sun公司制定了相关的JSP技术规范,该规范定义了如何在服务器和JSP页面间进行交互,还描述了页面的格式和语法。JSP页面使用XML标签和scriptlets(一种使用Java语言编写的脚本代码),封装了生成页面内容的逻辑。它将各种格式的标签(HTML或者XML)直接传递回响应页面。通过这种方式,JSP页面实现了页面逻辑与其设计和显示的分离。JSP技术是Java系列技术的一部分。JSP页面被编译成servlet,并可能调用JavaBeans组件(beans)或Enterprise JavaBeans组件(企业beans),以便在服务器端处理。因此,JSP技术在构建可升级的基于web的应用程 序时扮演了重要角色。 JSP页面并不局限于任何特定的平台或web服务器上。JSP规范在业界有着广泛的适应性。 JSP技术是行业协作的结果,它的 设计是开放的,符合行业标准的,并支持绝大多数的服务器、浏览器和相关工具。由于使用可重用的组件和标签取代了对页面本身脚本语言的严重依赖,JSP技 术大大加快了开发的速度。所有JSP的实现均支持以Java编程语言为基础的脚本语言,它有与生俱来的可适应性,支持复杂的操作。9车间信息管理系统第3章 系统设计3.1 系统分析3.1.1需求分析车间信息管理系统的设计目的是要将车间、员工、产品的各项信息通过网络进行管理。为工厂管理和管理员管理提供便利。系统的用户有两种类型,分别是普通用户、管理员,管理员登录后可以对系统进行管理,其主要操作是维护车间、员工、产品的基本信息。普通用户的主要操作是查询车间、员工、产品的基本信息。将系统需求加以总结,得出系统需求如下:系统可以运行在Windows操作系统平台上,并具有友好的用户界面。系统用户类型为:管理员,普通用户。只有管理员可以维护车间、员工、产品的基本信息。普通用户只能查询车间、员工、产品的基本信息。3.1.2系统功能模块划分 模块分析是描述系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发的一个关键过程。需求分析的第一步,是描述车间信息管理系统的功能,以此确定系统的功能需求。车间信息管理系统的角色是管理员、普通用户,管理员对车间、员工、产品信息进行维护,普通用户查看车间、员工、产品的信息。根据以上的用户操作需求,将系统分为如下三大功能,并对其模块的划分和功能进行描述如下:管理员功能登录:登录员工信息管理:增加员工、开除员工(删除)、设置员工请假、设置员工销假、设置员工缺勤产品管理:修改产品信息、设置新产品普通用户功能车间信息管理:查看车间列表员工信息管理:查看员工列表产品信息管理:查看产品列表信息查询:车间查询、员工查询、产品查询整个系统的模块结构如图3.1所示车间信息管理系统普通用户管理员产品信息管理员工信息管理信息查询产品信息管理员工信息管理车间信息管理 (图3.1)3.1.3系统流程 本系统的中心对象是员工和产品。根据以上的模块的划分和功能分析可知,该系统的流程主要描述的是管理员根据员工具体的出勤情况作出相应的记录,根据产品的具体信息和改变作出相应的记录如此的基本流程如下:管理员登录增加员工开除员工设置员工请假修改产品信息设置新产品 产品信息管理员工信息管理设置员工缺勤设置员工销假(图3.2)(图3.2)普通用户(无需登录)信息查询车间列表员工列表产品列表车间查询员工查询产品查询 产品信息管理员工信息管理车间信息管理 (图3.3)3.2系统设计系统分析完成后,进入系统的设计阶段这是整个系统实现过程中非常重要的一个阶段。3.2.1 数据库逻辑结构设计本系统的用户有3类:管理员和普通用户。由于管理员和普通用户的权限和操作功能大不相同,因此在本系统中需要分别进行数据记录。l 管理员数据实体:管理员编号、管理员的登录名、密码、所在的车间信息;l 员工数据实体:员工编号、密码、姓名、性别、学生所在车间、开始工作时间、出勤状态、是否在线;l 产品数据实体:产品编号、产品名称、所属车间、产品类型、产品数量和交货时间;l 车间数据实体:车间编号、车间名称、该车间管理员、该车间所产产品、该车间所有员工根据以上分析,设定每一个数据实体都有一个ID作为它的唯一标识,4个数据实体的关联关系如图(3.5)所示id number(5)roomname varchar2(30)manager varchar2(30)id nuber(5)username varchar2(30)password varchar2(30)roomid number(5)roomid=idLxfWorkshopManager LxfWorkshopRoom roomid=idid number(5)roomid number(5)name varchar2(30)gender varcha2(4)begintime datedutystatus numberisonline numberroomid=idid number(5)roomid number(5)productnamevarchar2(30)finishtime datetype varchar2(30)quantity number(30)LxfWorkshopEmployeeLxfWorkshopProducts (图3.4)3.2.2 创建数据库 本系统采用Oracle创建数据库,连接Oracle数据库创建4张数据表。如表3.13.6表3.1table lxf_workshop_manager表序号字段含义类型1id管理员编号number2username登录名Varchar23password密码Varchar24roomid车间号number表3.2 table lxf_workshop_employee表序号字段含义类型1id员工编号number2name姓名Varchar23roomid所在的车间编号number4gender性别Varchar25begintime date开始工作的时间date6dutystatus出勤状态number7isonline 是否在线number 表3.3 table lxf_workshop_product表序号字段含义类型1id产品编号number2roomid number(5)所属车间的编号number3productname 产品名称Varchar4finishtime产品交货时时间date5type 产品类型Varchar6quantity产品数量number 表3.4 table lxf_workshop_room表序号字段含义类型1id车间编号number2roomname varchar2(30)车间名称Varchar3manager 该车间的管理者varchar3.2.3 创建表的脚本语言根据数据库字段设计,编写的创建数据库表的SQL与君如下:创建数据表lxf_workshop_room的SQL语句:create table lxf_workshop_room (id number(5)primary key,roomnamevarchar2(30) not null,managervarchar2(30) not null);创建数据表lxf_workshop_ manager的SQL语句:create table lxf_workshop_manager (idnumber(5)primary key,usernamevarchar2(30) not null,passwordvarchar2(30) not null,roomidnumber(5),foreign key(roomid) references lxf_workshop_room(id);创建数据表lxf_workshop_employee的SQL语句:create table lxf_workshop_employee (idnumber(5)primary key,roomidnumber(5),name varchar2(30) not null,gender varchar2(4) not null,begintimedate not null,dutystatus number default 0,isonline number default 0,foreign key(roomid) references lxf_workshop_room(id);创建数据表lxf_workshop_product的SQL语句:create table lxf_workshop_product (idnumber(5) primary key,roomid number(5),productnamevarchar2(30) not null,typevarchar2(30)not null,quantitynumber(30)not null,finishtimedate not null,foreign key(roomid) references lxf_workshop_room(id);3.3 系统中的主要类图LxfWorkshopProduct -id-productname-type-quantity-finishtime-finishtimeLxfWorkshopRoom -id-roomname-manager-lxfWorkshopProduct-lxfWorkshopEmployees-lxfWorkshopManagersLxfWorkshopManager -id-lxfWorkshopRoom-username-passwordLxfWorkshopEmployee -id-lxfWorkshopRoom-name-gender-begintime-dutystatus-isonline第4章 系统实现4.1 实现文件的组织为体现struts的MVC模型与web应用的分层思想,我们按下图所示的结构组织文件。bean就是MVC中的M(Model),其中的文件是基本类及其与数据库表的hibernate映射文件。在dao包中有Dao接口和实现Dao接口的DaoImplemnt一个JAVA文件,后者是前者的实现类。它们只负责与数据库的交互和给service提供基本的数据库交互服务。在service包中有Service接口和实现Service接口的ServiceImplemnt一个JAVA文件,后者是前者的实现类。主要职责是使用dao中的服务为action提供服务。web是MVC中的C(Controller),主要职责是为用户动作提供控制,控制着程序的执行动作为跳转方向。WebRoot中的文件主要是直接为用户提供服务的页面文件,也就是MVC中的V(View),负责界面的显示和与用户的交互。这样以来,V只使用或调用action里的服务,而action只调用service也只调用dao里面的方法。这种调用方向单一,有效地降低了耦合,增强了内聚。 (图4.1)ActionJSPServiceBeanDAODB图4.2 程序的调用关系示意图4.2 系统功能实现4.2.1 定义HibernateUtil本系统采用Struts+Hibernate技术进行开发,由Hibernate进行数据对象的操作,这里定义一个HibernateSessionFactory类负责初始化Hibernate.由它创建全局的SessionFactory实例,并且提供创建session实例,关闭Session实例,创建HibernateTransaction负责打开/关闭事物.这样在使用hibernate时更加方便,不用每次为创建SessionFactory实例,或者关闭Session实例,事物操作不用单独写代码,只要调用上面类的方法就可以了,从而简化了操作.4.2.2 定义EncodingFilter类在进行Web页面开发时经常会遇到中文显示出现乱码的情况,这是由java内置的字符集与页面显示的字符集不一致造成的.为了解决这个问题,需要进行字符编码转换,本系统通过定义一个Fileter来自动实现字符编码的转化,步驟如下:1.定义EncodingFilter类在com.briup.web.filter包下创建一个EncodeFilter.java类:2 配置这个Filter 在web.xml文件中添加如下代码 encode com.briup.web.filter.EncodeFilter encode /* 4.2.3数据层设计本系统的持久化逻辑采用Hibernate作为中间件,并使用DAO设计模式实现.主要是在业务核心方法和具体数据源之间增加一层,这样就减少了两者的耦合.每个持久化类对应一个DAO,它实现了持久化类的创建、查询、更新及删除方法,即CRUD(create 、retrieve、update、delete)方法,以及其他访问持久化机制方法。本系统所有与数据库逻辑有关的方法都在Dao的实现类中,现在com.briup.dao.包下 创建接口ManagerDao MemberDao RoomDao,并在com.briup.dao.impl包下创建接口的实现类ManagerDaoImpl MemberDaoImpl RoomDaoImpl,注意要继承相应的接口。4.2.4数据层代码实现本系统的持久化逻辑采用Hibernate作为中间件,并使用DAO设计模式实现.DAO模式创建对象/关系映射文件为了使用Hibernate来持久化对象,首先要根据数据库的各个表创建映射文件.每个类都对应的hibernate映射文件,且都放到com.briup.bean包下. 映射文件分别如下 1 LxfWorkshopEmployee类的映射文件LxfWorkshopEmployee.hbm.xml.2 LxfWorkshopManager类的映射文件LxfWorkshopManager.hbm.xml.3 LxfWorkshopProduct类的映射文件LxfWorkshopProduct.hbm.xml. 4 LxfWorkshopRoom类的映射文件LxfWorkshopRoom.hbm.xml.4.2.5创建持久化类 创建完映射文件后,需要创建持久化类,将这些类放到com.briup.bean包下1 LxfWorkshopManager类这个对应于管理员实体,用于实现管理员信息的持久化工作。2 LxfWorkshopEmployee类这个类对应于员工实体,用于管理员工信息持久化工作。3 LxfWorkshopProduct类这个类对应产品实体,管理产品信息持久化工作。4 LxfWorkshopRoom类这个类对应车间实体,管理车间信息持久化工作。4.3 功能代码实现本系统采用MVC模式开发,功能代码封装在Action ,Service ,Dao 三个类中,分工清晰l 功能描述l 管理员功能:l 增加员工:addEmployeel 开除员工(即删除员工):reduceEmployeel 设置员工请假:addLeftEmployeel 设置员工缺勤:addOffEmployeel 设置员工销假:reduceLeftEmployeel 修改产品信息:modifyActionl 设置新产品:createProductl 普通用户功能:l 车间列表:listRoomsl 员工列表:listEmployeesl 产品列表:listProductsl 车间查询:findRooml 员工查询:findEmployeeByName,findEmployeeByRoomNamel 产品查询:findProductl 逻辑设计ll 图4.3 页面间的跳转关系l 配置Struts,在strits-config.xml文件中配置实现这个功能需要用到的Form和Action,实现页面的跳转。l 创建模型Form,为创建Action提供支持。l 创建DAO,访问数据对象。l 创建辅助类,为实现功能作准备。l 创建Action,实现功能代码。在本系统中使用的是动态action,减少了action的数量,使得整个代码结构更加简单明了。4.3.1登录功能只有通过登录之后才能进入管理员的首页,才能执行管理员的相关权限。4.3.2登录功能的逻辑设计.配置Struts由于在该系统中是用getParameter直接传参,所以没有用到form来封装数据,所以在struts-config.xml文件中与标签之间没有添加任何代码。只在和标签之间添加如下代码: 至于代码的跳转,则在action中直接进行跳转,所以在这里就不用再配置。登录功能因为是动态action,所以有关登录的代码就在ManagerAction的login方法中,代码如下public ActionForward login(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) / TODO Auto-generated method stubtry String username = request.getParameter(username);String password = request.getParameter(passwd);LxfWorkshopManager manager = managerService.login(username,password);request.getSession().setAttribute(manager, manager);return new ActionForward(/pages/manager/Manager.jsp); catch (ManagerServiceException e) / TODO Auto-generated catch blocke.printStackTrace();request.setAttribute(message, e.getMessage();return new ActionForward(/pages/login.jsp);登录后就进入管理员首页,如下图所示: 图4.4 管理员首页4.3.3管理员进行员工信息管理的功能实现管理员在对员工进行管理,实际上是对员工信息进行编辑、删除、添加等操作,与管理员管理员工功能相关的页面如下:l addEmployee.jsp:添加员工页面。l reduceEmployee.jsp:开除员工页面。l addLeaveEmployee:设置员工请假页面。l addOffEmployee.jsp:设置员工缺勤页面。l reduceLeaveEmployee.jsp:设置员工销假页面。1)管理员添加员工信息在图4.4中单击“增加员工”时将会跳转到图4.5中增加员工的代码如下:public ActionForward addEmployee(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) / TODO Auto-generated method stubtry LxfWorkshopManager manager = (LxfWorkshopManager) request.getSession().getAttribute(manager);if (manager = null) request.setAttribute(message, 您不是管理员,请先登录);return new ActionForward(/pages/login.jsp);String roomName = request.getParameter(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论