Spring+Struts的快速系统开发框架介绍

合集下载

Struts、Spring、Hibernate三大框架的原理和优点

Struts、Spring、Hibernate三大框架的原理和优点

Struts的原理和优点.Struts工作原理MVC即Model—View—Controller的缩写,是一种常用的设计模式。

MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。

MVC的工作原理,如下图1所示:Struts 是MVC的一种实现,它将Servlet和JSP 标记(属于J2EE 规范)用作实现的一部分。

Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展.Struts的工作原理,视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP 标签库: Html,Bean,Logic,Template等,这有利于分开表现逻辑和程序逻辑。

控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。

ActionServlet是一个通用的控制组件。

这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。

它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。

另外控制组件也负责用相应的请求参数填充Action From(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。

动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。

最后动作类把控制权传给后续的JSP 文件,后者生成视图。

所有这些控制逻辑利用Struts-config.xml文件来配置。

模型:模型以一个或多个java bean的形式存在。

这些bean分为三类:Action Form、Action、JavaBean or EJB.Action Form通常称之为FormBean,封装了来自于Client的用户请求信息,如表单信息。

Action通常称之为ActionBean,获取从ActionSevlet传来的FormBean,取出FormBean中的相关信息,并做出相关的处理,一般是调用Java Bean或EJB等。

JavaWeb开发框架的对比与应用案例

JavaWeb开发框架的对比与应用案例

JavaWeb开发框架的对比与应用案例JavaWeb开发框架是当前Web应用开发中非常重要的一环。

随着互联网的发展,JavaWeb开发框架的种类也越来越多,其中比较知名的有Spring、Struts、Hibernate等,本文将对这些框架进行对比,并给出一些开发案例。

一、Spring框架Spring是一款轻量级的Java开发框架,它是目前最为流行的框架之一。

Spring提供了一系列可重用代码,让JavaWeb应用的开发更加容易和高效。

Spring的主要特点包括控制反转、依赖注入、面向切面编程等。

Spring框架可以被用于开发各种类型的Web应用,如社交网络、企业应用等。

Spring的优点在于它所提供的灵活性和可扩展性,同时也支持多个不同的程序设计模式。

举个例子,Spring MVC框架可以支持Web应用程序的开发,并且提供多种不同的视图技术,如JSP和Thymeleaf模板等。

Spring的使用可以大大简化JavaWeb应用程序的开发难度,并且降低代码的复杂性。

此外,开发者可以很容易地使用Spring提供的工具来管理和维护应用程序。

二、Struts框架Struts是一款基于MVC模式的开发框架,它是最早的JavaWeb框架之一。

Struts的特点在于它所提供了应用程序组件的相对简单易用性,从而使得应用的开发变得更加快速和高效。

Struts的核心是其控制器,它可以将Web请求分配给各个组件,并且可以自动地处理必要的转换和数据验证。

对于大部分JavaWeb应用程序来说,Struts是一个理想的开发框架。

Struts的优点在于它所提供的模板功能,这可以让开发者通过简单地定义模板和组件的形式,来开发应用程序。

三、Hibernate框架Hibernate是一款完全由Java编写的Object-RelationalMapping(ORM)框架。

它允许Java开发人员使用对象方式访问数据,这意味着开发者不需要编写复杂的SQL查询,并且可以使用Hibernate进行简单的数据库操作。

struts框架介绍

struts框架介绍

这章适合做参考,如果你那里不清楚,可上这里查技术资料二.Struts框架struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。

本章详细讨论struts架构。

我们将看到struts是如何清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序过程的。

我们还将介绍struts提供的类如何使得开发工作更加简单,这些类包括:●控制程序流程的类●实现和执行程序事务逻辑的类●自定义的标记库使得创建和验证HTML表单更加容易1.Struts压缩包内容文件夹jakarta-struts-1.0.2包含两个目录,lib和webapps。

在lib目录中有使用struts创建应用程序是所需的文件:文件描述jdbc2_0-stdext.jar 包含JDBC2.0 Optional Package API类。

如果我们要使用struts提供的数据资源,就需要将这个文件拷贝到WEB-INF\lib下Struts.jar 包含struts中所有的java类。

同样也需要拷贝到WEB-INF\lib下*.tld 标记库描述器文件,描述了多个struts标记库中的自定义标记。

同样要拷贝到WEB-INF\lib下在webapps目录下有如下文件:Web应用程序描述Struts-blank.war 一个简单的web应用程序Struts-documentation.war 包含struts站点上所有struts文档Struts-example.war Struts很多特性的示范Struts-exercisetaglib.war 主要用于对自定义标签库进行增加而使用的测试页,但也可以示范如何使用struts标记Struts-template.war 包含struts模板标记的介绍和范例Struts-upload.war 一个简单的例子,示范如何使用struts框架上传文件2.struts体系结构让我们从MVC角度观察struts框架中的组件框架中三个部分:模型,视窗和控制器。

java三大框架是什么

java三大框架是什么

java三大框架是什么Java三大框架是什么一、介绍Java是一种广泛使用的编程语言,由于其跨平台性和丰富的类库支持,成为了企业级应用开发的首选语言。

在Java开发中,框架是非常重要的组成部分,它们提供了一套结构化的工具和方法来简化开发流程并提高代码的重用性和可维护性。

在众多Java框架中,有三个最重要、最流行且被广泛使用的框架,它们分别是Spring框架、Hibernate框架和Struts框架。

二、Spring框架1. 简介Spring框架是一个轻量级的Java开发框架,最初用于解决企业级应用开发中的复杂性和耦合性问题。

Spring提供了一系列的模块和组件,为开发者提供了全面的解决方案,例如依赖注入、AOP(面向切面编程)、IoC(控制反转)等。

Spring框架的核心是IoC容器,它通过管理对象的生命周期和控制对象之间的依赖关系,简化了开发流程。

2. 主要特点和优势(1)松耦合:Spring框架通过IoC容器管理对象之间的依赖关系,使得应用程序的各个组件之间变得松散耦合,便于维护和升级。

(2)面向切面编程:Spring框架支持AspectJ规范,可以通过AOP实现横切关注点的模块化,并将其与业务逻辑分离,提高了代码的可维护性和重用性。

(3)可扩展性:Spring框架采用模块化的设计,开发者可以根据需要选择性地使用各个模块,使得框架具有很高的可扩展性和灵活性。

(4)测试支持:Spring框架提供了对单元测试的支持,可以方便地对代码进行单元测试和集成测试。

3. 使用场景Spring框架广泛应用于企业级应用开发,特别是在大规模和复杂度高的项目中表现出色。

由于其完善的设计和优秀的生态系统,Spring框架不仅可以用于开发Web应用程序,还可以用于开发移动应用、分布式系统、大数据系统等各种类型的应用。

三、Hibernate框架1. 简介Hibernate框架是一个优秀的Java持久化框架,它简化了对象与数据库之间的映射和操作,提高了开发效率和代码的可维护性。

Struts框架详细分析

Struts框架详细分析

Struts框架详细分析Struts框架是一个开源的Java Web应用程序框架,用于构建基于MVC(Model-View-Controller)设计模式的Web应用程序。

它提供了一种结构化的方式来组织和管理Web应用程序的代码,使得开发人员可以更加高效地开发和维护应用程序。

本文将详细分析Struts框架的各个组成部分以及其工作原理。

一、框架概述Struts框架的核心思想是将应用程序分解为不同的层次:模型层(Model)、视图层(View)和控制层(Controller)。

模型层负责处理业务逻辑和数据存取,视图层负责展示用户界面,控制层负责接收用户的请求并调度合适的模型层处理。

通过这种分层的方式,Struts框架可以实现代码的解耦和重用。

二、组成部分1. 控制器(Controller)控制器是Struts框架的核心组件,负责接收用户请求并将其调度到合适的处理模块。

在Struts框架中,控制器通常由一个Servlet实现,称为ActionServlet。

ActionServlet会根据用户请求中的URL路径选择合适的Action类来处理请求。

2. 动作类(Action)动作类是处理用户请求的核心业务逻辑单元,它负责与模型层进行交互,并根据请求的内容进行相应的处理。

Struts框架提供了一个基本的Action类,称为ActionSupport,开发人员可以继承该类并实现自己的业务逻辑。

3. 视图(View)视图用于展示用户界面,通常是一个JSP页面。

在Struts框架中,视图可以通过标签库和表达式语言与模型层进行交互,动态地展示数据和接收用户输入。

4. 模型(Model)模型层主要负责处理业务逻辑和数据存取。

在Struts框架中,开发人员可以选择使用传统的JavaBean作为模型层,也可以使用更高级的框架,如Hibernate或MyBatis。

5. 配置文件Struts框架使用配置文件来管理应用程序的各个组件之间的关系。

快速开发框架的介绍和应用

快速开发框架的介绍和应用

快速开发框架的介绍和应用前言在当今互联网高速发展的时代,越来越多的企业和个人开始注重软件开发的效率和质量。

为了快速地开发高质量的软件,快速开发框架应运而生,并取得了广泛的应用和发展。

本文主要介绍快速开发框架的概念、特点、应用以及未来的发展趋势。

一、什么是快速开发框架?快速开发框架(Rapid Application Development,简称RAD),是一种面向对象的软件开发方法和技术,其主要目的是快速地开发高质量的软件系统。

它是一种在开发过程中充分使用现有的、可重复的、可复用的软件组件或模块的技术,从而提高软件开发的效率。

它采用了一系列快速开发技术和工具,帮助开发者们快速地构建原型,并在短时间内完成软件系统的开发。

在这样的开发模式下,通常会采用最新的面向对象技术和开发工具,快速地把想法转换为具有实际价值的软件产品。

二、快速开发框架的特点1、迭代开发基于快速开发框架的软件开发通常采用迭代式开发的模式,也就是让开发过程分成若干个小的阶段,每个阶段的重点是快速的交付具有实际价值的软件。

每次迭代都会在前一次的基础上进一步完善和改进软件系统。

2、面向对象开发快速开发框架通常采用面向对象的开发模式,将软件系统分解为若干个独立的对象,每个对象相互作用,实现特定的业务功能。

面向对象开发的一个重要优势是提高开发的可维护性、可重用性和可扩展性,减少了代码的冗余和耦合。

3、快速原型快速开发框架的另一个重要特点就是快速原型,也就是让开发者直接快速地构建出可见的、可交互的软件原型,帮助业务人员和用户更好地理解软件系统,从而更好地满足实际业务需求。

4、可重用模块快速开发框架使用可重用模块或组件的开发方式,将一些通用的模块或组件预先开发好,并集成到快速开发框架中以供重复使用,从而提高开发效率、降低开发成本。

5、开发工具快速开发框架具有封装了各种快速开发工具的开发平台,这使得开发者不需要编写繁琐的重复代码,能够更专注于实现业务需求。

Struts框架技术

Struts框架技术

视图 Jsp
Your company slogan
Struts的环境搭建 Struts的环境搭建
导入Jar包 导入Jar包
让我们的Web工程可以使用Struts相关的类 让我们的Web工程可以使用Struts相关的类 Web工程可以使用
建立配置文件Struts建立配置文件Struts-config.xml
Your company slogan
技术趋向
Struts Action (偏向于WebWork) (偏向于 偏向于WebWork) Struts Shale (偏向于JSF) (偏向于 偏向于JSF) Java问世是 Java问世是1995年,几年后出现了Servlet,但 问世是1995年 几年后出现了Servlet, 是当时还没有Jsp这个东西 Jsp是后期才出现 是当时还没有Jsp这个东西,Jsp是后期才出现 这个东西, 2000年的时候 年的时候Struts框架问世了 框架问世了, 的.2000年的时候Struts框架问世了,可以算是 元老级的框架了. 元老级的框架了.
Your company slogan
Struts基础入门 Struts基础入门
理解Struts工作基本原理 理解Struts工作基本原理 掌握Struts框架的基本应用 掌握Struts框架的基本应用 学会开发第一个Struts小程序 学会开发第一个Struts小程序
Your company slogan
httpServletRequest 和 httpServletRespons 的execut方法 execut方法
调用ActionForm模块 调用ActionForm模块
FormBean是继承ActionForm的子类, FormBean是继承ActionForm的子类,需要向下转型 ActionForm

struts框架详细介绍

struts框架详细介绍

struts框架详细介绍Struts是一个开源的Java Web应用程序开发框架,可以帮助开发者构建可扩展的、高性能的Web应用程序。

它遵循了Model-View-Controller(MVC)设计模式,通过将业务逻辑、表示逻辑和用户交互进行分离,使得应用程序更易于开发、测试和维护。

下面是关于Struts框架的详细介绍。

1.MVC设计模式:Struts采用了MVC设计模式,将应用程序的不同组成部分进行分离。

- Model层负责处理数据和业务逻辑。

在Struts中,开发者可以使用JavaBean、EJB、Hibernate等技术作为Model层的实现。

- View层负责展示数据和用户界面。

Struts提供了JSP(JavaServer Pages)作为主要的View技术,也可以使用Velocity、Freemarker等模板引擎。

- Controller层负责接收用户请求、处理业务逻辑以及将结果返回给View层。

Struts的Controller层使用ActionServlet来处理请求,它根据配置文件中的映射规则将请求转发给合适的Action类进行处理。

2.核心组件:Struts由以下几个核心组件组成:- ActionServlet:负责接收和处理来自客户端的请求,并根据配置文件中的映射规则将请求转发给合适的Action类进行处理。

- Action类:实现了业务逻辑的处理,接收请求和返回结果。

开发者需要继承Action类,并覆写其中的execute(方法来实现自定义的业务逻辑。

- ActionForm:用于封装请求参数并传递给Action类进行处理。

ActionForm可以与表单元素进行绑定,从而方便地获取和验证用户输入。

- ActionMapping:配置文件中的一项规则,用于将请求URL映射到具体的Action类和方法。

- ActionForward:配置文件中的一项规则,用于指定请求处理完成后需要跳转到的页面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构, DAO: 抽象层提供了有意义的异常层次结构, 可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。 可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。 异常层次结构简化了错误处理, 异常层次结构简化了错误处理,并且极大地降低了需要编写的异 常代码数量(例如打开和关闭连接)。 )。Spring 常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 异常层次结构。 的异常遵从通用的 DAO 异常层次结构。 • Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM: 框架, 的对象关系工具, JDO、 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis Map。 SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次 结构。 结构。 • Spring Web 模块:Web 上下文模块建立在应用程序上下文模块 模块: 之上, 的应用程序提供了上下文。所以, 之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框 的集成。 架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部 分请求以及将请求参数绑定到域对象的工作。 分请求以及将请求参数绑定到域对象的工作。
• 核心容器:核心容器提供 Spring 框架的基本功能。核心容器 核心容器: 框架的基本功能。 BeanFactory,它是工厂模式的实现。 的主要组件是 BeanFactory,它是工厂模式的实现。 • BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和 IOC) 依赖性规范与实际的应用程序代码分开。 依赖性规范与实际的应用程序代码分开。 • Spring 上下文:Spring 上下文是一个配置文件,向 Spring 上下文: 上下文是一个配置文件, 框架提供上下文信息。 上下文包括企业服务, 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 JNDI、EJB、电子邮件、国际化、校验和调度功能。 • Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向 AOP:通过配置管理特性, 框架中。所以, 方面的编程功能集成到了 Spring 框架中。所以,可以很容易 AOP。 地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块 的应用程序中的对象提供了事务管理服务。 为基于 Spring 的应用程序中的对象提供了事务管理服务。通 AOP, 组件, 过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事 务管理集成到应用程序中。 务管理集成到应用程序中。
3、Spring依赖注入模式 ①对象间依赖关系构成分散,不宜维护 这种在方法中new一个对象,缺乏统一的管理和控制,如果用这种 方式,依赖构成可能分散在程序的各个角落,日后程序可读性和 维护性将受到影响 ②可能会带来频繁创建对象的损失 直接在方法中new对象,每一次方法调用,都需要一次对象构造过 程 依赖注入(DI)背后的基本原理是对象之间的依赖关系(即一起 工作的其它对象)只会通过以下几种方式来实现:构造器的参数、 工厂方法的参数,或给由构造函数或者工厂方法创建的对象设置 属性。因此,容器的工作就是创建bean时注入那些依赖关系。相 对于由bean自己来控制其实例化、直接在构造器中指定依赖关系 或者类似服务定位器(Service Locator)模式这3种自主控制依 赖关系注入的方法来说,控制从根本上发生了倒转,这也是控制 反转(Inversion of Control, IoC)名字的由来。
基于Spring+Struts框架开发指南
1.J2EE部分总体架构. 2.掌握本框架的前提基础 3.框架技术涉及的原理 4.J2EE部分系统框架介绍 5.系统开发框架--目录结构 6.系统框架规范 7.快速开发模块简单应用介绍
J2EE部分总体架构 部分总体架构
系统架构介绍 系统架构采用典型的三层架构,分别是展现成,应用层,持久层。 J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务 架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构 的不同平台之间,存在良好的兼容性,解决过去企业后端使用的 信息产品彼此之间无法兼容,,企业内部或外部难以互通的窘境 , 包含许多组件,主要可简化且规范应用系统的开发与部署,进而 提高可移植性、安全与再用价值 J2EE平台由一整套服务(SERVICES)、应用程序接口(APIS)和 协议构成,它对开发基于WEB的多层应用提供了功能支持。在本文 中我将解释支撑J2EE的13种核心技术:JDBC, JNDI, EJBS, RMI, JSP, JAVA SERVLETS, XML, JMS, JAVA IDL, JTS, JTA, JAVA MAIL 和 JAF,同时还将描述在何时、何处需要使用这些技术
代码片段1
public void greet(){ Speaker s = new Speaker(); s.sayHello(); } 不用容器的编码模式
代码片段2
public void greet() { Speaker s = (Speaker)context.lookup("ejb/Speaker"); s.sayHello(); } EJB编码模式
框架: Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程 实现。通过策略接口, 序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置 容纳了大量视图技术, JSP、Velocity、 的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、 Tiles、 POI。 Tiles、iText 和 POI。
代码片段3
public Speaker s; public Greeting(Speaker s) { this.s = s; } public void greet() { s.sayHello(); } 注入编码模式(Spring)
使用容器的好处,由容器来维护各个类之间的依赖关系(一般通 过Setter来注入依赖,而不是构造函数)。Greeting并不需要关心 Speaker是哪里来的或是从哪里获得Speaker,只需要关注自己分内 的事情,也就是让Speaker说一句问候的话。 为什么要使用框架技术 1、框架一般是成熟,稳健的,可以无需再考虑和处理系统很多细 节问题 2、使用成熟的框架,一些基础工作已经构建完成,只需要集中精 力完成系统的业务逻辑设计 3、成熟的框架结构性好,扩展性好,多使用XML描述和解耦, 便于升级扩展和维护
业务逻辑 业务逻辑更新模型的状态,并帮助控制应用程序的流程。 业务逻辑更新模型的状态,并帮助控制应用程序的流程。 而言,这是通过作为实际业务逻辑“ 就 Struts 而言,这是通过作为实际业务逻辑“瘦”包装 类完成的。 (模型)的状态 模型表示应用程序的状态。业务对象更新应用程序的状态。 模型表示应用程序的状态。业务对象更新应用程序的状态。 在会话级或请求级表示模型的状态, ActionForm bean 在会话级或请求级表示模型的状态,而 不是在持久级。 不是在持久级。JSP 文件使用 JSP 标记读取来自 的信息。 ActionForm bean 的信息。 View(视图) View(视图) 文件。其中没有流程逻辑, 视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻 只有标记。 辑,也没有模型信息 -- 只有标记。标记是使 Struts 有 别于其他框架( Velocity)的因素之一。 别于其他框架(如 Velocity)的因素之一。
J2EE部分系统框架介绍
Struts介绍: Struts是使用 servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现
Struts 概览 browser(客户浏览器) Client browser(客户浏览器) 请求创建一个事件。 来自客户浏览器的每个 HTTP 请求创建一个事件。Web 容 响应作出响应。 器将用一个 HTTP 响应作出响应。 Controller(控制器) Controller(控制器) 控制器接收来自浏览器的请求, 控制器接收来自浏览器的请求,并决定将这个请求发往何 而言, 处。就 Struts 而言,控制器是以 servlet 实现的一个 命令设计模式。 struts文件配置控制器。 命令设计模式。 struts-config.xml 文件配置控制器。
掌握本框架的前提基础
1.掌握Struts技术 2.掌握Spring原理 3.了解并掌握MVC构架 4.掌握基于控制层,业务层,DAO层的分层原理
框架技术涉及的原理
1、J2EE容器服务器介绍 J2EE应用系统只有部署在J2EE容器中才能运行 J2EE容器分离了一般应用系统的一些通用功能 功能机制的设计开发有一定难度,同时运行的稳定性和快速性都非 常重要 形成了专门的J2EE容器服务器产品,如Tomcat JBoss、Websphere、 WebLogic等 2、面向接口编程 所有的定义与实现分离的原则,便于程序规范化设计 方便的代码复用,无需了解技术细节,便于团队协同开发 实现松散耦合,便于以后升级,扩展 缺点: 只能遵循接口规范,不知道实现的技术细节 所谓的设计比实现难
系统开发框架--目录结构
\src 放的是项目源代码目录(.java文件) log4j. properties 日志配置文件 Struts-config.xml struts应用配置文件 spring配置文件目录 |--applicationContext.xml Spring公共配置文件 数据库连接配置 数据库事务管理配置
是一个开源框架, Spring 是一个开源框架,是为了解决企业应用程序开发复杂 性而创建的。框架的主要优势之一就是其分层架构, 性而创建的。框架的主要优势之一就是其分层架构,分层架构 允许您选择使用哪一个组件, 允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供 集成的框架。 集成的框架。 框架是一个分层架构, 个定义良好的模块组成。 Spring 框架是一个分层架构,由 7 个定义良好的模块组成。 模块构建在核心容器之上,核心容器定义了创建、 各 模块构建在核心容器之上,核心容器定义了创建、配置和 框架的每个模块(或组件) 管理 bean 的方式 。组成 Spring 框架的每个模块(或组件) 都可以单独存在, 都可以单独存在,或者与其他一个或多个模块联合实现
相关文档
最新文档