![JavaEE复习2015_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b55bd1ce-0a60-4659-be9d-f1070e4df230/b55bd1ce-0a60-4659-be9d-f1070e4df2301.gif)
![JavaEE复习2015_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b55bd1ce-0a60-4659-be9d-f1070e4df230/b55bd1ce-0a60-4659-be9d-f1070e4df2302.gif)
![JavaEE复习2015_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b55bd1ce-0a60-4659-be9d-f1070e4df230/b55bd1ce-0a60-4659-be9d-f1070e4df2303.gif)
![JavaEE复习2015_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b55bd1ce-0a60-4659-be9d-f1070e4df230/b55bd1ce-0a60-4659-be9d-f1070e4df2304.gif)
![JavaEE复习2015_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/16/b55bd1ce-0a60-4659-be9d-f1070e4df230/b55bd1ce-0a60-4659-be9d-f1070e4df2305.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java EE简介1、 Java语言的三大平台?答:依据不同的应用领域,Java语言开发有三大平台:Java ME:主要用来开发掌上电脑等嵌入式系统应用程序。Java SE:主要用来开发一般台式机应用程序。Java EE:主要用来开发企业级软件系统。2、 简介MVC。答:MVC是一个web应用的程序设计模式,它使应用程序的输入,处理和输出分开。使用MVC应用程序被分为三个核心部件:M-Model模型,V -VIEW 视图,C - Control控制。MVC中的模型、视图、控制器它们分别担负着不同的任务。视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进
2、行任何业务逻辑处理。模型: 模型表示业务数据和业务处理。一个模型能为多个视图提供数据。这提高了应用程序的重用性。控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果,并通过视图呈现给用户。3、 Java web程序开发中的框架有什么作用?有什么特点?举例说明。答:Java Web应用的核心技术是JSP、Servlet与JavaBean。但是,一直没有一套有效的开发规范来约束JSP程
3、序员,导致不同程序员写出不同风格的JSP程序。项目的规模越大,这种弊端就越明显,项目难于维护。基于Web框架开发Web应用可以解决这个问题。框架对于程序设计的规范化和程序的扩展和维护非常有帮助。框架的特点:上手快。好的技术支持。整合其他技术能力强。扩张能力强。设计结构合理。运行稳定。例如:(1)Struts框架Struts实现了MVC模式,使用Struts可以帮助程序员减少在运用MVC设计模型来开发Web应用的时间。(2)Hibernate框架Hibernate也是一个开放源代码的框架,它对JDBC进行了非常轻量级的对象封装,是一个面向Java环境的对象/关系映射工具,可以将对象模型表示的对象
4、映射到基于SQL的关系数据模型中,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。(3)Spring框架Spring框架是一个从实际开发中抽取出来的框架,完成了大量开发中的通用步骤,可以贯穿程序的各层之间,与其他框架可以紧密整合,其中重要功能有依赖注入,基于AOP的声明式事物管理等。大大提高了企业应用的开发效率。JSP基础及JavaEE数据库应用基础1、 JSP语法:定义变量与函数 <%! %>程序块 <% %>表达式 <%= %>2、 Servlet什么情况下调用doGet()和doPost()?答:JSP页面中的form标签里的method
5、属性为get时调用doGet(),为post时调用doPost()。3、 Servlet的生命周期答:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。接着通过调用service()方法,根据请求的不同调用不同的do*()方法。结束服务,web容器调用servlet的destroy()方法。4、 页面间传递参数的方法答:使用request,session,application等对象5、 JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 答:JSP技术构建在Servlet技术之上,是Servlet技术的扩展,本质上
6、是Servlet的简易方式,JSP能做到的,Servlet都能做到,但是它们却各有所长。JSP更强调应用的外表表达。JSP编译后是"类servlet"。Servlet比较适合作为控制类组件,比如视图控制器等。另外,Servlet还可以作为过滤器、监听器等。Servlet不仅可以动态生成HTML内容,还可以动态生成图形。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML等技术组合成的一个扩展名为.jsp的文件。总而言之,Servlet在项目中作为控制类的组件,并且处理
7、一些后台业务,JSP则作为显示组件。JSP侧重于视图,Servlet主要用于控制逻辑。6、 Servlet执行时一般实现哪几个方法?处于生命周期的什么阶段执行。答:Public void init(ServletConfig config)public ServletConfig getServletConfig()public String getServletInfo()public void service(ServletRequest request,ServletResponse response)public void destroy()7、 JSP的常用指令及功能答:<%
8、page language ="scriptingLanguage"%>设定整个JSP文件的属性和相关功能。<%include file="filename"%>用来导入静态页面文件<%taglib prefix="s" uri="" %>用来说明要使用的标签库8、 过滤器、监听器、servlet 三者的区别答:过滤器(Filter)Servlet可以作为过滤器使用,在web.xml中通过filter标签定义它,它可以对客户的请求进行过滤处理,当它处理完成后,它会交给下一个过滤器处理,
9、就这样,客户的请求在过滤链里一个个处理,直到请求发送到目标。举个例子,某个网站里有提交"修改的注册信息"的网页,当用户填写完成修改信息并提交后,服务端在进行真正的处理时需要做两个处理:客户端的会话是否有效;对提交的数据进行统一的编码,比如GB2312。这两个处理可以在由两个过滤器组成的过滤链里进行处理。当过滤器处理成功后,把提交的数据发送到最终目标;如果过滤器处理不成功(比如客户端的会话无效),它将把视图派发到指定的错误页面。可以看出,过滤器就像一扇门,客户端要和服务端的某个目标交互,必须通过这扇门。过滤器是用于过滤浏览器和后台的Servlet发出的请求,过滤器是存在于请求
10、和被请求资源之间的。过滤器就像当于一个中间件,请求要经过过滤器,然后过滤器才去调用Servlet,Servlet的响应也会被过滤器截获并作相应的处理。Filter的配置Filter的配置和Servlet相似。 <filter> <filter-name>SessionFilter</filter-name> <filter-class>alan.filter.SessionFilter</filter-class> </filter> <fil
11、ter-mapping> <filter-name>SessionFilter</filter-name> <url-pattern>/protected/*</url-pattern> <!-这里的url-pattern就是要过滤的请求的url-pattern-> </filter-mapping>监听器(Listener)Listener也可以用Servlet实现,在web.xml中通过Listener标签定义它,它可以监听客户端的请求、
12、服务端的操作等。通过不同的监听器,可以根据不用的程序操作自动激发一些行为,比如监听在线的用户的数量,当增加一个HttpSession时,就激发HttpSessionListener监听器的sessionCreated(HttpSessionEvent se)方法,这样就可以给在线人数加1。Listener在web.xml中的配置<listener> <listener-class>alan.servlet.listener.AlanContextListener</listener-class>
13、60; <!-listener-class也就是实现Listener接口的类-></listener>9、 JSP访问数据库的相关知识:JDBC,连接数据库及对数据库进行增删改查的具体操作步骤及代码。(案例ex4)Struts2开发1、 结合Struts2框架图简要阐述struts2框架和它的基本执行流程。Struts 2框架本身大致可以分为3个部分:核心控制器FilterDispatcher、业务控制器Action和用户实现的业务逻辑组件。核心控制器FilterDispatcher是Struts 2框架的基础和入口,包含了框架内部的控制流程和处
14、理机制。业务控制器Action和业务逻辑组件是需要用户来自己实现的。用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。Struts 2的基本简要流程如下:1) 客户端浏览器发出HTTP请求。2) 根据web.xml配置,该请求被过滤器FilterDispatcher接收并处理。3) 过滤器处理完成后继续将请求交给拦截器处理,拦截器将完成一些通用功能操作,例如表单验证等。4) 拦截器处理完后,根据struts.xml配置,找到需要调用的Action类和方法,把请求交给Action处理,默认情况下执行Action的execut
15、e方法,该方法可以访问业务逻辑层完成对数据库的访问。5) 最后由execute方法返回的结果字符串,根据struts.xml配置决定返回什么样的页面或结果到浏览器。2、 Struts2的过滤器如何配置?各个标签分别表示什么意思?在web.xml中配置<filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher </filter-class></filter><filter
16、-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern></filter-mapping>3、 如何定义一个Action类,类中的基本成员有哪些Action类通过继承ActionSupport类来实现,类中如果定义数据成员(属性),则要有相应的get和set方法,此外该类一定要重载execute方法,该方法是客户端请求action时的默认执行方法。例如:public class StrutsAction extends ActionSup
17、portprivate String name; /数据成员(属性)public String getName() /对应的get方法return name;public void setName(String name) /对应的set方法=name;public String execute() throws Exception /重载的execute方法return "success"ActionSupport类实现的Action接口中定义了一些静态常量值,这些值对应result元素中name属性的值。public interface Action
18、public static final String SUCCESS="success"public static final String NONE="none" public static final String ERROR="error" public static final String INPUT="input"public static final String LOGIN="login" public String execute() throws Exception;4、 S
19、truts2的业务核心类是什么?核心配置文件是什么?配置文件的结构是怎样的?Struts2的业务核心类是Action,核心配置文件是struts.xml,大体结构如下:<struts><package ><action ><result > </result><result > </result></action></package></struts>package元素有以下几个常用属性:name(必选):指定包名,这个名字将作为引用该包的键。注意,包的名字必须是唯一的,在一
20、个struts.xml文件中不能出现两个同名的包。extends(可选):允许一个包继承一个或多个先前定义的包。abstract(可选):将其设置为true,可以把一个包定义为抽象的。抽象包不能有action定义,只能作为“父”包被其他包所继承。namespace(可选):将保存的action配置为不同的名称空间,在访问action时使用。action元素中的属性method用于声明要访问的Action类中的方法。如:<action name="find" class="org.action.StrutsAction" method="f
21、ind"><result name="success">/welcome.jsp</result><result name="error">/hello.jsp</result></action>表示当访问find这个action时,执行StrutsAction类中的find方法。result元素有两个属性name和type,例如:<result name ="逻辑视图名" type ="视图结果类型"/>&
22、#160; 物理视图(如JSP页面地址)</result>result中的name属性有如下值:success:表示请求处理成功,该值也是默认值。error:表示请求处理失败。none:表示请求处理完成后不跳转到任何页面。input:表示输入时如果验证失败应该跳转到什么地方(关于验证后面会介绍)。login:表示登录失败后跳转的目标。result元素的type(非默认类型)属性可以取以下几个常用值:dispatcher:用来转向页面,通常处理JSP,该类型也为默认类型。redirect:重
23、定向到一个URL。redirect-action:重定向到一个Action。5、 如何开发一个简单的Struts2应用程序?1) 新建web项目2) 为项目导入struts2的核心类库3) 在web.xml文件中配置过滤器FilterDispatcher4) 编写JSP页面5) 编写Action类,重载类中的execute方法6) 新建struts.xml文件,配置action及其result信息。7) 把项目发布到服务器,启动tomcat,运行调试6、 Struts2框架提供两种表单数据校验方法(1)在Action类中重载validate()方法,该方法在执行系统的execute()方法之前
24、执行。如果执行该方法之后,Action类的fieldErrors中已经包含了数据校验错误信息,将把请求转发到input逻辑视图处,所以要在Action配置(struts.xml)中加入以下代码:<action name="struts" class="org.action.StrutsAction" ><result name="success">/welcome.jsp</result><result name="error">/hello.jsp</resu
25、lt><result name="input">/hello.jsp</result></action>(2)Struts 2提供了校验框架,只需要在要验证的Action类的包中增加一个校验配置文件(文件名为:ActionName-validation.xml),就可以完成对Action类对象中接收到的表单数据进行数据校验。校验配置文件的格式如下:<validators><!- - 需要校验的表单域的名字,即表单域中name属性的值- - ><field name="name">
26、;<!校验器,该校验器的作用是验证字符串不能为空,即必填-><field-validator type="requiredstring"><!-去空格-><param name="trim">true</param><!-错误提示信息-><message>姓名是必需的!</message></field-validator></field></validators>其他的校验器的type属性所对应的值,请自己复习7、 Str
27、uts 2中的OGNL Context是ActionContext,在Struts2项目中,JSP中在Struts2标签中可以通过OGNL访问ActionContext中的存储的对象和数据,ActionContext是Struts2项目运行中的上下文环境,结构如图:8、 如何使用struts2.0的标签库,常用标签有哪些?在JSP页面的起始行,通过taglib标签定义struts2标签库,该标签库的定义文件在struts2框架的核心包中。<% taglib uri=”/sturts-tags” prefix=”s” %>这样就可以使用struts2标签了,以<s: 开头的都是
28、struts2标签。常用的标签有:1) 表单标题<s:form> </s:form>2) 显示标签<s:property /> 用于输出指定值:<s:property value="userName "/>3) 判断<s:if> </s:if> 用于在页面中判断指定数据 <s:if test="userName = admin">. </s:if> <s:else>. </s:else>4) 迭代<s:iterator>用于
29、将List、Map、ArrayList等集合进行循环遍历 <s:iterator value="userList" id="user"> <s:property value="user.Name"/></a> </s:iterator> 5) URL地址标签,<s:url>用于生成一个URL地址,可以通过URL标签指定的<s:param>子元素向URL地址发送请求参数 <s:url action=" "> <s:param n
30、ame=" " value=""></s:param> </s:url>6) 超链接 <a href >一般和<s:url>标签一起使用,用于带多个参数。 <a href=" <s:url action=" "> <s:param name=" " value=""></s:param> <s:param name=" " value="">
31、;</s:param> <s:param name=" " value=""></s:param> </s:url> ">超链接</a>7) set标签,用于将某个值取个名字放入ActionContext指定的范围(如request,application,session等)内。 <s:set name="user" value="userName" scope=”request”/>9、 拦截器的相关知识从struts2的框架
32、图可以看出框架的入口过滤器(核心控制器)和Action(业务核心控制器)之间可以存在许多拦截器(Interceptor),框架的默认拦截器(定义在struts-default.xml文件中)主要是对用户请求进行处理,如编程者需要对用户请求进行进一步的处理,然后再送往Action,如有需要编程者可以自行编写拦截器类,并配置到对应的Action之前。请根据案例ex5_interceptor复习以下三个问题:(1) struts2拦截器的配置原理;(2) 自定义拦截器类;(3) 使用自定义拦截器类的方法。Hibernate开发1、 Hibernate实现什么功能?什么是ORM?Hibernate实现
33、了ORM功能,ORM是对象关系映射,即把程序中的对象映射到关系数据库中。Hibernate框架的实现原理具体是通过对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作。2、 Hibernate访问数据库执行插入操作的工作流程1) 读取并解析配置文件 2) 读取并解析映射信息,创建SessionFactory 3) 打开Sesssion 4) 创建事务Transation 5) session调用save()方法进行对象的持久化操作 6) 提交事务 7) 关闭Se
34、ssion (请结合第6章的案例代码理解)3、 Hibernate的核心类和使用方法答:是Session类。由SessionFactory打开Session对象,由Session对象获取Transaction对象,由Session来完成对数据库的持久化操作,由Transaction对象执行操作,最后关闭Session对象。4、 如何开发一个使用Hibernate框架的Java应用程序1) 建立数据库和数据表2) 在Myeclipse的database explorer中创建SQL Server数据库连接3) 创建Java(web)项目4) 右击项目文件夹,在Myeclipse右键菜单中选择“添
35、加Hibernate开发能力”,先选择所需要的类库,然后单击next,创建Hibernate配置文件Hibernate.cfg.xml放在src文件夹下,接着选择数据库连接,接着创建SessionFactory类,放在一个用户自定义的包中。此步骤添加了Hibernate类库,创建了一个配置文件和一个SessionFactory类。5) 打开步骤2)中配置好的数据库连接,找到要操作的数据表,右键选择“Hibernate Reverse Engineering”(Hibernate逆向工程),按照向导生成和数据表对应的Java类POJO以及对应的映射文件,Java类默认放在model包中,映射文件
36、和Java类在同一个包中,映射文件的路径信息被加入到Hibernate.cfg.xml配置文件。下一步选择ID generator(主键生成策略)。6) 创建Java主类,使用Hibernate功能去访问数据库。(见第6章课件6.2.1的内容)5、 Hibernate和Struts2的整合的编程过程1) 建立数据库和数据表2) 在Myeclipse的database explorer中创建SQL Server数据库连接3) 创建Java web项目4) 右击项目文件夹,在Myeclipse右键菜单中选择“添加Hibernate开发能力”,先选择所需要的类库,然后单击next,创建Hiberna
37、te配置文件Hibernate.cfg.xml放在src文件夹下,接着选择数据库连接,接着创建SessionFactory类,放在一个用户自定义的包中。此步骤添加了Hibernate类库,创建了一个配置文件和一个java类。5) 打开步骤2)中配置好的数据库连接,找到要操作的数据表,右键选择“Hibernate Reverse Engineering”(Hibernate逆向工程),按照向导生成和数据表对应的Java类POJO以及对应的映射文件,Java类默认放在model包中,映射文件和Java类在同一个包中,映射文件的路径信息被加入到Hibernate.cfg.xml配置文件。6) 创建D
38、ao类,使用Hibernate功能去访问数据库。7) 为项目导入struts2的核心类库8) 在web.xml文件中配置过滤器FilterDispatcher9) 编写JSP页面10) 编写Action类,重载类中的execute方法,在Action的方法中调用Dao类的方法访问数据库。11) 新建struts.xml文件,配置action及其result信息。12) 把项目发布到服务器,启动tomcat,运行调试6、 Hibernate与JDBC的联系JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关
39、系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。Hibernate是JDBC的轻量级封装,包括JDBC的与数据库的连接和查询,删除等代码,都用面向对象的思想用代码联系起来,Hibernate通过hbm 配置文件把POJO类的字段和数据库的字段关联起来,比如数据库的id列字段,在POJO类中就是pravite Long id数据成员; 通过其get和set方法对成员进行操作public Long getId() ;public setId(Long id); HQL语句也是面向对象的,它的查询语句不是查询数据库而是查询类,其实Hibernate等于封装的JDBC+xml文件7、
40、为什么要用Hibernate?1) 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。2) Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作。3) Hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。4) Hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。8、 Hibernate主键生成策略介绍使用Hibernate逆向工程工具向导生成数据表对应的POJO类时,要为每个表的主键设置主键生成策略,即主键是怎么赋
41、值的。下面介绍几个常用的主键生成策略:(1). AssignedAssigned方式由程序生成主键值,并且要在save()之前指定否则会抛出异常特点:主键的生成值完全由用户决定,与底层数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。(2). IdentityIdentity方式根据底层数据库来支持主键自动增长,不同的数据库用不同的主键增长方式。特点:与底层数据库有关,要求数据库支持Identity,支持的数据库有MySql、SQL Server、DB2、Sybase和HypersonicSQL。 Identity无需Hibernate和用户的干涉,使用较为方
42、便,但不便于在不同的数据库之间移植程序。(3). NativeNative主键生成方式会根据不同的底层数据库自动选择Identity、Sequence、Hilo主键生成方式特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。9、 Hibernate拒绝连接、服务器崩溃的可能原因?1) 数据库没有打开 2) 网络连接可能出了问题3) 连接配置错了4) 驱动的driver,url有误5) Lib下没有加入相应驱动,数据连接代码有误6) 数据库配置可能有问题7) 当前联接太多了,服
43、务器都有访问人数限制的8) 服务器的相应端口没有开,即它不提供相应的服务10、 Hibernate简介及重要接口Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的重要接口一共有5个,分别为:Session、SessionFactory
44、、Transaction、Query和Configuration。这5个重要接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。下面对这五个重要接口分别加以介绍。Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSesion对象称为用户
45、session。SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。(该功能体现在案例中的HibernateSessionFactory类中)Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。(该功能体现在案例中的HibernateSessionFactory类中)Tran
46、saction接口:Transaction接口负责事务相关的操作。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。Query和Criteria接口:Query和Criteria接口负责执行各种数据库查询。它可以使用HQL语言或SQL语句两种表达方式。 11、 掌握Hibernate框架对数据库进行增删改查的代码。例如,给出一段代码,要求能够解释执行的是什么操作。(案例ex6_Struts_Hibernate,6.2.4节)Spring开发1、 理解Spring框架的模块图,掌握Spring Core模块在框架中的作用。Spring 框架的分层架构,由 7 个定义良好的模块组成。Spr
47、ing的各个模块都构建在核心容器模块Spring Core之上,核心容器定义了创建、配置和管理 Bean 的方式。是各个模块运行的基础。2、 描述Spring框架的核心功能模块Spring框架的核心功能模块是核心容器,其他模块均运行在该模块之上。该模块主要通过控制反转模式(IoC),又称为依赖注入,来实现程序中类实例的装配和管理。依赖注入分为两种方式:设置注入、构造注入。3、 Spring实现控制反转的核心接口是ApplicationContext,该接口的getBean方法可以用于获取Spring容器中的类实例。4、 能够分析Spring框架的配置文件applicationContext.x
48、ml来描述类之间的依赖关系。5、 Spring和Struts2的整合的编程步骤1) 创建Struts2项目,添加9个基础包,修改web.xml添加过滤器,添加jsp,创建action类,创建struts.xml,配置action。(该步骤开发一个Struts2项目)2) 通过项目右键的Myeclipse菜单添加Spring开发能力,创建applicationContext.xml配置文件文件。3) 为项目添加Struts2的Spring支持包struts2-spring-plugin-x.jar,其中x对应spring的版本号。4) 修改web.xml,添加监听器ContextLoaderLi
49、stener(用于创建管理bean的容器),并配置context-param以便Spring的容器获取分析配置文件applicationContext.xml。5) 创建perties文件,定义struts.objectFactory=spring,把Struts2框架的类实例管理交给Spring。6) 修改applicationContext.xml文件内容,定义action bean7) 修改struts.xml文件,用bean的id取代原来action标签中的class属性值。8) 调试运行项目。6、 Spring和Struts2整合的本质是什么?让 Spring对S
50、truts2框架的所有实例进行管理,例如:创建并管理Action实例,为Action实例注入所需的资源对象实例。7、 Spring和Hibernate的整合的编程步骤1) 创建数据库和数据表,在myeclipse中创建数据库连接2) 创建web项目3) 添加Spring开发能力,生成applicationContext.xml文件4) 添加Hibernate开发能力,使用applicationContext.xml作为配置文件,并在向导中创建sessionFactory的bean id和datasource的bean id,把datasource和sessionfactory的配置信息加入配置
51、文件。5) 通过数据库连接的Hibernate逆向工程生成映射文件和对应的java类(POJO)6) 创建DAO类7) 修改applicationContext.xml,管理DAO类实例。8) 测试DAO。8、 Hibernate与Spring整合的本质是什么Hibernate中的一些对象可以给Spring来管理,让Spring容器对Hibernate中一些对象实例化。例如:DataSource, SessionFactory等。Hibernate本来是对数据库的一些操作,放在DAO层,业务层可以访问DAO层,Spring负责管理所有的类实例。Spring也通过AOP模块定义业务逻辑代理,把事
52、务实例和业务逻辑实例缝合在一起,,管理所有业务层的数据库事务。9、 Spring的AOP模块介绍AOP(Aspect Oriented Programming):面向切面编程,是通过预编译方式和运行期动态代理,实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。Spring的AOP模块的实现原理是动态代理机制。通过 AOP 来处理一些具有横切性质的系统性服务,如事物管理、安全检查、缓存、对象池管理等,AOP 已经成为一种非常常用的解决方案。在SSH整合中,Spring也通过AOP模块定义业务逻辑代理,把事务实例和业务逻辑实例缝合在一起,,从而实现管理所有业务层的数据库事务。10、 Spring是干什么用的?用在哪里?有什么特征?。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电影院声光系统优化及体验提升报告
- 合同变更与转让流程优化方案
- 私人出租车司机雇佣合同协议
- 农村桥梁维修及加固合同书
- 磁头产品技术培训开启科技教育新篇章
- 2024-2025学年高中地理课时分层作业7农业的区位选择含解析新人教版必修2
- 物联网在智慧城市建设中的应用与前景
- 生产线工艺流程图基础绘制与实战案例解析培训
- 知识产权商业化运用与交易模式
- 社交平台下的网络直播营销模式分析
- DL∕T 1610-2016 变电站机器人巡检系统通 用技术条件
- GB/T 44143-2024科技人才评价规范
- 《混合动力汽车用变速器效率台架试验方法》
- 对医院领导的批评意见怎么写更合适范文(6篇)
- 裕龙岛炼化一体化项目(一期)环境影响报告
- 2024年北京卷英语真题
- 《网络安全防护项目教程》课件项目4 网络病毒和恶意代码分析与防御
- 四川省达州市达川区2023-2024学年八年级下学期期末道德与法治试题
- 账期协议书账期合同书
- 信息技术课程标准2023版:义务教育小学阶段
- 职业技术学院环境工程技术专业《水处理技术》课程标准
评论
0/150
提交评论