当前位置:文档之家› ssh复习

ssh复习

ssh复习
ssh复习

1. 什么是SSH?

2. 简述SSH和EJB

3.0的比较

基于SSH的应用,可运行于普通Web容器中,无须EJB容器的支持,且一样具有稳定的性能和极高的可扩展性、可维护性。SSH是轻量级的Java EE应用,保留了经典Java EE应用的架构,面向对象建模的思维方式、优秀的应用分层以及良好的可扩展性、可维护性,但开发和运行的成本更低。

以EJB为核心,以应用服务器为运行环境,开发和运行的成本高。

3. 控制器层的作用是什么?

由系列控制器组成,用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。

4. 表现层的作用是什么?

答:负责收集用户请求,并将显示处理结果。

5. 可使用有哪些技术作为表现层?:JSP、V elocity、FreeMarker、Tapestry、PDF文档视图、或者使用普通的应用程序充当表现层组件,甚至可以是小型智能设备。。

6. 可以使用JSP完成整个系统,为什么还要使用Hibernate技术?为什么要将系统分层?答:不能仅仅考虑系统开发过程,还要考虑维护和扩展;不仅考虑小系统,还要考虑大型系统的协调开发。对于大型系统,采用Java EE架构有很大的优势,便于扩展和维护。Java EE框架,致力于让应用的各组件以松耦合的方式组织在一起。

7. 评估常见的web服务器

?Tomcat:和java结合最好,是Sun官方推荐的JSP服务器。Tomcat是开源的web 服务器,经过长时间的发展,性能、稳定性等方面都很优秀。

?Jetty:另一个优秀的web服务器。Jetty有个更大的优点就是,Jetty可作为一个嵌入式服务器,即:如果在应用中嵌入Jetty的jar文件,应用可在代码中对外提供web 服务。

?Resin:目前最快的JSP、Servlet运行平台,支持EJB。但如果想将该服务器作为商业使用,需要交费。

8. 评估常用的Java EE服务器

除了上面的web服务器外,还有一些专业的Java EE服务器,相对于web服务器而言,Java EE服务器支持更多的Java EE特性,例如分布式事务、EJB容器等。常用的Java EE服务器有如下几个:

?Jboss:开源的,支持EJB3.0技术

?Weblogic和WebSphere:这两个是商用Java EE服务器,价格贵。但在性能等各方面也是相当出色。

对于轻量级Java EE而言,没有必要使用Java EE服务器,使用简单的Web 容器已经完全能胜任。

9. Struts 2.1及其替代技术?

Struts是最早的MVC框架,是Java EE应用中使用最广泛的MVC框架。Struts框架学习简单,应用最方便的MVC框架,很多学习资料,容易掌握。但是,Struts框架太老了,无数设计上的硬伤使得该框架难以胜任更复杂的需求,于是Struts结合WebWork,分娩出了Struts2,Struts2拥有众多优秀的设计,吸收了Struts和WebWork的精华,成为MVC框架中新的王者。

MVC框架领域还有另外两个替代者:JSF和Tapestry

JSF是Sun推荐的Java EE规范,拥有最纯正的血统,Apache也为JSF提供了MyFaces实现,这使得JSF具有很大的吸引力。

Tapestry是Apache组织下的另一个优秀的MVC框架,完全脱离了传统Servlet API,是一种纯粹的、组件式的MVC框架,Tapestry同时提供了控制器和页面模板的解决方案,使用Tapestry无须使用JSP等其它表现层技术。

10. Hibernate3.2及其替代技术

传统的Java应用都是采用JDBC来访问数据库的,但传统的JDBC采用的是一种基于SQL 的操作方式,这种操作方式与Java语言的面向对象特征不太一致,所以Java EE应用需要一种技术,通过这种技术能让java以面向对象的方法操作关系数据库。这种特殊的技术就是ORM(Object Relation Mapping)。

Hibernate是一种开源的、轻量级的ORM框架,他允许将普通的、传统的Java对象(POJO)映射成持久化类,允许应用程序以面向对象的方式来操作POJO,而Hibernate框架则负责将这种操作转换成底层的SQL操作。

?除了使用Hibernate这种ORM框架之外,轻量级Java EE应用通常还可选择iBA TIS 框架作为持久层框架,iBA TIS是Apache组织提供的另一个轻量级持久层框架,

iBA TIS允许将SQL语句映射成对象。

?Oracle的TopLink、Apache的OJB都可作为Hibernate的替代方案,但是使用不够广泛。

11. Spring2.5及其替代技术

Spring框架只是抽象了大量Java EE应用中的常用代码,将他们抽象成一个框架,通过使用Spring可以大幅度地提高开发效率,保证应用具有良好的设计。Spring更像一种中间层容器,向上可以与MVC框架无缝整合,向下可以与各种持久层框架无缝整合,具有强大的生命力。由于Spring框架的特殊地位,所以轻量级的Java EE应用通常都会使用Spring。

实际上,轻量级Java EE这个概念也是由Spring框架衍生出来的,Spring框架暂时没有较好的替代框架。

12.我用JSP和Servlet已经足够了。为什么需要使用框架?

答:应用开发两个重要的关注点:可维护性和复用。全部采用JSP和Servlet的应用,因为分层不够清晰,业务逻辑的实现没有单独分离出来,造成系统后期维护困难。

使用框架的优点:可维护性和复用。

13. 传统Model1和Model2的比较

Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。Model1实现简单,适合于快速开发小规模项目。但是,将控制器逻辑和表现逻辑混杂在一起,从而导致代码的重用性非常低,增加了应用的扩展性可维护的难度。

Model2是基于MVC架构的设计模式。Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理;然后,调用后端的JavaBean来完成实际的逻辑处理;最后,转发到相应的JSP页面处理显示逻辑。

14. MVC思想及其优势

MVC思想将一个应用分成了Model,View,Control三个部分。三个部分以最少的耦合协同工作,从而提高应用的可扩展性和维护性。

15. 简述Struts2与MVC的对应关系

在struts2中,

Model对应业务逻辑组件,它通常用于实现业务逻辑方法以及以及与底层数据库的交互等;

View对应视图组件,通常是指JSP页面,但也适用于其他视图显示技术,如V elocity 或者Excel文档;

Control对应系统核心控制器和业务逻辑控制器,

①系统核心控制器为Struts2框架提供的FilterDispatcher,它根据请求自动调用相应的

Action。

②而业务逻辑控制器是指开发人员自行定义的一系列Action,在Action中负责调用相

应的业务逻辑组件来完成处理。

16. 简述Struts2体系架构

Struts2 框架由3个部分组成:

核心控制器FilterDispatcher、业务控制器和用户实现的业务逻辑组件。

?核心控制器:FilterDispatcher

FilterDispatcher是Struts2框架的核心控制器,该控制器作为一个filter运行在web应用,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求?业务控制器

业务控制器组件就是用户实现Action类的实例

?Struts2的模型组件

JavaEE 应用里的模型组件,通常指系统的业务逻辑组件,而隐藏在系统的业务逻辑组件下面的可能还包含Dao、领域对象等组件

?Struts2视图组件

Struts2能使用JSP、FreeMarker、V elocity等作为视图技术

17. 简述Struts2工作流程

Struts 2框架的大致处理流程如下:

(1)浏览器发送请求,例如请求/mypage.action、/reports/myreport.pdf等。

(2)Control中的核心控制器FilterDispatcher根据请求调用相应的业务逻辑控制器(Action)。

(3)Struts2的拦截器链自动对请求应用通用功能,如数据校验和文件上传等功能。

(4)回调Action中的execute()方法,并在方法体内调用业务逻辑组件来处理请求(Model)。既可以是将数据保存到数据库,也可以从数据库中检索信息。实际上,因

为Action只是一个控制器,它会调用业务逻辑组件来处理用户的请求。

(5)execute()方法将调用业务逻辑组件(Model)得到的数据返还并更新视图层(View),可以是HTML页面、图像,也可以是PDF文档或者其他文档。此时支持的视图技术非常多,既支持JSP,也支持V elocity、FreeMarker等模板技术。

参见2_Struts2框架p16的图

18. Struts2 的配置文件:

action,class,result

19. 服务器端的数据效验有两种方式:1)编码校验2)配置文件校验

1)编码校验:

UserAction继承了ActionSupport类,只要重写validate()方法便可实现编码校验

2)配置文件校验:

在Action类所在的包下建立UserAction-validation.xml校验文件(命名规则:Action类名-validation.xml)

true

用户名不能为空!

6

12

用户名长度必须在${minLength} - ${maxLength}位!

由于Struts2的一个Action类可以对应多个请求,然而validate()校验方法是所有提交到这个Action类的业务逻辑的公共的校验方法。因此开发时涉及到某具体业务时,一般为具体业务单独编码一个校验方法。而让validate()作为这些个业务公共属性的校验。这样做尤为合适。。

若本示例以login()作为Action类中专门处理登录的方法,则其对应的校验方法命名规则为validateLogin()。

Struts2会先调用validateLogin(),再调用validate()[可不写],最后再进入login()进行业务逻辑处理。

20. 简述Action接收数据的两种方式,这两种方式的区别和使用场景。

答:Action接收数据的2种方式是属性驱动、模型驱动。

属性驱动:Struts2通常直接使用Action来封装HTTP请求参数,因此,Action类里还应该包含与请求参数对应的属性,并为这些属性提供对应的setter和getter方法。

例如:例如,用户请求包含user和pass两个参数,Action类应该提供user和pass两个属性封装用户的请求参数,并提供对应的setter和getter方法。

public class LoginAction

{

private String user;

private String pass;

publicc void setUser(String user)

{

https://www.doczj.com/doc/937665155.html,er=user;

}

public String getUser()

{

return (https://www.doczj.com/doc/937665155.html,er);

}

public void setPass(String pass)

{

this.pass=pass;

}

public String getPass()

{

return (this.pass);

}

public String execute()

{

...

return resultstr

}

}

模型驱动:每一个Action需要提供一个POJO对象,用来封装表单属性。

例如:

Username:

Password:

POJO的代码,其实就是普通的Java Bean 。

public class User {

private String username;

private String password;

//各属性get与set方法。省略。。。

}

Action代码:

public class RegisterAction extends ActionSupport implements ModelDriven { private User user = new User();

public String execute() throws Exception {

return ActionSupport.SUCCESS;

}

// 模型驱动必须实现的方法,也是ModelDriven接口中唯一的方法

public User getModel() {

return user;

}

}

属性和模型驱动区别

(1)模型驱动的Action必须实现ModelDriven接口,而且要提供相应的泛型,这里当然就是具体使用的Java Bean了。

(2)实现ModelDriven的getModel方法,其实就是简单的返回泛型的一个对象。

(3)在Action提供一个泛型的私有对象,这里就是定义一个User的user对象,并实例化。

上面的三件事做完之后,Action就会去自动调用User的setter将表单中的name属性的值赋给User中的属性。而Action的后续处理的Jsp页面后者是Servlet就可以使用user 对象了。

属性和模型驱动的使用场景

(1)请你统一整个系统中的Action使用的驱动模型,即要么都是用属性驱动,要么都是用模型驱动。

(2)如果你的DB中的持久层的对象与表单中的属性都是一一对应的话,那么就使用模型驱动吧,毕竟看起来代码要整洁得多。

(3)如果表单的属性不是一一对应的话,那么就应该使用属性驱动,否则,你的系统就必须提供两个Bean,一个对应表单提交的数据,另一个用与持久层。

21. Action的三种实现方式

●实现接口的Action,execute()

●继承基类ActionSupport的Action

●POJO实现的Action:Action类是一个普通的POJO,无需实现如何接口,

无需继承任何基类,无入侵性,通常应包含一个无参的execute方法,Action

处理完用户请求后,可以返回任意的字符串,不利于项目管理,如

“welcome”,”success”等

22. Action访问Servlet API

web应用的控制器而言,还是需要访问Servlet API的HttpServletRequest、HttpSession和ServletContext,

非IOC方式:Struts2提供了ActionContext类,Action可以通过该类来访问Servlet API。

要使用IoC方式,首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。例如要访问Session,就要实现SessionA ware接口。

23. Action的动态方法调用

如果JSP页面包含多个请求处理,例如:“登录”和“注册”,但分别提交给不同方法处理,此时一个Action内包含多个请求处理方法的处理:

(1)、为Action配置method属性:一个表单包含多个提交按钮,需要分别提交给不同的控制逻辑,Struts2还提供了一种方法,即将Action类定义成多个逻辑Action。

如果在配置元素时,指定action的method属性,则可以让Action类调用指定方法,而不是execute方法来处理用户请求。

(2)、动态方法调用(DMI:Dynamic method invocation)是指:表单元素的action不直接等于某个Action的名字,而是以如下形式来指定对应的动作名:

24. 简述拦截器的作用。

在AOP中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。

25. 简述拦截器的定义、配置和使用

答:自定义一个实现Interceptor接口(或者继承自AbstractInterceptor)的类,实现intercept 方法;在strutx.xml中通过元素来注册上一步中定义的拦截器,格式如下: ;在需要使用的Action中通过引用上述定义的拦截器。

26. 持久化概念

持久化就是把数据(如内存中的对象)同步保存到数据库或某些存储设备中(如磁盘文件中、XML数据文件中)等等。

27. 什么是ORM?

ORM(object relational mapping)是对象到关系的映射,它把对表直接进行的操作变成对持久化类的属性和方法的直接操作,ORM作为分层体系中的持久层.

28. 常见的ORM产品

Apache OJB、Hibernate、iBatis 、TopLink

其中TopLink 是Oracle 的商业产品,其他均为开源项目

29. 为了使用Hibernate进行持久化操作,通常有如下操作步骤:

(1).开发持久化类,由POJO加映射文件组成

(2).获取Configuration

(3).获取SessionFactory

(4).获取Session,打开事务

(5).用面向对象的方式操作数据库

(6).关闭事务,关闭Session

30. Hibernate配置文件的默认文件名为hibernate.cfg.xml,作用是什么?

通过这个配置文件,指定连接哪个数据库,以及连接数据库时所用的连接池、用户名和密码等详细信息。这些信息对于所有的持久化类都是通用的,这些信息称为Hibernate 配置信息。当程序调用Configuration对象的configure()方法时,Hibernate将自动加载该文件。在元素中配置数据源,可接受多个元素,每个元素指定一个映射文件,其中的resource属性指定Hibernate映射文件的文件名。

31. 持久化对象(PO)

PO(Persistent Object,持久化对象).PO的作用是完成持久化操作,通过该对象可对数据执行增、删、改的操作---以面向对象的方式操作数据库。应用程序无须直接访问数据库,只需创建、删除、修改持久化对象即可;与此同时,Hibernate则负责把这种操作转换为对指定数据表的操作。Hibernate的PO完全采用普通Java对象来作为持久化对象使用,看下面的POJO (普通java对象)类。

PO=POJO+映射文件

通过映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类与数据表列之间的对应关系,在映射文件中,hibernate-mapping元素下有class子元素,每个class子元素映射一个PO,或者说是持久化类。

32. Hibernate核心接口

Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query和Configuration。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。Configuration接口:Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。等价于DriverManager。调用代码:SessionFactory sessionFactory = cfg.buildSessionFactory();

Session接口:Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。)。它代表与数据库之间的一次操作,它的概念介

于Connection和Transaction之间。等价于Connection。调用代码

Session session = sessionFactory.openSession();

Query和Criteria接口:Query和Criteria接口允许你在数据库上执行查询并控制查询如何执行。查询语句使用HQL或者本地数据库的SQL方言编写。调用代码:

Query query = session.createQuery(“from User”);

Transaction接口:Transaction接口负责事务相关的操作。它是可选的,可发人员也可以设计编写自己的底层事务处理代码.

33.什么是HQL?

HQL(Hibernate Query Language)针对hibernate的查询语言,完全面向对象,理解继承,多态和关联之类的概念。传统的SQL语言采用的是结构化的查询方法,而这种方法对于查询以对象形式存在的数据却无能为力。HQL配备了很强大的查询语言,在语法结构上类似SQL,但HQL是面向对象的查询语言。通过Query接口执行HQL,每个Query 实例对应一个查询对象。HQL不仅可以查询,还可以更新、删除

34. 使用HQL查询按如下步骤进行

(1).获取Hibernate Session对象

(2).编写HQL语句

(3).以HQL语句作为参数,调用Session的createQuery方法创建查询对象

(4). 如果HQL语句包含参数,则调用Query的setXxx方法为参数赋值

调用Query对象的list等方法返回查询结果列表

35. 什么是原生SQL查询?

原生SQL查询是指通过传入原始的SQL语句进行查询,使用原生SQL查询可以利用某些数据库的特性,或者需要将原有的JDBC应用迁移到Hibernate应用上。如果是一个新的应用,通常不要使用SQL查询。对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。

36. 什么是Spring?

Spring是一种多层的J2EE应用程序框架,其核心就是提供一种新的机制管理业务对象及其依赖关系。例如IOC(控制反转),AOP(面向切面编程)

37. 什么是IOC?

IOC:Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。

38. 什么是DI:Dependency Injection 依赖注入?

DI和IOC是同一个概念。具体含义是:当某个角色需要另一个角色的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在Spring里,创建被调用者的工作不再由调用者来完成,因此称为控制反转;创建被调用者实例的工作通常由Spring容器来完成,然后注入给调用者,因此也称为依赖注入。

39. 依赖注入的两种方式

设值注入:是指通过setter方法传入被调用者的实例。这种注入方式简单、直观,因而在Spring 的依赖注入里大量使用。

构造注入:指通过构造函数来完成依赖关系的设定,而不是通过setter方法来完成被调用者实例的注入。

40. 什么是AOP?为什么需要AOP?

AOP Aspected Oriented Programming 面向切面编程。它可以解决OOP和过程化方法不能够很好解决的横切(crosscut)问题,如:事务、安全、日志等横切关注。AOP专门用于处理系统中分布于各个模块中的交叉点的问题,如事务管理、安全检查、缓存、对象池管理等。

AOP已经成为非常常用的解决方案。

AOP从程序运行角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中各个步骤,希望以更好的方式来组合业务处理的各个步骤。

AOP框架并不与特定的代码耦合,AOP框架能处理程序执行中特定切入点(Pointcut),而不与具体某个类耦合。

41. Bean的基本定义

?元素是Spring配置文件的根元素,元素是元素的子元素,元素元素可以包含多个子元素,每个子元素定义一个Bean,每个Bean对应Spring容器里的一个Java实例。

?定义Bean时,通常需要指定两个属性:

?id:确定该Bean的唯一标识符

?class:指定该Bean的具体实现类。

42. 切面(Aspect):业务流程运行的某个特定步骤,也就是应用运行过程的关注点,

关注点可能会横切多个对象,所以也称为横切关注点。

?连接点(Joinpoint):在程序执行过程中明确的点,比如某方法调用的时候或者处理异常的时候。在Spring AOP 中,一个连接点总是代表一个方法的调用。

?增强处理(Advice):在切面的某个特定的连接点(Joinpoint)上执行的动作。包括“around”、“before”和“after”等类型的Advice。

?切入点(Pointcut):可以插入增强处理的连接点。简而言之,当某个连接点满足指定要求时,该连接点将被添加Advice,该连接点也就变成了切入点。例如如下代码:Pointcut xxxPointcut()

:execution(void H*.say*())

每个方法被调用都只是连接点,但如果该方法属于H开头的类,且方法名以say开头,该方法的执行将变成切入点。如何使用表达式来定义切入点是AOP 的核心,Spring 缺省使用AspectJ 切入点语法。

43. Advice的类型:

?前置Advice (Before advice):在某连接点(join point)之前执行的Advice ,但这个Advice不能阻止连接点前的执行(除非它抛出一个异常)。

?返回后Advice (After returning advice):在某连接点(join point)正常完成后执行的Advice :例如,一个方法没有抛出任何异常,正常返回。

?抛出异常后Advice (After throwing advice):在方法抛出异常退出时执行的Advice 。

?后Advice (After (finally) advice):当某连接点退出的时候执行的Advice (不论是正常返回还是异常退出)。

?环绕Advice (Around Advice):包围一个连接点(join point)的Advice ,如方法调用。这是最强大的一种Advice类型。环绕Advice可以在方法调用前后完成自定义的行为。它也会选择是否继续执行连接点或直接返回它们自己的返回值或抛出异常来结束执行。

44. Spring 2.0 实现了两种方式的AOP 配置,一种是基于XML 配置文件式的,可以用在JDK1.4 上,另一种是基于@AspectJ 风格的标注Annotation)进行AOP 开发,可以用在JDK1.5 的系统上。

45. Spring提供的事务管理可以分为三类:编程式的、声明式的和基于@Transactional 注释的。

Spring事务策略是通过PlatformTransactionManager接口体现的,该接口是Spring事务策略

的核心。

46. Spring如何整合Struts?

答:创建好Action类和jsp页面后,

(1)需要修改web.xml文件内容,除了需要加入Struts 2 的过滤器之外,还要配置并启动Spring的Web容器,并指定哪些配置文件需要被加载。以下是web.xml 的代码清单:

contextConfigLocation

/WEB-INF/applicationContext*.xml,classpath*:applicationContext*.xml

struts2

org.apache.struts2.dispatcher.FilterDispatcher

struts2

/*

index.jsp

org.springframework.web.context.ContextLoaderListener

(2)需要修改Struts配置文件中的内容。必须设置struts.objectFactory 属性值为spring,在struts.xml 中加入这样一个标签:

...

(3)要对原来的Action 定义进行修改,修改action 标签中的class 属性为Spring 中所定义的bean 的名字。

struts.xml 的代码清单如下:

/HelloPOJO.jsp

(4)在Spring 的配置文件中将它作为bean来配置,并设置必要的属性值(注入)。定义:

Spring 配置文件applicationContext.xml 的源代码列出:

Spring Struts 2 注入

47. Spring如何整合Hibernate?

答:为了简化开发,我们将会使用Spring 2.0 的@Transactional 标注解决事务提交问题的标注方式来生成DAO 层。

(1)在Hibernate 配置文件hibernate.cfg.xml中指定所连接的数据库:

root

jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK

org.hibernate.dialect.MySQLDialect

mysql5

com.mysql.jdbc.Driver

(2)在Spring 配置文件applicationContext.xml中注明使用注释驱动处理事务,并将事务作为Advice插入到DAO中:

proxy-target-class="true"/>

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

value="classpath:hibernate.cfg.xml">

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

(3)定制实体类映射配置文件dao/Student.hbm.xml:

(4)生成DAO 层实体类dao.Student.java:

public class Student implements java.io.Serializable {

DAO 层核心类dao.StudentDAO.java:

@Transactional

public class StudentDAO extends HibernateDaoSupport {

}

(5)生成测试类

public class StudentDAOTest{

public static void main(String[] args) {

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

StudentDAO dao = (StudentDAO)ctx.getBean("StudentDAO");

Student user = new Student();

user.setPassword("密码");

user.setUsername("spring hibernate 标注事务测试");

user.setAge(200);

dao.save(user);

}

}

ssh框架面重要试题

Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。 他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。 它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与存中,当程序真正对数据的操作时,对象才存在与存中,就实现了延迟加载,他节省了服务器的存开销, 从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、 one-to-many、many-to-many、 4.说下Hibernate的缓存机制

JAVA Web课程设计--注册登录系统-- 用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统 注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。 本次课程设计的主要内容有: ●系统概述 ●设计数据库 ●SSH三大框架的整合 ●MD5加密的实现(选做) ●注册系统的实现 ●登录系统的实现

1、系统概述 本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web 系统。 1.1系统功能简介 本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。 当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。 当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。 1.2系统总体结构 本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的Action、DAO层代码和若干个JSP页面组成。其中注册系统的Action是RegisterAction类,另外还有一个用于显示用户注册页面的register.jsp文件和一个负责显示处理结果的result.jsp文件。登录系统的Action是LoginAction类,另外还有一个login.jsp文件和一个表示用户已经成功登录的success.jsp文件。用户注册登录系统的工作流程图如下图所示:

Spring考试试卷(有答案)

Spring考试试卷(题库) 1.下列关于AOP的说法错误的是()。 A.AOP将散落在系统中的“方面”代码集中实现 B.AOP有助于提高系统的可维护性 C.AOP已经表现出了将要替代面向对象的趋势 D.AOP是一种设计模式,Spring为其提供了一种实现 2.在SSH整合时,事务隔离级别是由()实现的。 A.Java应用程序 B.Hibernate C.数据库系统 D.JDBC驱动程序 3.下列()不是Spring的依赖注入方式。【选两项】 A.setter注入B.getter注入 C.接口注入 D.构造注入 4.在Spring框架中,面向方面编程(AOP)的目标在于()。 A.编写程序时不用关心其依赖组件的实现 B.将程序中涉及的公用问题集中解决 C.封装JDBC访训数据库的代码,简化数据访训层的得复性代码 D.实现画面的“无刷新” 5.关于Spring 与 Hibernate集成,下列说法错误的是()。 A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用 B.在Spring配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例 C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory 注入到DataSource中 D.通过Spring,可以在Biz层代码中无需直接实例化DAO类,而是通过注入得到 6.在Spring中,下列关于依赖注入的说法,正确的是()。 A.依赖注入的目标是在代码之外管理程序组建间的依赖关系(组件?组建?) B.依赖注入即“面向接口”的编程 C.依赖注入是面向对象技术的替代品 D.依赖注入的使用会增大程序的规模 7.下列关于Spring的说法错误的是()。

JAVAWeb课程设计--注册登录系统--用SSH框架整合实现注册登录系统

用SSH框架整合实现注册登录系统注册登录系统几乎是每一个web程序必须拥有的功能,因此,在本次课程设计中将其单独提取出来,并使用SSH框架的整合来实现这个系统。虽然注册和登录系统并不复杂,但这两个子系统却拥有一个完整系统的必要功能,如验证客户端输入、数据库访问等。因此,通过本次课程设计的练习,大家可以基本上了解使用SSH框架整合开发一个完整系统的一般步骤。 本次课程设计的主要内容有: ●系统概述 ●设计数据库 ●SSH三大框架的整合 ●MD5加密的实现(选做) ●注册系统的实现 ●登录系统的实现

1、系统概述 本次课程设计练习了一个简单的Web系统,该系统实现了用户注册、用户登录两个功能。本系统的实现是基于SSH框架整合技术的。本系统功能单一,业务逻辑简单。主要用于大家练习如何使用SSH框架整合技术开发一个完整的Web系统。 1.1系统功能简介 本系统分为两个功能:注册和登录,当用户注册一个新用户时(可以使用英文和中文用户名),就是向数据库的user表中添加一条记录。 当用户输入注册信息时,本系统提供了基本的客户端验证,来判断用户输入的合法性,只有当用户的输入满足系统的要求时,才会将用户输入的数据提交到服务器端负责处理注册信息的Action。在注册Action成功处理完用户提交的注册信息后,客户端仍然会回到注册页面。如果用户想使用已经注册的用户名来登录,可以通过单击“登录”超链接转到登录页面进行登录。 当用户在登录页面正确输入在数据库中已经存在的用户名和密码时,就可以成功登录了。在用户登录页面也拥有和用户注册页面类似的客户端验证机制。也就是说,只有当用户名和密码都输入时,系统才会向服务器端负责登录的Action 提交信息。通过验证用户名和密码都正确,系统才允许登录。 1.2系统总体结构 本系统的注册系统和登录系统是相互独立的,但可以通过使用注册和登录系统的相应超链接导航到另一个系统中。每一个系统分别由一个处理业务逻辑的

SSH题库

1. SSH中,依次处理的哪一层的实现? D A.Struts –业务逻辑层;Hibernate-表现层;Spring-持久层 B.Struts-表现层;Hibernate-业务逻辑层;Spring-持久层 C.Struts-持久层;Hibernate-表现层;Spring-业务逻辑层 D.Struts-表现层;Hibernate-持久层;Spring-业务逻辑层 2. 在Struts实现的MVC框架中,(A)类是包含了excute方法的控制器类,负责调用模型的方法,控制应用程序的流程。 A. Action B. EJB C. ActionServlet D. JSP 3. 在基于Struts框架的Web应用中,下面关于Action类的说法正确的是(C)。 A. Action类属于模型组件 B. Action类主要用来完成实际的业务逻辑 C. Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程 D.在Web应用启动时会自动加载所有的Action实例 4. 下面关于数据持久化概念的描述,错误的是(D)。 A.保存在内存中数据的状态是瞬时状态 B.持久状态的数据在关机后数据依然存在 C.数据可以由持久状态转换为瞬时状态 D.将数据转换为持久状态的机制称为数据持久化 5. 下面关于Hibernate的说法,错误的是(C)。 A.Hibernate是一个“对象-关系映射”的实现 B.Hibernate是一种数据持久化技术 C.Hibernate是JDBC的替代技术 D.使用Hibernate可以简化持久化层的编码 6. 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是(B)。 A.配置客户和订单关联的cascade属性为save-update B.配置客户和订单关联的cascade属性为all C.设置多对一关联的inverse属性为true D.设置多对一关联的inverse属性为false 7. 执行下面的hql查询,关于返回值的说法,正确的是(B)。 select https://www.doczj.com/doc/937665155.html,ername,https://www.doczj.com/doc/937665155.html,erid from https://www.doczj.com/doc/937665155.html,er u where u is not null A.语法错误,不能执行 B.返回一个类型为List的实例 C.返回一个数组 D.当返回结果只有一条时,返回一个数组 8. 下面创建Criteria对象的语句中正确的是(D)。 A.Criteria c = query.createCriteria(); B.Criteria c = query.addCriteria(); C.Criteria c = session.createCriteria(); D.Criteria c = session.createCriteria(User.class); 9. 下面关于“依赖注入”的说法,错误的是(D)。 A.将组件间的依赖关系采取配置文件的方式管理,而不是硬编码在代码中 B.降低了组件间的耦合,使程序更容易维护和升级 C.促进了“面向接口”编程,使构建大规模程序更轻松 D.需要定义大量接口,增加了编码复杂度 10. 关于Spring的说法错误的是(C)。

SSH三大框架整合(详细版)

1:构建WEB项目 2:构建数据库 3:加入依赖包 尽量不要依赖IDE,通过自己手动加包完成 访问数据库需要的包:mysql的驱动包 Hibernate的包:hibernate3.jar 核心包 依赖的必须包:antlr-2.7.6.jar 用于解析成HQL语句的包 commons-collections-3.1.jar apache提供的包,提供对集合框架的增强 dom4j-1.6.1.jar 解析XML文件的包 javassist-3.9.0.GA.jar 动态修改字节码需要用到的包 jta-1.1.jar 用于JTA事务的包 slf4j-api-1.5.8.jar 日志接口包---》依赖一定的实现包 slf4j-log4j12-1.5.0.jar log4j.jar 另外一种实现包:slf4j-simple-1.5.10.jar 可选的包:c3p0-0.9.1.jar 用于创建C3P0连接池的包 ehcache-1.2.3.jar :用于缓存实现的包 cglib-2.2.jar 动态修改字节码的包 Spring的包:spring.jar 核心包 aopalliance.jar 使用Aop功能可以用到的包 aspectjrt.jar aspectjweaver.jar 使用ASPECTJ表达式需要用到的包 如果是使用DBCP连接池的话,需要两个jar包 commons-dbcp.jar commons-pool.jar 如果需要用到commons增加包的话,可以加入以下包 commons-beanutils.jar commons-lang.jar commons-logging.jar Struts2的包:commons-fileupload-1.2.1.jar commons-io-1.3.2.jar freemarker-2.3.13.jar :在Struts2 中默认使用的是FreeMarker模板引擎 ognl-2.6.11.jar :Struts2中使用OGNL表达式 struts2-core-2.1.6.jar 核心包 xwork-2.1.2.jar 核心包 struts2-spring-plugin-2.1.6.jar Struts2跟Spring整合需要的插件包 4:构建项目分包结构 5:放置配置文件 6:创建POJO和相对应的hbm.xml 7:修改空白的Hibernate.cfg..xml并创建表结构 8:创建DAO,SERVICE,ACTION 9:修改配置文件

ssh试题

测试卷 (java) 一、选择题(60分) 1) 在Struts实现的MVC框架中,(a)类是包含了 excute方法的控制器类,负责调用模型的方法,控 制应用程序的流程。 a) Action b) EJB c) ActionServlet d) JSP

2) 在基于Struts框架的Web应用中,下面关于Action 类的说法正确的是(c)。 a) Action类属于模型组件 b) Action类主要用来完成实际的业务逻辑 c) Action类负责调用模型的方法,更新模型的状 态,并帮助控制应用程序的流程 d) 在Web应用启动时会自动加载所有的Action 实例 3) 在基于Struts框架的Web应用中,下面关于 ActionForm Bean的说法正确的是(b)。 a) ActionForm Bean用来完成一些实际的业务逻 辑 b) Struts框架利用ActionForm Bean来进行视图和 控制器之间表单数据的传递 c) ActionForm负责调用模型的方法,更新模型的 状态 d) ActionForm Bean包含一些特殊的方法,reset()

用于验证表单数据validate()将其属性重新设置 为默认值 4) 分析Action Bean的execute方法: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ActionErrors errors=new ActionErrors(); if(!udao.check(loginform)){ errors.add("login", new ActionMessage("error.login")); return mapping.findForward("failure"); } } 完成以上的功能,应在下划线上填入(c)。 a) this.saveErrors(request, errors); b) this.saveErrors(reponse, errors); c) this.addErrors(request, errors); d) this.addErrors(reponse, errors);

Java三大框架(ssh)总结

Hibernate框架 第一章数据结构 1.1认识数据结构 数据:是信息的载体,是能够被计算机识别、存储、计算的符号集合是计算机处理的对象的总称; 数据元素:也称为结点,是组成数据的基本单位; 数据项:是数据的最小单位; 数据对象:是具有相同特征的数据元素的集合,它是数据的子集; 数据结构:计算机存储、组织数据的方式; ●逻辑结构:指从逻辑关系上描述数据,与数据的存储无关,且独立于语言; ?线性结构:有且仅有一个开始结点和一个终端结点,所有结点最多只有一个前驱 结点和一个直接后继结点; ?非线性结构:指一个结点可能有多个直接前驱和直接后继结点。 ●存储结构:指数据元素及其关系在计算机存储时如何表示,依赖于语言; ●数据运算:通茶昂贵定义在数据的逻辑结构上。 1.2算法 是为求解一个问题需要遵循的,被清晰的制定的简单指令的集合;正确的算法有如下特点: ●用待处理问题的相关信息作为输入数据 ●对一个既定的合法输入,多次执行同一算法,总返回同一个结果(随机算法除外) ●算法中的指令是可行的,即每个指令都可以实现 ●算法中指令的数量是有限的 ●算法执行完毕后,能够输出正确的数据集合 1.3算法分析 目的在于选择合适的算法,算法分析是从复杂度来考虑的。复杂度:衡量一个算法好坏的重要手段; ●时间复杂度:以算法执行时间长短来衡量 ●空间复杂度:以算法执行占用的存储空间来衡量

第二章算法 第三章设计模式 3.1面向对象设计原则 单一职责原则:要求每个对象应该只有一种责任; 开闭原则:设计程序时对扩展开放,对修改关闭; 里氏替换原则:任何情况下,子类替换父类,不会影响程序运行; 依赖倒置原则:提倡高层不依赖底层,二者都依赖抽象; 接口隔离原则:把多个功能分开声明,不强迫客户实现不需要的功能; 迪米特原则:最少只是原则尽可能的降低访问级别; 组合/聚合复用原则:尽量不用继承达到复用类的目的,而是使用组合和聚合。 3.2设计模式分类 创建型模式:如何创建对象以及何时创建对象,工厂模式,单例模式 结构型模式:对象该如何组织以及采用什么样的结构更合理 行为型模式:规定了各个对象应该具备的职责以及对象间的通信模式 3.3什么是框架 应用程序骨架;框架技术的优势在于: ●不用再考虑公共问题,框架已经帮我们做好了 ●可以专心在业务逻辑上,保证核心业务逻辑的开发质量 ●结构统一,便于学习、维护 ●框架集成的前人的经验有助于写出稳健、性能优良并且结构优良的高质量程序 3.4主流框架 3.4.1 Struts框架 最早的Java开源框架之一,定义了通用的Controller(控制器),通过配置文件(一般是struts-config.xml)隔离了Model(模型)和View(视图),以Action的概念对用户请求进行了封装,是代码更清晰易读。 3.4.2 Struts2框架 新的框架特性: ●从逻辑中分离出横切关注点的拦截器 ●减少或者消除配置文件 ●贯穿整个框架的强大表达式语言 ●支持可变更和可重用的基于MVC模式的标签API

SSH综合试卷

SSH学习增强练习 课程名称: SSH学习增强练习考试时间80分钟(闭卷■) 选择题 1.开发struts2 web项目,需要导入哪些jar包(选2项) A 必须导入struts2 解压lib下所有jar包 B 只需要导入struts2解压app/struts2_blank.war中的jar包就可以 C 如果进行注解开发,导入struts2解压app/struts2_blank.war中的jar包就可以 D 如果进行注解开发,还必须导入convention的插件jar包 2.下面关于struts2 MVC说法正确的是?(选2项) A.Struts2 是一个基于MVC模式的web层框架 B.Struts2中核心控制器是ActionServlet C.Struts2中模型是Action D.Struts2中控制器是Filter 和Action E.Struts2的视图必须用JSP 3.关于Struts2 Action说法下面不正确的是 A.用户编写的Action可以是POJO类 B.用户编写的Action可以实现Action接口 C.用户编写的Action 可以继承ActionSupport D.Action中必须提供execute方法 E.Action提供的业务方法必须public修饰,String类型返回值,无参数的 4.如果客户端请求路径http://localhost:8080/struts2_exec/user_add.action 要执行UserAction类中 的add方法,下面的配置哪些是正确的(选2项) A. B. C. D. E. 5.下面关于Struts2中result type说法不正确的是? A.如果要将请求从一个Action转发给另一个Action 可以使用chain 结果集 B.如果要将请求重定向给一个JSP,可以使用dispatcher 结果集 C.如果要将请求从一个Action重定向到另一个Action 可以使用redirectAction结果集 D.如果要将请求从一个Action重定向到JSP,可以使用redirect结果集 E.进行文件下载时可以使用stream结果集 6.如果客户端提交请求路径为http://localhost:8080/struts2/hello.action?name=”itcast”, 下面在 Action中要接收name请求参数,哪个写法是正确的?(选2项) A.public class HelloAction { private String name; public void setName(String name){ https://www.doczj.com/doc/937665155.html, = name; } } B.public class HelloAction { private User user ; public void setUser(User user){ https://www.doczj.com/doc/937665155.html,er = user; } } public class User {

整合SSH三大框架介绍

一.在MyEclipse里先建立一个Web project 的项目,选最新版本的java ee。 二.添加struts2框架支持 1.引入struts2必须得几个jar包,放在WebRoot->WEB-INF->lib 目录下。 2.将WEB应用部署到tomcat服务器上:找到tomacat的安装目录Tomcat6.x\apache-tomcat-6.0.33\conf,打开其中的server.xml文件,在文件末尾上面加入例如 这样的句子,其中path的值为你需要访问网站的上下文,docBase的值为该web项目的WebRoot所在的目录,最后一个readloadable最好选true。 3.在WebRoot->WEB-INF->web.xml中加入struts2的过滤

器将部署好的应用纳入到struts2的管辖范围类,具体代码如下 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPre pareAndExecuteFilter struts2 /* 4.在web项目的src目录下,建一个struts.xml文件,这里是处理struts整个流程的文件。在其中加入 上面的name随便取,extends绝对不能变。 5.这样以后,启动tomcat服务器看看能不能正常启动,如果正常启动后,在浏览器上访问,http://localhost/上下文/index.jsp看能不能进入,若能进入则表示struts2的框架已经成功加到web项目中了,可以开始下一步了。

SSH框架教程

SSH框架的学习 一,Struts 2 1 为什么要学习Struts框架? 1>Struts框架的好处:简化开发工作量,提高开发效率;采用了优秀的MVC 思想 2>如何学习:先掌握框架的使用,在了解内涵 2 MVC模式在javaWeb中的应用 1>MVC思想是根据组件职责不同,将系统分为三部分组成 --M(Model) 负责业务处理 --V(View) 负责与用户交互 --C(Controller) 负责协调试图部分和模型部分协同工作 2> 为什么使用MVC:易于扩展和升级 3 Struts框架的处理流程 浏览器发出struts请求—>请求进入struts控制器—>struts控制器解析XML配置文件—>控制器根据不同请求,调用不同的Action—>Action 调用DAO处理请求返回结果—>控制器根据结果调用试图组件,响应给用户 4 Struts 历史 Struts框架分为Struts1和Struts2 两者没有必然联系,Struts2 是以WebWork 框架核心(Xwork)为基础构建起来的 5 Struts 基本使用 1>引入核心开发包五个: commons-logging-1.0.4.jar ( 主要用于日志处理) struts2-spring-plugin-2.0.14.jar ( struts2整合spring需要的包) 2>在web.xml 中配置struts控制器 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExcuteFilter

3>根据要求编写Action 和JSP Action要继承ActionSupport 4>在struts.xml定义Action和请求对应关系 6 struts.xml 基本配置可以放在src下面 1> 根元素里面包含多个元素 2> 主要是为了将Action分组定义name用于指定包名;extends一 般指定struts-default(在struts-default.xml中定义),里面包括struts2运行所需的必要组件 3> 4> 一个可以包括多个 主要用于试图响应 5>下面一个例子: 7 为列表添加分页功能例如每页2个 page =1; pageSize=2; int begin=(page-1)*pageSize+1; int end=page*pageSize; eg: select * from ( select rownum rn , c.* form COST c ) where rn between 1 and 6;

08230440ssh框架期末考试试卷a

烟台南山学院2013—2014学年第二学期期末考试 《SSH 框架》A (课程代码:08230440 专业:软件技术 学习层次:专科 年级:2012级) 编程题(共两题,总计100分) 1.请用Struts 2 框架,设计一个简单的登录程序,主要要求如下:(60分) 1)建立web project ,项目名字统一定为:struts_login (5分)。 2 ) 创建登录主界面,当用户点击提交按钮时,将用户提交的用户名和密码信息提交给 这个action. 页面如下:(10分) 3)添加页面和,分别用来提示用户登录成功和登录失败(10分)。 4)添加相关的jar (5分)。 5)配置文件(5分)。 6)在src 包下面创建package,该package 起名 (5分) 7)创建LoginAction 类,该类有两个属性:username 和password ,为该类设置getters 和setters 方法,并编写execute 方法,判断用户输入的用户名是否等于nanshan,密码是否等于 ruanjian 。如果以上判断成立,返回sucess,否则返回error 。(10分) 8)创建并配置文件,指定LoginAction 类作为的处理类。根据第七步LoginAction 类的配置,通过配置文件实现如下功能:当用户登录成功时跳转到页面;当用户登录失败时跳转到页面。(10分) 2.请利用Hibernate 框架完成如下功能:(40分) 在book 数据库中有user 表结构如下: 1)创建Java project ,项目名字统一定为hibernate_book 。(5分) 2)在src 包下面创建package,该package 起名 (5分) 3)创建user 类,并为其创建构造函数以及get 和set 方法。(15分)

Spring考试试卷有答案

S p r i n g考试试卷(题库)1.下列关于AOP的说法错误的是()。 A.AOP将散落在系统中的“方面”代码集中实现 B.AOP有助于提高系统的可维护性 C.AOP已经表现出了将要替代面向对象的趋势 D.AOP是一种设计模式,Spring为其提供了一种实现 2.在SSH整合时,事务隔离级别是由()实现的。 A.Java应用程序B.Hibernate C.数据库系统D.JDBC驱动程序 3.下列()不是Spring的依赖注入方式。【选两项】 A.setter注入B.getter注入C.接口注入D.构造注入 4.在Spring框架中,面向方面编程(AOP)的目标在于()。 A.编写程序时不用关心其依赖组件的实现 B.将程序中涉及的公用问题集中解决 C.封装JDBC访训数据库的代码,简化数据访训层的得复性代码 D.实现画面的“无刷新” 5.关于Spring与Hibernate集成,下列说法错误的是()。 A.Spring提供了HibernateDaoSupport类来简化Hibernate的使用 B.在Spring配置文件中,可以通过Spring提供的LocalSessionFactoryBean来获得SessionFactory的实例 C.通过集成Spring和Hibernate,用Spring管理程序的依赖关系,将SessionFactory 注入到DataSource中 D.通过Spring,可以在Biz层代码中无需直接实例化DAO类,而是通过注入得到6.在Spring中,下列关于依赖注入的说法,正确的是()。 A.依赖注入的目标是在代码之外管理程序组建间的依赖关系(组件?组建?)B.依赖注入即“面向接口”的编程 C.依赖注入是面向对象技术的替代品 D.依赖注入的使用会增大程序的规模 7.下列关于Spring的说法错误的是()。 A.Spring是一个轻量级JAVAEE的框架集合B.Spring是“依赖注入”模式的实现

Java Web之三大框架试题(SSH)

Java 三大框架期末复习试题 大学准备期末复习以及准备职业面试之用 本资料有齐全的选择题,简单题,编程题; 绝对实用; Hibernate部分 一、单选题(共50题,每题2分) 1.下面不属于持久化的是(a)。 A.把对象转换为字符串的形式通过网络传输,在另一端接收到这个字符串后能把 对象还原出来 B.把程序数据从数据库中读出来 C.从XML配置文件中读取程序的配置信息 D.把程序数据保存为文件 2.下面(a )不属于关系—对象映射的映射信息。 A.程序包名到数据库库名的映射 B.程序类名到数据库表名的映射 C.实体属性名到数据库表字段的映射 D.实体属性类型到数据库表字段类型的映射 3.下面(ab)不是Hibernate 映射文件中包含的内容。(选两项) A.数据库连接信息 B.Hibernate 属性参数 C.主键生成策略 D.属性数据类型 4.下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是(d )。 public static void main(String[] args) { SessionFactory sf = new Configuration().configure().buildSessionFactory(); Session session = sf.openSession(); Medal medal = new Medal(); medal.setOwner("Shen Baozhi"); medal.setSport("Table Tennis-Women's Singles"); medal.setType("Gold Medal"); session.save(user); session.close(); }

SSH框架面试题(自己+别人的试题)

(问答题+选择题(在55页)) Java工程师(程序员)面题 Struts,Spring,Hibernate三大框架 1.Hibernate工作原理及为什么要用? 原理:1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory 3.打开Session 4.创建事务Transation 5.持久化操作6.提交事务7.关闭Session 8.关闭SesstionFactory 为什么要用:1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2.Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都是对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many 4.Struts1流程: 1、客户端浏览器发出HTTP请求。 2、根据web.xml配置,该请求被ActionServlet接收。 3、根据struts-config.xml配置,ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。 4、是否验证,需要验证则调用ActionForm 的validate方法,验证失败则跳转到input,成功则继续。 5、Action从ActionForm获得数据,调用javabean 中的业务方法处理数据。 6、Action返回ActionForward对象,跳转到相应JSP 页面或Action。 7、返回HTTP响应到客户端浏览器。 MVC设计模式:modal:“模型”也称业务逻辑,是正真完成任务的代码,相当与JavaBeanview:视图,其实就是显示界面,相当于JSPcontroller:控制器,他控制模型和视图的交互过程,相当于servletstruts1是基于MVC设计模式hibernate是基于ORM对象关系映射 5.struts是什么? struts1是基于JSP和servlet的一个开源的Web应用框架,使用的是MVC的设计模式struts2是基于webwork技术的框架,是sun和webwork公司联手开发的一个功能非常齐全的框架,struts2和struts1没有任何关系,是一个全新的框架

ssh学习心得体会

竭诚为您提供优质文档/双击可除 ssh学习心得体会 篇一:在ssh框架中使用spring的好处(面试总结) 在ssh框架中spring充当了管理容器的角色。我们都知道hibernate用来做持久层,因为它将jdbc做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的sql语句。struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以ssh框架的流程大致是:jsp页面 ----struts------service(业务逻辑处理类)---hibernate (左到右) struts负责控制service(业务逻辑处理类),从而控制了service的生命周期,这样层与层之间的依赖很强,属于耦合。这时,使用spring框架就起到了控制action对象(strus中的)和service类的作用,两者之间的关系就松散了,spring的ioc机制(控制反转和依赖注入)正是用在此处。 spring的ioc(控制反转和依赖注入) 控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控依赖注入:组件之间

的依赖关系由容器在运行期决定,由容器动态的将某种依赖关系注入到组件之中。 从上面我们不难看出:从头到尾action仅仅是充当了service的控制工具,这些具体的业务方法是怎样实现的,他根本就不会管,也不会问,他只要知道这些业务实现类所提供的方法接口就可以了。而在以往单独使用struts框架的时候,所有的业务方法类的生命周期,甚至是一些业务流程都是由action来控制的。层与层之间耦合性太紧密了,既降低了数据访问的效率又使业务逻辑看起来很复杂,代码量也很多。,spring容器控制所有action对象和业务逻辑类的生命周期,由于上层不再控制下层的生命周期,层与层之间实现了完全脱耦,使程序运行起来效率更高,维护起来也方便。 使用spring的第二个好处(aop应用): 事务的处理: 在以往的jdbctemplate中事务提交成功,异常处理都是通过try/catch来完成,而在spring中。spring容器集成了transactiontemplate,她封装了所有对事务处理的功能,包括异常时事务回滚,操作成功时数据提交等复杂业务功能。这都是由spring容器来管理,大大减少了程序员的代码量,也对事务有了(ssh学习心得体会)很好的管理控制。hibernate中也有对事务的管理,hibernate中事务管理是

《SSH框架整合详解》项目实践试卷

系(院): 专业: 年级及班级: 姓名: 学号: . 密 封 线 错误!未定义“自动图文集”词条。 重庆文理学院试卷 1.题目:“爱享”网络相册系统 功能主要有: ◆ 用户注册 ◆ 用户登录/注销,登录成功后显示相册列表及好友动态信息 ◆ 创建新相册 ◆ 上传相片到相册(显示进度条) ◆ 浏览相册(可以选择不同方式浏览) ◆ 查看相片(单击实现翻页) ◆ 发表相片评论 2.项目要求 ◆ 后台数据库采用Oracle,并使用相应的用户和命名空间,保存相应的SQL 语 句。 ◆ 根据项目的特点,采用适当的连接池方式。 ◆ 根据项目的特点,配置相应的二级缓存和查询缓存,以提高效率。 ◆ 根据项目的需要设置各个表的关联关系。 ◆ 使用HQL 或Criteria 进行查询检索。 ◆ 使用Spring 实现依赖注入。 ◆ 使用Spring 实现事务管理。 ◆ 优化Spring 配置文件。 ◆ 实现Struts 、Hibernate 和Spring 的集成。 使用Struts2+Hibernate+Spring 技术实现该系统,其实现的功能可以不局限于以上罗列的功能。 二、项目答辩要求及答辩流程 在完成项目后,请做好答辩的准备,根据通知的时间和地点参加答辩。答辩流程 课程名称: 《SSH 框架整合详解》 试卷类别: A 卷 考试形式:开卷 考试时间:至少4周 适用层次: 本科 适用专业: 11软件工程(外包)1 阅卷须知:阅卷用红色墨水笔书写,小题得分写在相应小题题号前,用正分表示;大题得分登录在对应的分数框内;考试课程应集体阅卷,流水作业。

《SSH框架整合详解》A卷

ssh实现图书馆管理系统

基于SSH的图书馆管理系统的设计与实现 摘要: 通过对图书馆管理系统的运行管理机制进行调查研究,采用Java编程技术和MySQL数据库,在MyEclipse 集成开发环境下应用SSH框架,完成了图书馆管理系统的设计全过程。本系统在开发过程中采用B/S结构,运用面向对象的开发技术,实现了浏览器端和服务器端的各自功能,其中浏览器端主要实现了读者登录、查询、超期提醒等功能,服务器端主要实现了系统设置、读者管理、图书管理、用户管理、图书借还、系统查询、更改密码等管理员功能。系统通过Hibernate 和数据库进行连接,有效解决了数据库连接及访问过程中的安全性及效率问题,提高了系统的可靠性及运行效率。论文较详细地叙述了该系统开发实现的全过程,并对具体关键技术及开发中遇到的问题进行了详尽的描述。 关键词:图书馆管理 SSH 借阅查询图书借还 1 引言 随着计算机的广泛应用,图书馆管理系统逐步成为现代化的标志。图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。准备建立一个图书馆管理系统,使图书管理工作规范化、系统化、程序化,提高信息处理的速度和准确性,能够及时准备,有效的查询和修改图书的情况。 图书馆管理系统的主要功能是实现图书馆图书借阅和归还的管理的自动化,图书新增及销毁的及时化,用户及图书信息的更新。围绕这一主要功能,本系统涉及到以下核心功能:借阅管理、归还管理、图书管理、读者管理、用户管理。除了这些核心功能外,还包括一些基本和辅助功能,它们是:系统查询、系统设置。 管理系统,方便实现图书查询、借阅管理等功能,提高工作效率和工作质量,有利于对整个业务发展趋势进行分析,具有重要的开发价值和应用意义。 2.2 解决方案 系统采用B/S模式、面向对象的设计方法,用Java技术,以关系型数据库MySql 作为后台数据库,MyEclipse 8.5作为开发环境下应用SSH框架进行开发设计[1]。考虑到浏览器端、服务器端对数据库的操作,决定利用Hibernate持久化框架来操纵数据库。 2.3 可行性分析 可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程[2],所以进行可执行性的分析是非常必要的,也是十分重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分析。 1.技术可行性 技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。 Java语言[3]是一个支持网络计算的面向对象程序设计语言,现在Java平台已经嵌入了几乎所有的操作系统,这样Java程序可以只编译一次,就可以在各种

相关主题
文本预览
相关文档 最新文档