版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 数据概念模型,P1
3、.1 系统分析和设计,其中实体之间还可能存在对应关系。 图书分类和图书:一个图书类别中有多本图书,一本图书属于一个图书分类,是一对多的关系。 用户和订单:一个用户可以拥有多个订单,一个订单只能属于一个用户,它们之间的关系是一对多的关系,在数据库中表现为订单表中有一个用户表的外键。 订单和订单项:一个订单中包含多个订单项,一个订单项只能属于一个订单,是一对多的关系。 图书和订单项:一个订单项就是对图书的封装,订单项中除了有该商品信息外,还有该商品的购买数量等。,P1.1 系统分析和设计,根据前面的分析,具体表结构如表P1.1表P1.5所示,表P1.1 用户表userTable,表P1.2 图书分
4、类表catalog,表P1.3 图书表book,P1.1 系统分析和设计,表P1.4 订单表order,表P1.5 订单项表orderitem,P1.1 系统分析和设计,3. 搭建系统框架 主要步骤如下: 创建Web Project; 创建包; 修改web.xml,添加struts.xml文件; 加载用户自定义包,修改web.xml,添加perties文件; 加载Hibernate框架; 对数据库表进行反向工程,生成映射文件。,P1.1 系统分析和设计,具体操作如下: 在MyEclipse中创建新的Web Project,命名为“bookstore”。 创建如图P1.4所示
5、的包。,图P1.4 项目主要包,P1.1 系统分析和设计, 修改web.xml代码。 struts2 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* ,P1.1 系统分析和设计,在src文件夹下添加struts.xml文件,内容如下: / 以后在这里添加action ,P1.1 系统分析和设计, 添加Spring框架,步骤如5.7节的第3步。加载用户自定义包hiberante3。创建新的applicationContext.xml文件,存放在WebRoot/WEB-INF文件夹下。 修改web.xml代码如下: struts2
6、 org.apache.struts2.dispatcher.FilterDispatcher struts2 /* org.springframework.web.context.ContextLoaderListener 在src文件夹下添加perites文件,增加对Spring的支持。代码如下: struts.objectFactory=spring,P1.1 系统分析和设计, 添加Hibernate框架。添加Hibernate类库,将Hibernate的配置信息存放在Spring配置文件applicationContext.xml中。不新建Spring配置文件,Se
7、ssionFactory ID命名为“sessionFactory”,选择数据源驱动为mysql(数据源驱动的创建请参考4.2.1节的第2步),数据源ID命名为“dataSource”,不创建SessionFactory类。 反向工程,添加映射文件。在MyEclipse中切换到MyEclipse Database Explorer视窗,选中5个创建好的表,右击【Hibernate Reverse Enginerring】菜单项,利用反向工程,将对应的Java类和映射文件放在org.bookstore.model文件夹中(不用选择创建DAO)。将ID的创建设置为native。,P1.1 系统分析
8、和设计,User.java代码如下: package org.bookstore.model; import java.util.HashSet; import java.util.Set; public class User implements java.io.Serializable private Integer userid; private String username; private String password; private String sex; private Integer age; private Set orderses = new HashSet(0);/
9、该用户的订单 /省略上述属性的setter和getter方法 User.hbm.xml代码。,P1.1 系统分析和设计,Book.java代码如下: package org.bookstore.model; public class Book implements java.io.Serializable private Integer bookid; private String bookname; private Integer price; private String picture; private Catalog catalog; public Book() public Book
10、(String bookname, Integer price, String picture,Catalog catalog) this.bookname = bookname; this.price = price; this.picture = picture; this.catalog = catalog; /省略上述属性的getter和setter方法 Book.hbm.xml代码修改。,P1.1 系统分析和设计,Catalog.java代码修改如下: package org.bookstore.model; import java.util.HashSet; import java
11、.util.Set; public class Catalog implements java.io.Serializable private Integer catalogid; private String catalogname; private Set books = new HashSet(); /省略上述属性的getter和setter方法 Catalog.hbm.xml代码修改。,P1.1 系统分析和设计,Orderitem.java代码修改如下: package org.bookstore.model; public class Orderitem implements jav
12、a.io.Serializable private Integer orderitemid; private Book book;/该订单项书籍 private Orders orders;/该订单项属于哪个订单 private Integer quantity; /省略上述属性的getter和setter方法 ,P1.1 系统分析和设计,Orderitem.hbm.xml代码修改如下: ,P1.1 系统分析和设计,Orders.java代码修改如下: package org.bookstore.model; import java.util.Date; import java.util.Ha
13、shSet; 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();/包含的订单项 /省略上述属性的getter和setter方法 Orders.hbm.xml代码修改。 完成以后,修改applicationContext.xml文件,添加映射。,P1.2 注册、登录
14、和注销,在主界面的头部,单击【注册】超链接,呈现如图P1.5所示的界面,要求用户填写注册信息。,图P1.5 用户注册界面,P1.2 注册、登录和注销,在WebRoot文件夹下建立文件夹css,建立CSS文件bookstore.css,本例中用到的CSS代码。 CSS样式应用非常简单,常用的有两种:一种是定义标签样式;另一种是定义类样式。标签样式如body、img、a等是页面中常用到的标签,在文件中定义CSS样式后,在页面中该标签就使用对应的样式。例如,在CSS定义了a标签的样式如下: a font-family: 宋体; color: #000000; 那么在页面中出现: 链接 根据a标签定义
15、的样式来显示“链接”两个字,字体为宋体、颜色为#000000。 而类样式则不同,定义一个样式的类格式如下: .name 该类样式的属性 ,P1.2 注册、登录和注销,在页面标签中加入class=name属性,该标签就可以使用CSS中.name定义的样式。例如, 表示在这个div块中的内容都遵循name样式。在定义类样式时,名称前面有“.”,而调用时则不用加。 样式表有很多属性,读者可以查阅更详细的资料。 浏览者首先进入网上购书系统主界面,查阅图书信息。该功能由index.jsp页面实现,其代码。 下面来实现注册功能模块。首先在主界面的上方是head.jsp,该JSP页面有一些超链接,具体代码。
16、,P1.2 注册、登录和注销,可以在电子工业出版社华信教育资源网下载该项目源代码获得本项目用到的图片。单击【注册】按钮,出现如图P1.5所示的界面,register.jsp代码实现。 foot.jsp为页面的尾部,其实现代码非常简单,一般是版权说明等内容,其代码。 下面分别给出这些内容,不再做过多的解释。 DAO接口IUserDAO.java: package org.bookstore.dao; import org.bookstore.model.User; public interface IUserDAO public void saveUser(User user); ,P1.2 注
17、册、登录和注销,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 HibernateDaoSupport implements IUserDAO public vo
18、id 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 org.bookstore.service.impl; import or
19、g.bookstore.dao.IUserDAO; import org.bookstore.model.User; import org.bookstore.service.IUserService; public class UserService implements IUserService private IUserDAO userDAO; public void setUserDAO(IUserDAO userDAO) this.userDAO=userDAO; public void saveUser(User user) this.userDAO.saveUser(user);
20、 ,P1.2 注册、登录和注销,在applicationContext.xml中进行依赖注入: 方法实现完成后,就是Action实现了,首先在struts.xml中进行如下配置: /register_success.jsp UserAction.java中方法。,P1.2 注册、登录和注销,把该Action类交由Spring管理,在applicationContext.xml中配置如下代码: 最后是注册成功后跳转的成功界面register_success.jsp。,P1.2 注册、登录和注销,注册功能完成后,就可以登录了,单击head.jsp页面的【登录】超链接,呈现如图P1.6所示的界面。,
21、图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().find(from
22、User u where u.username=? and u.password=?,str); if(list.size()0) User user=(User)list.get(0); return user; else return null; 在业务逻辑接口IUserService.java中加入如下方法: public User validateUser(String username,String password); 在业务逻辑实现类UserService.java中加入方法的实现: public User validateUser(String username,String
23、password) return userDAO.validateUser(username, password); ,P1.2 注册、登录和注销,方法实现完成后,就是Action实现了,首先在struts.xml中进行如下配置: /login_success.jsp /login.jsp UserAction.java中方法如下: public String execute() throws Exception User u=userService.validateUser(user.getUsername(),user.getPassword(); if(u !=null) Map ses
24、sion=ActionContext.getContext().getSession(); session.put(user, u); return SUCCESS; else return ERROR; ,P1.2 注册、登录和注销,从Action类中也可以看出,登录成功时,将用户信息保存在session中,而在head.jsp中进行判断,如果能在session中取到用户对象,就显示注销,而不是登录,登录成功后的界面如图P1.7所示。,图P1.7 登录成功页面,P1.2 注册、登录和注销,可以看出,登录成功后,原来的【登录】超链接就变成【注销】超链接了。下面看登录成功页面login_succ
25、ess.jsp代码。 truts.xml中的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.j
26、ava: package org.bookstore.dao; import 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;
27、 public class CatalogDAO extends HibernateDaoSupport implements ICatalogDAO public 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 I
28、CatalogService public List getAllCatalogs(); 业务逻辑实现类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 catalogDA
29、O; public List getAllCatalogs() return catalogDAO.getAllCatalogs(); public void setCatalogDAO(ICatalogDAO catalogDAO) this.catalogDAO = catalogDAO; ,P1.3 图书类别及新书展示,在applicationContext.xml中进行依赖注入: 方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /menu.jsp ,P1.3 图书类别及新书展示,BookAction.java中的方法: package org.books
30、tore.action; import java.util.List; import java.util.Map; import org.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.ActionSupp
31、ort; public class BookAction extends ActionSupport protected ICatalogService catalogService; public void setCatalogService(ICatalogService catalogService) this.catalogService = catalogService; public String browseCatalog() throws Exception List catalogs=catalogService.getAllCatalogs(); Map request=(
32、Map)ActionContext.getContext().get(request); request.put(catalogs,catalogs); return 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.
33、model.Book; public interface IBookDAO public List getNewBook(); ,P1.3 图书类别及新书展示,DAO实现类BookDAO.java: 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.
34、springframework.orm.hibernate3.support.HibernateDaoSupport; public class BookDAO extends HibernateDaoSupport implements IBookDAO public List getNewBook() Session session=this.getHibernateTemplate().getSessionFactory().openSession(); Query query=session.createQuery(from Book b); query.setFirstResult(
35、0); query.setMaxResults(5); List books=query.list(); session.close(); return books; ,P1.3 图书类别及新书展示,业务逻辑接口IBookService.java: package org.bookstore.service; import java.util.List; import org.bookstore.model.Book; public interface IBookService public List getNewBook(); 业务逻辑实现类BookService.java: package
36、 org.bookstore.service.impl; import java.util.List; import org.bookstore.dao.IBookDAO; import org.bookstore.model.Book; import org.bookstore.service.IBookService; public class BookService implements IBookService protected IBookDAO bookDAO; public void setBookDAO(IBookDAO bookDAO) this.bookDAO = book
37、DAO; public List getNewBook() return bookDAO.getNewBook(); ,P1.3 图书类别及新书展示,在applicationContext.xml中进行依赖注入: 方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /newBook_success.jsp ,P1.3 图书类别及新书展示,在BookAction.java中加入newBook方法及业务逻辑属性: protected IBookService bookService; public void setBookService(IBookService boo
38、kService) this.bookService = bookService; public String newBook() throws Exception List books=bookService.getNewBook(); Map request=(Map)ActionContext.getContext().get(request); request.put(books, books); return SUCCESS; 该Action类在上面的显示图书类表中已经配置交由Spring管理,但是由于添加了新的set注入属性,所以在原配置的基础上加入新的属性: 最后是成功后跳转的成
39、功界面newBook_success.jsp。,P1.4 显示指定类别图书,单击左边的【图书类别】超链接,就会在右边显示对应类别的图书,由于一种类别的图书可能比较多,所以要采用分页显示功能。把Pager类放在该项目org.bookstore.util 包中。在Action类中直接导入该类就可以直接应用了。例如,单击图书类别为【java】的图书,出现如图P1.8所示的界面。,图P1.8 图书类别显示,P1.4 显示指定类别图书,实现Pager.java类的代码。 在DAO接口 IBookDAO.java中加入方法: /分页查询 public List getBookByCatalogidPagi
40、ng(Integer catalogid,int currentPage,int pageSize); /得到该类别的图书的总数 public int getTotalByCatalog(Integer catalogid);,P1.4 显示指定类别图书,DAO实现类BookDAO.java代码如下: public List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize) Session session=this.getHibernateTemplate().getSessionFactory()
41、.openSession(); Query query=session.createQuery(from Book b where b.catalog.catalogid=?); query.setParameter(0, catalogid); int startRow=(currentPage-1)*pageSize; query.setFirstResult(startRow); query.setMaxResults(pageSize); List books=query.list(); session.close(); return books; public int getTota
42、lByCatalog(Integer catalogid) List books=this.getHibernateTemplate().find(from Book b where b.catalog.catalogid=?,catalogid); return books.size(); ,P1.4 显示指定类别图书,在业务逻辑接口IBookService.java中加入方法: /分页查询 public List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize); /得到该类别的图书的总数 pu
43、blic int getTotalByCatalog(Integer catalogid); 业务逻辑实现类BookService.java代码如下: public List getBookByCatalogidPaging(Integer catalogid,int currentPage,int pageSize) return bookDAO.getBookByCatalogidPaging(catalogid, currentPage, pageSize); public int getTotalByCatalog(Integer catalogid) return bookDAO.g
44、etTotalByCatalog(catalogid); ,P1.4 显示指定类别图书,方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /browseBookPaging.jsp 在BookAction.java中加入方法及分页功能用到的属性。 最后是成功后跳转的成功界面browseBookPaging.jsp:,P1.5 图书查询,在head.jsp页面中,不只有登录、注销、注册功能,在它们的下面,还有图书搜索查询功能,如在搜书输入框中输入“My”,就会出现如图P1.9所示的界面。,图P1.9 图书搜索结果,P1.5 图书查询,在DAO接口IBookDAO.j
45、ava中加入方法: public List getRequiredBookByName(String name); 在DAO实现类BookDAO.java代码如下: public List getRequiredBookByName(String name) try List books=this.getHibernateTemplate(). find(from Book where bookname like %+name+%); return books; catch(Exception e) e.printStackTrace(); return null; 在业务逻辑接口IBookS
46、ervice.java中加入方法: public List getRequiredBookByName(String name);,P1.5 图书查询,业务逻辑实现类BookService.java代码如下: public List getRequiredBookByName(String name) return bookDAO.getRequiredBookByName(name); 方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /searchBook_result.jsp ,P1.5 图书查询,在BookAction.java中加入方法: private
47、 String bookname;/根据输入的书名或部分书名查询 public String getBookname() return bookname; public void setBookname(String bookname) this.bookname = bookname; public String searchBook() throws Exception List books = bookService.getRequiredBookByName(this.getBookname(); Map request = (Map)ActionContext.getContext(
48、).get(request); System.out.println(bookname); request.put(books,books); return SUCCESS; 最后是成功后跳转的成功界面searchBook_result.jsp。,P1.6 添加图书到购物车,单击图书分类下的超链接查询出来的图书及输入关键字查询出来的图书都可以填写数量后单击【购买】按钮,把图书添加到购物车中。例如,将P1.5节搜索出来的图书输入想要购买的数量,单击【购买】按钮,就会把要买的图书添加到购物车中,如图P1.10所示。,图P1.10 添加图书到购物车,P1.6 添加图书到购物车,首先,创建一个购物车模
49、型,把一些关于购物车的方法封装进去,以便用到时直接调用,方便维护及扩展。在org.bookstore.tool包中创建Cart.java。 首先把想购买的书籍添加到购物车,需要先找到该书籍。也许读者已经发现,在每个显示图书页面,数量的下面都有这样的代码: ” name=“bookid” 在DAO接口IBookDAO.java中加入方法: public Book getBookById(Integer bookid); 在DAO实现类BookDAO.java代码如下: public Book getBookById(Integer bookid) Book book=(Book) this.ge
50、tHibernateTemplate().get(Book.class, bookid); return book; 在业务逻辑接口IBookService.java中加入方法: public Book getBookById(Integer bookid);,P1.6 添加图书到购物车,业务逻辑实现类BookService.java代码如下: public Book getBookById(Integer bookid) return bookDAO.getBookById(bookid); 方法实现完成后,就是Action实现了,首先在struts.xml中进行配置: /addToCart
51、_success.jsp 新建ShoppingAction.java,其方法实现。,P1.6 添加图书到购物车,把该Action类交由Spring管理,在applicationContext.xml中配置如下代码: 最后是成功后的跳转的页面addToCart_success.jsp,代码。,P1.7 显示购物车,单击可列出购物车中的所有书籍,如果购物车中没有书籍,就会显示“对不起,您还没有选购任何书籍”。在上面的介绍中,我们购买了MySQL实用教程这本书,现在单击【购物车】超链接,显示购物情况,如图P1.11所示。,图P1.11 显示购物车信息,P1.7 显示购物车,该页面showCart.j
52、sp代码实现。 在struts.xml中Action配置如下: /showCart.jsp ShoppingAction类的实现如下: public String updateCart() throws Exception Map session=ActionContext.getContext().getSession(); Cart cart=(Cart)session.get(cart); /直接调用购物车模型中的方法实现修改图书数量 cart.updateCart(bookid, this.getQuantity(); System.out.println(this.getQuanti
53、ty(); session.put(cart, cart); return SUCCESS; ,P1.8 结账,从图P1.11的显示购物车界面可以看出,在下面有【进入结算中心】按钮,单击它进入结账功能模块。在该模块中,首先验证用户是否已经登录,如果没有登录,就跳转到登录界面,让用户登录;如果用户已经登录,就把订单项添加到订单中,并保存该订单,如图P1.12所示。,图P1.12 订单添加成功界面,P1.8 结账,DAO接口IOrderDAO.java: package org.bookstore.dao; import org.bookstore.model.Orders; public int
54、erface 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.Transaction; import org.springframework.orm.hibernate3.support.Hibern
55、ateDaoSupport; 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; import org.bookstore.model.Orders; public interface IOr
56、derService 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 结账,在applicationContext.xml中进行依赖注入: 方法实现完成后,就是Action实现了,首先在struts.xml中进行配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山泉小学教学常规管理制度(3篇)
- 项目管理制度及格式范文(3篇)
- 茶室品茗活动策划方案(3篇)
- 教育管理制度学习体会(3篇)
- 2026年河北唐山中心医院肾内科急聘英才1名考试参考试题及答案解析
- 2026年福建莆田砺志高级中学多学科教师招聘若干人备考考试题库及答案解析
- 海南儋州市2026届教育部直属师范大学公费师范毕业生供需见面招聘24人(一)备考考试题库及答案解析
- 2026北京航空航天大学集成电路科学与工程学院聘用编科研助理F岗招聘1人备考考试题库及答案解析
- 2025湖南郴州市永兴县基层医疗卫生单位招聘专业技术人员选岗15人备考考试题库及答案解析
- 2026北京北化化学科技有限公司招聘15人考试备考题库及答案解析
- 2025年对中国汽车行业深度变革的观察与思考报告
- 福建省泉州市晋江市2024-2025学年八年级上学期1月期末考试英语试题(含答案无听力音频及原文)
- 心血管疾病风险评估
- 慢性肝病患者营养支持护理培训
- 汽车租赁业应急预案(3篇)
- 基层高血压管理流程
- 2026年咨询工程师咨询实务考前冲刺重点知识考点总结记忆笔记
- 2025年内蒙古自治区呼和浩特市评审专家考试题库(一)
- 电化学储能电站安全检查要点表
- 空军招飞心理测试题及答案解析
- 2025年及未来5年中国凹凸棒石市场竞争格局及投资战略规划报告
评论
0/150
提交评论