版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单元8基于Spring的Web应用程序开发单元8基于Spring的Web应用程序开发Spring是一个轻量级的开源框架,Spring的一个最大的目的就是使Java EE开发更加容易,Spring不同于Struts、Hibernate等单层框架,它致力于提供一个以统一的、高效的方式构造整个应用系统,并且可以将单层框架以最佳的组合揉和在一起,建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的框架,可以为POJO(Plain Old Java Object)对象提供企业级的服务。【问题探析】【问题1】使用实例解释“依赖注入”。【问题2】AOP(面向切面编程)与OOP(面向对象编程)有
2、何区别与关系?【知识必备】1Spring概述Spring是一个为了解决企业应用开发的复杂性而创建的开源框架,由Rod Johnson创建。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。2Spring框架的组成模块Spring框架由七个定义明确的模块组成,如图8-2所示。它们提供了企业级开发需要的所有功能。每个模块都可以单独使用,也可以和其他模块组合使用,灵活方便的部署可以使开发的程序更加简洁。(1)Spring Core模块(2)Spri
3、ng Context(应用上下文)模块(3)Spring AOP模块(4)Spring DAO模块(5)Spring ORM(对象/关系映射)集成模块(6)Spring Web模块(7)Spring MVC框架3BeanFactory与ApplicationContext的比较Spring的IoC容器就是一个实现了BeanFactory接口的可实例化类。事实上,Spring提供了两种不同的容器:一种是最基本的BeanFactory,另一种是扩展的ApplicationContext。BeanFactory仅提供了最基本的依赖注入支持,而ApplicationContext则扩展了BeanFac
4、tory,提供了更多的额外功能。BeanFactory(com.springframework.beans.factory.BeanFactory)是Spring 框架最核心的接口,它提供了高级IoC 的配置机制。ApplicationContext(com.springframework.context.ApplicationContext)建立在BeanFactory 基础之上。几乎所有的应用场合我们都直接使用ApplicationContext而非底层的BeanFactory。4Spring IoCSpring框架中的各个部分充分使用了依赖注入(Dependency injection)
5、技术,使代码中不再有单实例垃圾和麻烦的属性文件,取而代之的是一致和优雅的程序代码。Dependency injection是一个将行为从依赖中分离的技术,简单地说,它允许编程者定义一个方法函数依赖于外部其他各种交互,而不需要编码如何获得这些外部交互的实例。 这样就在各种组件之间解耦,从而获得干净的代码,相比依赖的硬编码,一个组件只有在运行时才调用其所需要的其他组件,因此在代码运行时,通过特定的框架或容器,将其所需要的其他依赖组件进行注入,即为主动推入。依赖注入有如下3种实现方式,Spring支持后两种。(1)接口注入(2)Setter注入(3)构造器注入5Spring AOPAOP(Aspec
6、t Oriented Programming,面向切面编程)为我们带来了新的想法、新的思想和新的模式。AOP是一个概念、一个规范,本身并没有设定具体语言的实现,这实际上提供了非常广阔的发展空间。AspectJ是AOP的一个很悠久的实现,它能够和Java配合起来使用。Spring AOP是继Spring IoC之后的Spring框架的又一特性,也是该框架的核心内容。Spring AOP建立在Java的代理机制之上,Spring框架已经基本实现了AOP的思想,Spring AOP的接口实现了AOP联盟定制的标准化接口,这就意味着它已经走向了标准化,在众多的AOP实现技术中,Spring AOP最为
7、成熟。【操作必备】(1)下载与配置SpringSpring官方网站的网址是,在该网站上可以获取Spring的最新版本的Jar包以及帮助文档,本书所使用的Spring开发包为spring 3.1.1版本。(2)下载并安装好数据库管理系统SQL Server 2008。(3)在Microsoft SQL Server 2008中创建数据库ECommerce,并在该数据库中创建“商品数据表”、“商品类型表”和“用户表”。(4)从网上下载Servlet支持类库servlet-api.jar、JDBC支持类库sqljdbc4.jar和Hibernate
8、支持类库的jar包。(5)准备开发Web应用程序所需的图片文件、CSS样式文件和验证用的Javascript文件。(6)启动Eclipse,设置工作空间为Unit08,然后进入Eclipse的开发环境。(7)在Eclipse集成开发环境中配置与启动Tomcat服务器。(8)新建动态Web项目,命名为task8-X,本单元有6个任务,每个任务创建一个独立的Web项目,命名分别为task8-1至task8-6。(9)在Web项目中创建包,将其命名为“package08X”,本单元各个Web项目中的包分别命名为package081至package086。(10)将Jar包文件servlet-api.
9、jar和sqljdbc4.jar拷贝到各个Web项目的文件夹“WebContentWEB-INFlib”下,并在Eclipse集成开发环境的“项目资源管理器”刷新各个Web项目。【基础应用】【任务8-1】BeanFactory与ApplicationContext的应用【任务描述】(1)创建用户的JavaBean,将其命名为“UserInfo”。(2)创建Spring的配置文件applicationContext.xml,在该配置文件中为JavaBean的属性赋值。(3)使用BeanFactory加载JavaBean的配置,获取JavaBean,并输出其属性值。(4)使用Application
10、Context加载JavaBean的配置,获取JavaBean,并输出其属性值。【任务实施】1配置程序开发环境首先新建动态Web项目task8-1,在该项目中创建包package081。然后按照【操作必备】中介绍的方法导入Spring支持类库、Servlet支持类库servlet-api.jar。2创建用户实体类文件UserInfo.java在包package081中创建实体类,将该实体类命名为“UserInfo”,该类封装了用户的详细信息,代码如表8-1所示。3创建Spring的配置文件applicationContext.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建
11、Spring的配置文件applicationContext.xml,该配置文件通过<property>元素为JavaBean的属性赋值。其主要代码如表8-2所示。4创建Servlet类UserServlet8_11在包package081中创建一个Servlet类,将其命名为“UserServlet8_11”,该类的doGet()方法中使用ClassPathResource类加载配置文件,使用类XmlBeanFactory读取配置信息加载JavaBean,调用BeanFactory类的getBean()方法获取JavaBean。然后通过JavaBean对象的相应的getXXX()方
12、法获取并输出用户信息,该方法的代码如表8-3所示。5创建Servlet类UserServlet8_12在包package081中创建一个Servlet类,将其命名为“UserServlet8_12”,该类的doGet()方法中使用ClassPathXmlApplicationContext类加载配置文件,调用ApplicationContext类的getBean()方法获取JavaBean。然后通过JavaBean对象的相应的getXXX()方法获取并输出用户信息,该方法的代码如表8-4所示。6创建JSP页面task8-11.jsp在Web项目task8-1中创建名为“task8-11.jsp
13、”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象UserServlet8_11,其代码如下所示。<jsp:forward page="UserServlet8_11"></jsp:forward>7创建JSP页面task8-12.jsp在Web项目task8-1中创建名为“task8-12.jsp”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象UserServlet8_12,其代码如下所示。<jsp:forward page="UserServlet8_12"></jsp:fo
14、rward>8运行程序输出结果运行JSP页面task8-11.jsp,输出如图8-4所示所示的用户信息。图8-4JSP页面task8-11.jsp的运行结果然后运行JSP页面task8-12.jsp,输出的用户信息如图8-4所示。【任务8-2】使用JdbcTemplate类在商品数据表中查询数据【任务描述】JdbcTemplate类是Spring的核心类之一,该类在内部已经处理数据库资源的建立和释放,并可以避免一些常见的错误,简化了编写JDBC时所需的基础代码。JdbcTemplate类可以直接通过数据源的引用实例化,然后在服务中使用。使用JdbcTemplate类在商品数据表中查询数据
15、。【任务实施】1配置程序开发环境首先新建动态Web项目task8-2,在该项目中创建包package082。然后按照【操作必备】中介绍的方法导入Spring支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar。2创建商品实体类文件GoodsInfo.java在包package082中创建实体类,将该实体类命名为“GoodsInfo”,该类封装了商品的详细信息,代码如表7-1所示。3创建类文件GoodsInfoDao.java在包package082中创建类GoodsInfoDao,该类继承自JdbcDaoSupport类,主要用于对数据库进行操作
16、,其代码如表8-5所示。4创建Spring的配置文件applicationContext.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建Spring的配置文件applicationContext.xml,该配置文件通过<property>元素为属性赋值。其主要代码如表8-6所示。5创建Servlet类GetInfoServlet在包package082中创建一个Servlet类,将其命名为“GetInfoServlet”,该类的init()方法中使用ClassPathXmlApplicationContext类加载配置文件,然后调用BeanFactory类的g
17、etBean()方法获取GoodsInfoDao对象。doGet()方法对应页面中的Get请求,这里让Get请求去执行doPost()方法,代码如下所示。protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException doPost(request, response); / 让get请求执行post方法doPost()方法对应页面中的Post请求,其代码实现查询“商品数据表”中的部分记录,然后转向到JSP页面printInfo.
18、jsp。Servlet类GetInfoServlet三个方法的代码如表8-7所示。6创建JSP页面printInfo.jsp在Web项目task8-2中创建名为“printInfo.jsp”的JSP页面,该页面通过<c:forEach>标签将list列表中的所有信息显示在JSP页面中,其主要代码如表8-8所示。7创建JSP页面task8-2.jsp在Web项目task8-2中创建名为“task8-2.jsp”的JSP页面,该页面用于将当前页面的请求转发给Servlet对象GetInfoServlet,其代码如下所示。<jsp:forward page="GetInf
19、oServlet"></jsp:forward>8运行程序输出结果运行JSP页面task8-2.jsp,输出如图8-5所示所示的商品信息。【任务8-3】在Spring中利用DAO模式向商品数据表添加数据【任务描述】数据源对象DataSource主要用于操作数据库,通过它可以建立与数据库的连接,该数据源对象在Spring中提供了javax.sql.DataSource接口的实现,只需在Spring的配置文件中进行相关的配置即可。利用DAO(Data Access Object,数据访问对象)模式向商品数据表添加数据。【任务实施】1配置程序开发环境首先新建动态Web项目
20、task8-3,在该项目中创建包package083。然后按照【操作必备】中介绍的方法导入Spring支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar。2创建商品实体类文件GoodsInfo.java在包package083中创建实体类,将该实体类命名为“GoodsInfo”,该类封装了商品的详细信息,代码如表7-1所示。3创建类文件GoodsInfoDao.java在包package083中创建类GoodsInfoDao,该类中定义了一个用于操作数据库的数据源对象dataSource,通过该对象创建一个数据库连接,建立与数据库的连接。该类中
21、还定义了添加商品信息的addGoods()方法,其参数类型为GoodsInfo实体对象。类文件GoodsInfoDao.java的代码如表8-9所示。4创建Spring的配置文件applicationContext.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建Spring的配置文件applicationContext.xml,该配置文件中首先定义一个名称为“dataSource”的JavaBean,它是Spring中的类DriverManagerDataSource的实例,然后再配置GoodsInfoDao类,并且注入其dataSource属性值。其主要代码如表8-10
22、所示。5创建JSP页面AddGoodsInfo.jsp在Web项目task8-3中创建名为“AddGoodsInfo.jsp”的JSP页面,该页面用于加载配置文件applicationContext.xml,获取JavaBean的实例,调用类GoodsInfoDao的addGoods()方法将数据添加到“商品数据表”中,其主要代码如表8-11所示。JSP页面AddGoodsInfo.jsp中需要引入多个包,其代码如下所示。<% page language="java" contentType="text/html; charset=GB18030"
23、 pageEncoding="GB18030"%><%page import="org.springframework.context.support .ClassPathXmlApplicationContext"%><% page import="org.springframework.core.io.*"%><% page import="org.springframework.context.ApplicationContext"%> <% page impo
24、rt="package083.*"%>6创建JSP页面task8-3.jsp在Web项目task8-3中创建名为“task8-3.jsp”的JSP页面,该页面提供了添加商品数据的表单,并设置表单提交到AddGoodsInfo.jsp页面进行处理,其主要代码如表8-12所示。7运行程序输出结果运行JSP页面task8-3.jsp,显示新增商品数据的表单,在各个文本框中输入对应的商品数据,其结果如图8-6所示。然后单击【保存】按钮,显示“成功新增商品数据!”的提示信息。【渐进应用】【任务8-4】应用Spring AOP的表单控制器验证用户登录【任务描述】表单在网页中有着非
25、常重要的地位,在与用户交互时可以起到采集数据的作用。在Spring MVC中提供了表单控制器(SimpleFormController)来获取表单中的信息。只要把页中表单元素与JavaBean中的属性设置为相同的名称,表单控制器就会将表单中的数据封闭成一个JavaBean对象。通过扩展SimpleFormController类并重写该类的onSubmit()方法,可以实现自定义的表单控制器,当表单被提交时会执行onSubmit()方法。应用Spring AOP的表单控制器验证用户登录。【任务实施】1配置程序开发环境首先新建动态Web项目task8-4,在该项目中创建包package084。然后
26、按照【操作必备】中介绍的方法导入Spring支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar。2创建用户实体类文件UserInfo.java在包package084中创建实体类,将该实体类命名为“UserInfo”,该类封装了用户名和密码,使用getter()方法获取数据,代码如表8-13所示。3创建控制器类UserLoginController控制器类UserLoginControlle继承自SimpleFormController表单控制器类,并重写了onSubmit()方法,在该方法中对用户提交的用户名和密码进行验证,如果验证成功进入到
27、欢迎页面,如果验证失败则返回到输入页面并显示出错误提示信息。onSubmit()方法中传入了一个Object类型的对象,该对象封装了表单数据的实体对象。类文件UserLoginController.java的代码如表8-14所示。4创建Spring的配置文件applicationContext.xml在Eclipse的【项目资源管理器】的子文件夹“WEB-INF”中创建Spring的配置文件applicationContext.xml,该配置文件中首先配置了一个表单控制器UserLoginController,然后将commandClass参数设置为package084.UserInfo类型,
28、这样在表单被提交时Spring会自动将表单中的数据封装到UserInfo类型的对象,并传递到onSubmit()方法中。接下来还配置了formView和successView参数,这两个参数分别为输入信息的表单页面和表单处理完成后的转向页面。其主要代码如表8-15所示。5创建与配置web.xml文件在Eclipse的【项目资源管理器】的子文件夹“WEB-INF”中创建web.xml文件。Spring MVC是一个基于用户请求驱动的Web框架,其设计核心就是用来转发用户请求的核心控制器DispatcherServlet。其主要作用就是截获用户请求,所以它必须在应用程序启动时自动加载,并配置要截获
29、的请求类型,这就需要在web.xml文件中对核心控制器进行配置。web.xml文件的代码如表8-16所示。6创建JSP页面login8-4.jsp在Web项目task8-4中创建名为“login8-4.jsp”的JSP页面,该页面提供了用户登录的表单,但在该页面中并没有设置action属性,由于Spring MVC的表单控制器从被请求时起就已经开始控制表单,表单的载入、提交和转向结果页面都是由表单控制器来控制,所以没有设置action属性也能被正确提交,其主要代码如表8-17所示。7创建JSP页面message.jsp在Web项目task8-4中创建名为“message.jsp”的JSP页面,
30、该页面用于显示欢迎信息,当用户登录成功时会转向该页面,其主要代码如下所示。<span>欢迎光临!$userMap.userInfo.userName登录成功。</span>8创建页面userLogin.html在Web项目task8-4中创建名为“userLogin.html”的页面,该页面只是作为程序运行的起始页面,是一个空页面,并没有编写功能代码。9运行程序输出结果运行页面userLogin.html,显示用户登录页面,分别输入正确的用户名“admin”和密码“123456”,其结果如图8-7所示。然后单击【登录】按钮,转向JSP页面message.jsp,并在该页
31、面中显示“欢迎光临!admin登录成功。”的提示信息。【任务8-5】应用JdbcTemplate实现用户注册功能【任务描述】JdbcTemplate类是Spring的核心类之一,该类提供了接口来方便访问和处理数据库中的数据,这些方法提供了基本的选项用于执行查询和更新数据库操作。JdbcTemplate类实现了很多方法的重载特征,更新数据的常用方法是update(String)。应用JdbcTemplate实现用户注册功能。【任务实施】1配置程序开发环境首先新建动态Web项目task8-5,在该项目中创建包package085。然后按照【操作必备】中介绍的方法导入Spring支持类库、Servl
32、et支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar。2创建用户实体类文件UserInfo.java在包package085中创建实体类,将该实体类命名为“UserInfo”,该类封装了用户的详细信息,代码如表7-6所示。3创建类文件UserDao.java在包package085中创建类UserDao,该类用于操作数据库,在该类中声明一个JdbcTemplate类型属性,并添加getter()方法和setter()方法,用于将JdbcTemplate注入到UserDao,然后编写一个向用户表添加用户数据的方法addUser(),该方法中调用JdbcTemplate
33、类的update()方法向用户表中插入用户数据,其代码如表8-18所示。4创建Spring的配置文件applicationContext.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建Spring的配置文件applicationContext.xml,该配置文首先配置DataSource数据源,然后配置JdbcTemplate类,将数据源对象dataSource注入JdbcTemplate,最后配置UserDao,并将JdbcTemplate注入UserDao。其主要代码如表8-19所示。5创建JSP页面save8-5.jsp在Web项目task8-5中创建名为“save
34、8-5.jsp”的JSP页面,该页面用于处理用户数据,并显示相关提示信息,其主要代码如表8-20所示。JSP页面save8-5.jsp中需要引入多个包,其代码如下所示。<% page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><% page import="java.util.*" %><% page import="package085.*"%>
35、<%page import="org.springframework.context.support .ClassPathXmlApplicationContext"%><% page import="org.springframework.context.ApplicationContext"%>6创建JSP页面register8-5.jsp在Web项目task8-5中创建名为“register8-5.jsp”的JSP页面,该页面的主要代码与表2-16所示的代码相似,只是将action属性设置为“save8-5.jsp”。7运行
36、程序输出结果运行JSP页面register8-5.jsp,显示用户注册页面,在“用户名”文本框中输入“admin8”,在“密码”输入框中输入“123456”,在“邮箱地址”文本框中输入“123456”,如图8-8所示。然后单击【注册】按钮提交表单数据,所提交的数据交给JSP页面save8-5.jsp进行处理,弹出如图8-9所示的“注册成功”的提示信息对话框。【典型应用】【任务8-6】整合Spring与Hibernate操作商品数据表【任务描述】JdbcTemplate只是Spring对JDBC所做的简单封装,虽然可以实现对数据库的操作,但并不支持数据库连接池和缓存技术,所以在实际开发使用较少,
37、其主要用途是对程序进行测试。Hibernate是当前非常流行的持久层框架,可以使用Spring整合Hibernate对数据库进行基本操作。整合Spring与Hibernate实现商品数据表中数据的显示、修改和删除操作。【任务实施】1配置程序开发环境首先新建动态Web项目task8-6,在该项目中创建包package086和tools,然后在包package086中分别创建3个子包model、dao和servlet。然后按照【操作必备】中介绍的方法导入Spring支持类库、Hibernate支持类库、Servlet支持类库servlet-api.jar、数据库驱动包sqljdbc4.jar。2创
38、建商品实体类文件GoodsInfo.java在包model中创建商品实体类,将该实体类命名为“GoodsInfo”,该类封装了商品的详细信息,代码如表8-21所示。3创建商品实体对象的映射文件goods.hbm.xml在包dao中创建一个映射文件goods.hbm.xml,该映射文件将GoodsInfo实体对象映射为“商品数据表”,并设置了主键的生成策略为native。代码如表8-22所示。4创建类文件GoodsInfoDao.java在包dao中创建类GoodsInfoDao,该类主要用于对数据库进行操作,其代码如表8-23所示。5创建属性文件perties在Ecl
39、ipse的【项目资源管理器】的子文件夹“src”中创建属性文件perties,其代码如表8-24所示。6创建Spring的配置文件applicationContext.xml在Eclipse的【项目资源管理器】的子文件夹“src”中创建Spring的配置文件applicationContext.xml,该配置文首先配置DataSource数据源,然后配置JdbcTemplate类,将数据源对象dataSource注入JdbcTemplate,最后配置UserDao,并将JdbcTemplate注入UserDao。其主要代码如表8-25所示。7创建Servlet类Goo
40、dsInfoServlet在包servlet中创建一个Servlet类,将其命名为“GoodsInfoServlet”,该类继承自HttpServlet类,用于根据请求中的不同参数调用不同的数据库操作方法,(1)编写Servlet类GoodsInfoServlet的基本代码Servlet类GoodsInfoServlet的基本代码如表8-26所示。该类的init()方法中使用ClassPathXmlApplicationContext类加载配置文件applicationContext.xml,然后调用BeanFactory类的getBean()方法获取GoodsInfoDao对象。doGet(
41、)方法对应页面中的Get请求,这里让Get请求去执行doPost()方法。(2)编写Servlet类GoodsInfoServlet中doPost()方法的代码doPost()方法对应页面中的Post请求,它从请求中获取action的值,然后根据不同的请求值调用不同的方法对数据库进行操作,代码如表8-27所示。(3)在GoodsInfoServlet类中编写getAllInfo()方法的代码getAllInfo()方法调用goodsDao对象的getAllData()方法将商品数据表中的部分记录查找出来,保存在request对象的list属性中,该方法的代码如表8-28所示。(4)在Goods
42、InfoServlet类中编写getInfoById()方法的代码getInfoById()方法按照指定的商品ID在商品数据表中查找记录,将将找到的记录数据封装在goods对象中,保存在请求对象request中,然后转向到JSP页面updateInfo.jsp中。该方法的代码如表8-29所示。(5)在GoodsInfoServlet类中编写updateInfo ()方法的代码updateInfo ()方法从请求对象获取用户对商品数据的修改信息与商品ID,封装在info对象中,并通过调用goodsDao对象的update()方法,按照商品ID更新商品数据表中的数据,该方法的代码如表8-30所示。(6)在GoodsInfoServlet类中编写deleteInfo ()方法的代码deleteInfo ()方法从请求对象中获取要删除的记录的id,然后调用goodsDao对象删除数据记录的方法deleteData(),将数据表中的记录删除,该方法的代码如表8-31
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抓岩机司机变更管理模拟考核试卷含答案
- 光伏发电运维值班员安全强化测试考核试卷含答案
- 动画制作员操作能力强化考核试卷含答案
- 粗钨酸钠溶液制备工安全强化水平考核试卷含答案
- 磨料制造工岗前基础安全考核试卷含答案
- 钦州市灵山县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 遵义市汇川区2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 邵阳市邵阳县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 广安市武胜县2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 清远市英德市2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 2026年及未来5年市场数据中国危废专业焚烧市场运行态势及行业发展前景预测报告
- 湖北省孝感市楚天协作体高三下学期3月联考英语+答案
- 军用关键软硬件自主可控产品名录(2025年v1版)
- 【道法】权利与义务相统一教学课件-2025-2026学年统编版道德与法治八年级下册
- 2026年初级社会工作者综合能力全国考试题库(含答案)
- 急救知识走进校园课件
- 舞台搭建与灯光音响方案
- 2025年498人备考题库国企招聘参考答案详解
- DB34∕T 5192-2025 鲜食甘薯主要病虫害绿色防控技术规程
- 老年服务与管理概论
- 2025年无人机配送网络建设方案
评论
0/150
提交评论