实习1 网上购书系统_第1页
实习1 网上购书系统_第2页
实习1 网上购书系统_第3页
实习1 网上购书系统_第4页
实习1 网上购书系统_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、实习1 网上购书系统P1.1 系统分析和设计P1.2 注册、登录和注销P1.3 图书类别及新书展示P1.4 显示指定类别图书P1.5 图书查询P1.6 添加图书到购物车P1.7 显示购物车P1.8 结账P1.9 用Ajax为注册添加验证P1.1 系统分析和设计1. 网上购书系统概述本书的网上购书系统(网上书店)将实现上述的基本功能,用户可以注册、浏览商品、查询购物车等,其主界面如图P1.1所示。图P1.1 网上购书系统主界面P1.1 系统分析和设计网上购书系统功能如下: 用户可以浏览图书分类和网站推荐的图书。 用户可以根据分类,浏览某一类的图书列表。 用户可以查看具体某本图书的介绍。 用户在图

2、书浏览页面,单击【添加】按钮,把选定图书添加到购物车中。 用户可以单击【购物车】超链接,查看购物车信息。 用户可以单击【结账】按钮下订单,当然需要登录后才能操作。 用户在注册页面,填写注册信息,确认有效注册,成为新用户。 用户在登录页面,填写用户名和密码,确认正确,可以结账。P1.1 系统分析和设计系统功能模块划分如图P1.2所示。网上书店登录注销注册浏览目录浏览图书购物查看购物车结账图P1.2 网上购书系统功能模块划分P1.1 系统分析和设计2. 数据库设计网上商店中有以下几个实体:用户、图书分类、图书、订单、订单项,因此系统可以设计如下的数据概念模型,如图P1.3所示。图P1.3 数据概念

3、模型P1.1 系统分析和设计其中实体之间还可能存在对应关系。图书分类和图书:一个图书类别中有多本图书,一本图书属于一个图书分类,是一对多的关系。用户和订单:一个用户可以拥有多个订单,一个订单只能属于一个用户,它们之间的关系是一对多的关系,在数据库中表现为订单表中有一个用户表的外键。订单和订单项:一个订单中包含多个订单项,一个订单项只能属于一个订单,是一对多的关系。图书和订单项:一个订单项就是对图书的封装,订单项中除了有该商品信息外,还有该商品的购买数量等。P1.1 系统分析和设计根据前面的分析,具体表结构如表P1.1表P1.5所示字 段 名 称数 据 类 型主 键自 增允 许 为 空描 述us

4、eridint是增1标志IDusernamevarchar(20)用户名passwordvarchar(20)密码sexvarchar(4)是性别ageint是年龄表P1.1 用户表userTable字 段 名 称数 据 类 型主 键自 增允 许 为 空描 述catalogidint是增1标志IDcatalognamevarchar(20)图书分类名表P1.2 图书分类表catalog字 段 名 称数 据 类 型主 键自 增允 许 为 空描 述bookidint是增1标志IDbooknamevarchar(20)图书名priceint图书价格picturevarchar(30)是图书封面cat

5、alogidint是分类(外键)表P1.3 图书表bookP1.1 系统分析和设计字 段 名 称数 据 类 型主 键自 增允 许 为 空描 述orderidint是增1标志IDorderdatedatetime订单时间useridint用户ID字 段 名 称数 据 类 型主 键自 增允 许 为 空描 述orderitemidint是增1标志IDquantityint数量orderidint是所属订单(外键)bookidint是所属图书(外键)表P1.4 订单表order表P1.5 订单项表orderitemP1.1 系统分析和设计3. 搭建系统框架主要步骤如下: 创建Web Project;

6、创建包; 修改web.xml,添加struts.xml文件; 加载用户自定义包,修改web.xml,添加perties文件; 加载Hibernate框架; 对数据库表进行反向工程,生成映射文件。P1.1 系统分析和设计具体操作如下: 在MyEclipse中创建新的Web Project,命名为“bookstore”。 创建如图P1.4所示的包。图P1.4 项目主要包P1.1 系统分析和设计 修改web.xml代码。 struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* P1.1 系统分析和设计在src文件夹下添加st

7、ruts.xml文件,内容如下:/ 以后在这里添加actionP1.1 系统分析和设计 添加Spring框架,步骤如5.7节的第3步。加载用户自定义包hiberante3。创建新的applicationContext.xml文件,存放在WebRoot/WEB-INF文件夹下。修改web.xml代码如下: struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* org.springframework.web.context.ContextLoaderListener 在src文件夹下添加perites文件,增加对Spri

8、ng的支持。代码如下:struts.objectFactory=springP1.1 系统分析和设计 添加Hibernate框架。添加Hibernate类库,将Hibernate的配置信息存放在Spring配置文件applicationContext.xml中。不新建Spring配置文件,SessionFactory ID命名为“sessionFactory”,选择数据源驱动为mysql(数据源驱动的创建请参考4.2.1节的第2步),数据源ID命名为“dataSource”,不创建SessionFactory类。 反向工程,添加映射文件。在MyEclipse中切换到MyEclipse Data

9、base Explorer视窗,选中5个创建好的表,右击【Hibernate Reverse Enginerring】菜单项,利用反向工程,将对应的Java类和映射文件放在org.bookstore.model文件夹中(不用选择创建DAO)。将ID的创建设置为native。P1.1 系统分析和设计User.java代码如下:package org.bookstore.model;import java.util.HashSet;import java.util.Set;public class User implements java.io.Serializable private Integ

10、er userid;private String username;private String password;private String sex;private Integer age;private Set orderses = new HashSet(0);/该用户的订单/省略上述属性的setter和getter方法User.hbm.xml代码。P1.1 系统分析和设计Book.java代码如下:package org.bookstore.model;public class Book implements java.io.Serializable private Integer

11、bookid;private String bookname;private Integer price;private String picture;private Catalog catalog;public Book() public Book(String bookname, Integer price, String picture,Catalog catalog) this.bookname = bookname;this.price = price;this.picture = picture;this.catalog = catalog;/省略上述属性的getter和sette

12、r方法Book.hbm.xml代码修改。P1.1 系统分析和设计Catalog.java代码修改如下:package org.bookstore.model;import java.util.HashSet;import java.util.Set;public class Catalog implements java.io.Serializable private Integer catalogid;private String catalogname;private Set books = new HashSet();/省略上述属性的getter和setter方法Catalog.hbm.

13、xml代码修改。P1.1 系统分析和设计Orderitem.java代码修改如下:package org.bookstore.model;public class Orderitem implements java.io.Serializable private Integer orderitemid;private Book book;/该订单项书籍private Orders orders;/该订单项属于哪个订单private Integer quantity;/省略上述属性的getter和setter方法P1.1 系统分析和设计Orderitem.hbm.xml代码修改如下: P1.1

14、系统分析和设计Orders.java代码修改如下:package org.bookstore.model;import java.util.Date;import java.util.HashSet;import java.util.Set;public class Orders implements java.io.Serializable private Integer orderid;private User user;/订单输入用户private Date orderdate;/订单日期private Set orderitems = new HashSet();/包含的订单项/省略上

15、述属性的getter和setter方法Orders.hbm.xml代码修改。完成以后,修改applicationContext.xml文件,添加映射。P1.2 注册、登录和注销在主界面的头部,单击【注册】超链接,呈现如图P1.5所示的界面,要求用户填写注册信息。图P1.5 用户注册界面P1.2 注册、登录和注销在WebRoot文件夹下建立文件夹css,建立CSS文件bookstore.css,本例中用到的CSS代码。CSS样式应用非常简单,常用的有两种:一种是定义标签样式;另一种是定义类样式。标签样式如body、img、a等是页面中常用到的标签,在文件中定义CSS样式后,在页面中该标签就使用对

16、应的样式。例如,在CSS定义了a标签的样式如下:a font-family: 宋体;color: #000000;那么在页面中出现:链接根据a标签定义的样式来显示“链接”两个字,字体为宋体、颜色为#000000。而类样式则不同,定义一个样式的类格式如下:.name该类样式的属性P1.2 注册、登录和注销在页面标签中加入class=name属性,该标签就可以使用CSS中.name定义的样式。例如,表示在这个div块中的内容都遵循name样式。在定义类样式时,名称前面有“.”,而调用时则不用加。样式表有很多属性,读者可以查阅更详细的资料。浏览者首先进入网上购书系统主界面,查阅图书信息。该功能由in

17、dex.jsp页面实现,其代码。下面来实现注册功能模块。首先在主界面的上方是head.jsp,该JSP页面有一些超链接,具体代码。P1.2 注册、登录和注销可以在电子工业出版社华信教育资源网下载该项目源代码获得本项目用到的图片。单击【注册】按钮,出现如图P1.5所示的界面,register.jsp代码实现。foot.jsp为页面的尾部,其实现代码非常简单,一般是版权说明等内容,其代码。下面分别给出这些内容,不再做过多的解释。DAO接口IUserDAO.java:package org.bookstore.dao;import org.bookstore.model.User;public in

18、terface IUserDAO public void saveUser(User user);P1.2 注册、登录和注销DAO实现类UserDAO.java:package org.bookstore.dao.impl;import java.util.List;import org.bookstore.dao.IUserDAO;import org.bookstore.model.User;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class UserDAO extends H

19、ibernateDaoSupport implements IUserDAOpublic void saveUser(User user)this.getHibernateTemplate().save(user);业务逻辑接口IUserService.java:package org.bookstore.service;import org.bookstore.model.User;public interface IUserService public void saveUser(User user);P1.2 注册、登录和注销业务逻辑实现类UserService.java:package

20、 org.bookstore.service.impl;import org.bookstore.dao.IUserDAO;import org.bookstore.model.User;import org.bookstore.service.IUserService;public class UserService implements IUserServiceprivate IUserDAO userDAO;public void setUserDAO(IUserDAO userDAO)this.userDAO=userDAO;public void saveUser(User user

21、)this.userDAO.saveUser(user);P1.2 注册、登录和注销在applicationContext.xml中进行依赖注入:方法实现完成后,就是Action实现了,首先在struts.xml中进行如下配置: /register_success.jspUserAction.java中方法。P1.2 注册、登录和注销把该Action类交由Spring管理,在applicationContext.xml中配置如下代码:最后是注册成功后跳转的成功界面register_success.jsp。P1.2 注册、登录和注销注册功能完成后,就可以登录了,单击head.jsp页面的【登录】

22、超链接,呈现如图P1.6所示的界面。图P1.6 用户登录界面P1.2 注册、登录和注销首先展现登录界面login.jsp代码。在DAO接口IUserDAO.java中加入如下方法:public User validateUser(String username,String password);在DAO实现类UserDAO.java中加入方法的实现:public User validateUser(String username,String password)String str=username,password;List list=this.getHibernateTemplate().

23、find(from User u where u.username=? and u.password=?,str);if(list.size()0)User user=(User)list.get(0);return user;elsereturn null;在业务逻辑接口IUserService.java中加入如下方法:public User validateUser(String username,String password);在业务逻辑实现类UserService.java中加入方法的实现:public User validateUser(String username,String

24、 password)return userDAO.validateUser(username, password);P1.2 注册、登录和注销方法实现完成后,就是Action实现了,首先在struts.xml中进行如下配置: /login_success.jsp/login.jspUserAction.java中方法如下:public String execute() throws ExceptionUser u=userService.validateUser(user.getUsername(),user.getPassword();if(u !=null)Map session=Acti

25、onContext.getContext().getSession();session.put(user, u);return SUCCESS;elsereturn ERROR;P1.2 注册、登录和注销从Action类中也可以看出,登录成功时,将用户信息保存在session中,而在head.jsp中进行判断,如果能在session中取到用户对象,就显示注销,而不是登录,登录成功后的界面如图P1.7所示。图P1.7 登录成功页面P1.2 注册、登录和注销可以看出,登录成功后,原来的【登录】超链接就变成【注销】超链接了。下面看登录成功页面login_success.jsp代码。truts.xml

26、中的Action配置: /index.jsp对应在userAction类中的实现:public String logout() throws Exception/用户注销Map session=ActionContext.getContext().getSession();session.remove(user);session.remove(cart);return SUCCESS;P1.3 图书类别及新书展示1. 图书类别功能模块下面根据P1.2节中功能实现的方法来实现,依次列举其代码实现。DAO接口ICatalogDAO.java:package org.bookstore.dao;im

27、port java.util.List;public interface ICatalogDAO public List getAllCatalogs();DAO实现类CatalogDAO.java:package org.bookstore.dao.impl;import java.util.List;import org.bookstore.dao.ICatalogDAO;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class CatalogDAO extends Hibernat

28、eDaoSupport implements ICatalogDAOpublic List getAllCatalogs() List catalogs=this.getHibernateTemplate().find(from Catalog);return catalogs;P1.3 图书类别及新书展示业务逻辑接口ICatalogService.java:package org.bookstore.service;import java.util.List;public interface ICatalogService public List getAllCatalogs();业务逻辑实

29、现类CatalogService.java:package org.bookstore.service.impl;import java.util.List;import org.bookstore.dao.ICatalogDAO;import org.bookstore.service.ICatalogService;public class CatalogService implements ICatalogService private ICatalogDAO catalogDAO;public List getAllCatalogs()return catalogDAO.getAllC

30、atalogs();public void setCatalogDAO(ICatalogDAO catalogDAO) this.catalogDAO = catalogDAO;P1.3 图书类别及新书展示在applicationContext.xml中进行依赖注入:方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /menu.jspP1.3 图书类别及新书展示BookAction.java中的方法:package org.bookstore.action;import java.util.List;import java.util.Map;import org.

31、bookstore.model.Book;import org.bookstore.service.IBookService;import org.bookstore.service.ICatalogService;import org.bookstore.util.Pager;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class BookAction extends ActionSupportprotected ICatalogService

32、 catalogService;public void setCatalogService(ICatalogService catalogService) this.catalogService = catalogService;public String browseCatalog() throws ExceptionList catalogs=catalogService.getAllCatalogs();Map request=(Map)ActionContext.getContext().get(request);request.put(catalogs,catalogs);retur

33、n SUCCESS;P1.3 图书类别及新书展示把该Action类交由Spring管理,在applicationContext.xml中配置如下代码:最后是成功后跳转的成功界面menu.jsp:P1.3 图书类别及新书展示2. 新书展示模块DAO接口IBookDAO.java:package org.bookstore.dao;import java.util.List;import org.bookstore.model.Book;public interface IBookDAO public List getNewBook();P1.3 图书类别及新书展示DAO实现类BookDAO.ja

34、va:package org.bookstore.dao.impl;import java.util.List;import org.bookstore.dao.IBookDAO;import org.bookstore.model.Book;import org.hibernate.Query;import org.hibernate.classic.Session;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class BookDAO extends HibernateDaoSup

35、port implements IBookDAOpublic List getNewBook()Session session=this.getHibernateTemplate().getSessionFactory().openSession();Query query=session.createQuery(from Book b);query.setFirstResult(0);query.setMaxResults(5);List books=query.list();session.close();return books;P1.3 图书类别及新书展示业务逻辑接口IBookServ

36、ice.java:package org.bookstore.service;import java.util.List;import org.bookstore.model.Book;public interface IBookService public List getNewBook();业务逻辑实现类BookService.java:package org.bookstore.service.impl;import java.util.List;import org.bookstore.dao.IBookDAO;import org.bookstore.model.Book;impor

37、t org.bookstore.service.IBookService;public class BookService implements IBookService protected IBookDAO bookDAO;public void setBookDAO(IBookDAO bookDAO) this.bookDAO = bookDAO; public List getNewBook() return bookDAO.getNewBook();P1.3 图书类别及新书展示在applicationContext.xml中进行依赖注入:方法实现完成后,就是Action实现了,首先在s

38、truts.xml中进行配置: /newBook_success.jspP1.3 图书类别及新书展示在BookAction.java中加入newBook方法及业务逻辑属性:protected IBookService bookService;public void setBookService(IBookService bookService) this.bookService = bookService;public String newBook() throws ExceptionList books=bookService.getNewBook();Map request=(Map)Ac

39、tionContext.getContext().get(request);request.put(books, books);return SUCCESS;该Action类在上面的显示图书类表中已经配置交由Spring管理,但是由于添加了新的set注入属性,所以在原配置的基础上加入新的属性:最后是成功后跳转的成功界面newBook_success.jsp。P1.4 显示指定类别图书单击左边的【图书类别】超链接,就会在右边显示对应类别的图书,由于一种类别的图书可能比较多,所以要采用分页显示功能。把Pager类放在该项目org.bookstore.util 包中。在Action类中直接导入该类就

40、可以直接应用了。例如,单击图书类别为【java】的图书,出现如图P1.8所示的界面。图P1.8 图书类别显示P1.4 显示指定类别图书实现Pager.java类的代码。在DAO接口 IBookDAO.java中加入方法:/分页查询public List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize);/得到该类别的图书的总数public int getTotalByCatalog(Integer catalogid);P1.4 显示指定类别图书DAO实现类BookDAO.java代码如下:publ

41、ic List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize)Session session=this.getHibernateTemplate().getSessionFactory().openSession();Query query=session.createQuery(from Book b where b.catalog.catalogid=?);query.setParameter(0, catalogid);int startRow=(current1)*pageSize;que

42、ry.setFirstResult(startRow); query.setMaxResults(pageSize);List books=query.list();session.close();return books;public int getTotalByCatalog(Integer catalogid)List books=this.getHibernateTemplate().find(from Book b where b.catalog.catalogid=?,catalogid);return books.size();P1.4 显示指定类别图书在业务逻辑接口IBookS

43、ervice.java中加入方法:/分页查询public List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize);/得到该类别的图书的总数public int getTotalByCatalog(Integer catalogid);业务逻辑实现类BookService.java代码如下:public List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize)return bookDAO.getBoo

44、kByCatalogidPaging(catalogid, currentPage, pageSize);public int getTotalByCatalog(Integer catalogid)return bookDAO.getTotalByCatalog(catalogid);P1.4 显示指定类别图书方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /browseBookPaging.jsp在BookAction.java中加入方法及分页功能用到的属性。最后是成功后跳转的成功界面browseBookPaging.jsp:P1.5 图书查询在head.j

45、sp页面中,不只有登录、注销、注册功能,在它们的下面,还有图书搜索查询功能,如在搜书输入框中输入“My”,就会出现如图P1.9所示的界面。图P1.9 图书搜索结果P1.5 图书查询在DAO接口IBookDAO.java中加入方法:public List getRequiredBookByName(String name);在DAO实现类BookDAO.java代码如下:public List getRequiredBookByName(String name) try List books=this.getHibernateTemplate().find(from Book where boo

46、kname like %+name+%); return books; catch(Exception e) e.printStackTrace(); return null; 在业务逻辑接口IBookService.java中加入方法:public List getRequiredBookByName(String name);P1.5 图书查询业务逻辑实现类BookService.java代码如下:public List getRequiredBookByName(String name) return bookDAO.getRequiredBookByName(name);方法实现完成后

47、,就是Action实现了,首先在struts.xml中进行配置: /searchBook_result.jspP1.5 图书查询在BookAction.java中加入方法:private String bookname;/根据输入的书名或部分书名查询public String getBookname() return bookname;public void setBookname(String bookname) this.bookname = bookname;public String searchBook() throws Exception List books = bookServ

48、ice.getRequiredBookByName(this.getBookname();Map request = (Map)ActionContext.getContext().get(request);System.out.println(bookname);request.put(books,books);return SUCCESS;最后是成功后跳转的成功界面searchBook_result.jsp。P1.6 添加图书到购物车单击图书分类下的超链接查询出来的图书及输入关键字查询出来的图书都可以填写数量后单击【购买】按钮,把图书添加到购物车中。例如,将P1.5节搜索出来的图书输入想要

49、购买的数量,单击【购买】按钮,就会把要买的图书添加到购物车中,如图P1.10所示。图P1.10 添加图书到购物车P1.6 添加图书到购物车首先,创建一个购物车模型,把一些关于购物车的方法封装进去,以便用到时直接调用,方便维护及扩展。在org.bookstore.tool包中创建Cart.java。首先把想购买的书籍添加到购物车,需要先找到该书籍。也许读者已经发现,在每个显示图书页面,数量的下面都有这样的代码:input type=“hidden” value=“” name=“bookid”在DAO接口IBookDAO.java中加入方法:public Book getBookById(Int

50、eger bookid);在DAO实现类BookDAO.java代码如下:public Book getBookById(Integer bookid)Book book=(Book) this.getHibernateTemplate().get(Book.class, bookid);return book;在业务逻辑接口IBookService.java中加入方法:public Book getBookById(Integer bookid);P1.6 添加图书到购物车业务逻辑实现类BookService.java代码如下:public Book getBookById(Integer

51、bookid)return bookDAO.getBookById(bookid);方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /addToCart_success.jsp新建ShoppingAction.java,其方法实现。P1.6 添加图书到购物车把该Action类交由Spring管理,在applicationContext.xml中配置如下代码:最后是成功后的跳转的页面addToCart_success.jsp,代码。P1.7 显示购物车单击可列出购物车中的所有书籍,如果购物车中没有书籍,就会显示“对不起,您还没有选购任何书籍”。在上面的介绍中,我们

52、购买了MySQL实用教程这本书,现在单击【购物车】超链接,显示购物情况,如图P1.11所示。图P1.11 显示购物车信息P1.7 显示购物车该页面showCart.jsp代码实现。在struts.xml中Action配置如下: /showCart.jspShoppingAction类的实现如下:public String updateCart() throws ExceptionMap session=ActionContext.getContext().getSession();Cart cart=(Cart)session.get(cart); /直接调用购物车模型中的方法实现修改图书数量

53、cart.updateCart(bookid, this.getQuantity();System.out.println(this.getQuantity();session.put(cart, cart);return SUCCESS;P1.8 结账从图P1.11的显示购物车界面可以看出,在下面有【进入结算中心】按钮,单击它进入结账功能模块。在该模块中,首先验证用户是否已经登录,如果没有登录,就跳转到登录界面,让用户登录;如果用户已经登录,就把订单项添加到订单中,并保存该订单,如图P1.12所示。图P1.12 订单添加成功界面P1.8 结账DAO接口IOrderDAO.java:packa

54、ge org.bookstore.dao;import org.bookstore.model.Orders;public interface IOrderDAO public Orders saveOrder(Orders order);DAO实现类OrderDAO.java:package org.bookstore.dao.impl;import org.bookstore.dao.IOrderDAO;import org.bookstore.model.Orders;import org.hibernate.Session;import org.hibernate.Transactio

55、n;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class OrderDAO extends HibernateDaoSupport implements IOrderDAO public Orders saveOrder(Orders order) this.getHibernateTemplate().save(order);return order;P1.8 结账业务逻辑接口IOrderService.java:package org.bookstore.service;impo

56、rt org.bookstore.model.Orders;public interface IOrderService public Orders saveOrder(Orders order);业务逻辑实现类OrderService.java:package org.bookstore.service.impl;import org.bookstore.dao.IOrderDAO;import org.bookstore.model.Orders;import org.bookstore.service.IOrderService;public class OrderService implements IOrderService private IOrderDAO orderDAO;public void setOrderDAO(IOrderDAO orderDAO) this.orderDAO = orderDAO;public Orders saveOrder(Orders order) return orderDAO.saveOrder(order);P1.8 结账在

温馨提示

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

评论

0/150

提交评论