SSH综合试卷

SSH综合试卷
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.360docs.net/doc/366809911.html, = name;

}

}

B.public class HelloAction {

private User user ;

public void setUser(User user){

https://www.360docs.net/doc/366809911.html,er = user;

}

}

public class User {

private String name;

public void setName(String name){

https://www.360docs.net/doc/366809911.html, = name;

}

}

C.public class HelloAction implements ModelDriven{

private User user ;

public User getModel(){

return https://www.360docs.net/doc/366809911.html,er;

}

}

public class User {

private String name;

public void setName(String name){

https://www.360docs.net/doc/366809911.html, = name;

}

}

D.public class HelloAction implements ModelDriven{

private User user = new User() ;

public User getModel(){

return https://www.360docs.net/doc/366809911.html,er;

}

}

public class User {

private String name;

public void setName(String name){

https://www.360docs.net/doc/366809911.html, = name;

}

}

7.关于自定义类型转换器下面说法不正确的是?(选2项)

A.向Action封装请求参数,是由ParametersInterceptor完成的

B.进行封装参数时,必须要自定义类型转换器

C.自定义类型转换器,如果继承DefaultTypeConverter , 覆盖convertValue方法时,只需要实

现String向目标类型的转换

D.自定义类型转换器后需要注册,可以在Action所在路径编写

Action类名-conversion.properties ,配置Action中属性名= 类型转换器

E.自定义类型转换器也可以全局注册,在src下创建xwork-conversion.properties ,配置

目标类型= 转换器

F. 如果类型转换出错后,会跳转到INPUT对应视图,可以通过 显示错误信息

8.如果需要对Action封装请求参数,进行校验下面哪些说法正确

A.可以在Action中添加validate方法完成校验,Action可以是POJO类

B.可以在Action所在包编写Action类名-validation.xml 对Action中所有业务方法进行校验

C.如果要对Action中某个指定的业务方法进行校验,可以在Action所在包,编写

Action类名-方法名-validation.xml

D.在Action中手工校验失败后,通过addFieldError设置错误信息,但Action中是无法读取国际

化文件的

9.下面关于Struts2 中Action 中设置信息说法不正确的是

A.在开发中Action 将一个文本信息传递给JSP 显示,通常可以使用addActionError、

addActionMessage 、addFieldError 三个方法,此时Action可以不继承ActionSupport

B.addFieldError 主要存放字段错误信息,页面通过 显示

C.addActionError 主要存放Action错误信息页面通过显示

D.addActionMessage 可以存放Action普通信息,页面通过 显示

10.关于struts2 国际化信息文件下面哪些说法是正确的?(选2项)

A.国际化信息文件,必须放到src根目录,不能放到package中,放到src根目录中国际化信息

文件不需要配置,就可以在所有Action中使用

B.可以在Action所在包,编写Action类名.properties ,无需配置就可对当前Action 生效

C.可以在Action 所在包,创建package.properties ,无需配置就可对当前包所有Action生效

D.国际化信息文件在任何package中,都可以通过在struts2.xml 对国际化信息文件进行配置

struts.custom.i18n.resources ,使其对所有Action 生效

11.关于struts2 拦截器说法不正确的是

A.Struts2内部使用了很多内置拦截器,用于在Action执行前后加入某些操作

B.访问每个Action 必须执行defaultStack 中所有拦截器

C.如果在元素中指定 那么默认defaultStack 就不会得到执行

D.自定义拦截器可以实现很多功能,比如权限控制,性能监控

E.Struts2 中拦截器实现责任链模式

12.关于值栈ValueStack 下面哪些说法不正确

A.ValueStack值栈对象的生命周期就是request生命周期,request对象销毁后值栈数据将不

存在

B.获得值栈对象引用可以通过两种方法

第一种ServletActionContext.getRequest().getAttribute("struts.valueStack");

第二种ActionContext.getContext().getValueStack();

C.值栈中包含两个部分,一个CompoundRoot 和一个OgnlContext , CompoundRoot是一个

ArrayList 结构,OgnlContext 是一个Map 结构

D.OgnlContext 对内置了很多常用web对象引用,通过parameters 、request、session、

application、attr,可以直接获取Servlet 对象

E.每次请求Action ,Action对象本身都会被push到值栈的root 中

13.下面关于向值栈存放数据说法不正确的是?

A.在Action建立成员变量,并提供get方法,该数据就会随Action 会被自动压入值栈root

B.可以通过调用valueStack 提供push 方法将一个对象压入值栈的root中

C.可以调用valueStack的set (key,Object) 方法将一个对象,存入值栈OgnlContext Map中

D.可以调用valueStack.getCompoundRoot().add(object) 方法,将数据存入值栈root中

E.可以调用valueStack.getOgnlContext().put(key,object) 方法将数据存入值栈OgnlContext

Map中

14.如果Action 如下定义

public class HelloAction {

private String name =”itcast”;

public String getName(){

return https://www.360docs.net/doc/366809911.html,;

}

}

在页面要取得name的值,下面哪些写法是不正确的?

A.

B.

C.

D.

E.${name}

15.阅读下面代码

public class UserAction {

private List users;

public List getUsers(){

return https://www.360docs.net/doc/366809911.html,ers;

}

public String execute(){

users = …. 从数据库查询出所有用户

}

}

public class User {

private String name;

private String city ;

// 提供getter方法

}

要在结果JSP中对users数据进行遍历显示,下面哪些写法不正确

A.

B.

C.

D.

16.下面关于Hibernate框架说法不正确的是?

A.Hibernate是一个完全ORM框架,封装了底层数据库操作,不支持SQL语句

B.Hibernate实现了JPA接口规范

C.Hibernate通过操作对象方式,间接操作数据库

D.Hibernate实体类和数据表之间需要hbm映射配置、或者注解映射配置

17.一般情况下,关系数据模型与对象模型之间有哪些匹配关系,说法不正确的是?

A.表对应类

B.记录对应对象

C.表的字段对应类的属性

D.数据库对应Session

18.以下关于SessionFactory的说法哪些正确?

A.对于每个数据库事务,应该创建一个SessionFactory对象

B.一个SessionFactory对象对应多个数据库存储源

C.SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只

需要创建一个

D.SessionFactory的load()方法用于加载持久化对象

19.元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么

值?(单选)

A.none

B.save

C.delete

D.save-update

20.以下哪些不属于Session的方法?

A.load()

B.save()

C.delete()

D.update()

E.open()

F.close()

21.以下程序的打印结果是什么?(单选)

1.tx = session.beginTransaction();

2.Customer c1=(Customer)session.load(Customer.class,new Long(1));

3.Customer c2=(Customer)session.load(Customer.class,new Long(1));

4.System.out.println(c1==c2);

https://www.360docs.net/doc/366809911.html,mit();

6.session.close();

A.运行出错,抛出异常

B.打印false

C.打印true

22.以下程序代码对Customer的name属性修改了两次

1.tx = session.beginTransaction();

2.Customer customer=(Customer)session.load(Customer.class,

3.new Long(1));

4.customer.setName(\"Jack\");

5.customer.setName(\"Mike\");

https://www.360docs.net/doc/366809911.html,mit();

A.0

B.1

C.2

D.3

23.在持久化层,对象分为哪些状态,不正确的是?

A.临时状态

B.独立状态

C.游离状态

D.持久化状态

24.对于以下程序,Customer对象在第几行变为持久化状态?

1.Customer customer=new Customer(); //line1

2.customer.setName(\"Tom\"); //line2

3.Session session1=sessionFactory.openSession(); //line3

4.Transaction tx1 = session1.beginTransaction(); //line4

5.session1.save(customer); //line4

https://www.360docs.net/doc/366809911.html,mit(); //line5

7.session1.close(); //line6

A.line1

B.line2

C.line3

D.line4

E.line5

F.line6

25.对于以下程序,Customer对象在第几行变为游离状态?

1.Customer customer=new Customer(); //line1

2.customer.setName(\"Tom\"); //line2

3.Session session1=sessionFactory.openSession(); //line3

4.Transaction tx1 = session1.beginTransaction(); //line4

5.session1.save(customer); //line4

https://www.360docs.net/doc/366809911.html,mit(); //line5

7.session1.close(); //line6

A.line1

B.line2

C.line3

D.line4

E.line5

F.line6

26.假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况

1.Session session=sessionFactory.openSession();

2.tx = session.beginTransaction();

3.Customer customer=(Customer)session.get(Customer.class,new Long(1));

https://www.360docs.net/doc/366809911.html,mit();

5.session.close();

6.Iterator orderIterator=customer.getOrders().iterator();

A.编译出错

B.编译通过,并正常运行

C.编译通过,但运行时抛出异常

D.以上说法都不对

27.下面关于hibernate核心接口说明错误的是?

A.Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象;

B.SessionFactory 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个

线程共享同一个session,是轻量级、一级缓存

C.Query 和Criteria 接口:执行数据库的查询。

D.Transaction 接口:管理事务

28.关于HQL与SQL,以下哪些说法正确?

A.HQL与SQL没什么差别

B.HQL面向对象或直接操作数据库,而SQL操纵关系数据库

C.在HQL与SQL中,都包含select,insert,update,delete语句

D.HQL仅用于查询数据,不支持insert,update和delete语句

29.事务隔离级别是由谁实现的?

A.Java应用程序

B.Hibernate

C.数据库系统

D.JDBC驱动程序

30.悲观锁与乐观锁,下列说法不正确的是?

A.悲观锁具有更好的并发性能

B.乐观锁具有更好的并发性能

C.悲观锁是使用数据库内部锁机制实现的

D.乐观锁是通过在数据表中插入一个版本号字段,但是需要通过程序维护

31.下面关于“依赖注入”的说法,错误的是?

A.IoC就是指程序之间的关系由程序代码直接操控。

B.所谓“控制反转”,是指控制权由应用代码转到外部容器,控制权的转移,

C.IoC将控制创建的职责搬进了框架中;并把它从应用代码脱离开来

D.当使用Spring的IoC容器时只需指出组件需要的对象,在运行时Spring的IoC容器会根据XML

配置数据提供给它。

32.关于Spring的说法错误的是?

A.通过setter方法可以实现依赖注入

B.对Hibernate提供了支持,可简化Hibernate编码

C.通过AOP可以轻松与Hibernate集成

D.通过AOP实现了声明式事务管理

33.关于Spring AOP,下面说法错误的是?

A.支持前置通知、后置通知、环绕通知

B.采用代理的方式实现

C.在Spring2.0以前的版本中通过配置

D.与“依赖注入”实现紧密结合

34.下面哪个不是依赖注入的方式

A.构造器参数注入

B.Setter方法注入

C.反射注入

D.接口注入

35.Spring3.0通过注解实现对象之间的注入,下面与注入无关注解是?

A.@Component

B.@Value

C.@Autowired

D.@Resource

36.下列哪个不是Spring事务管理相关接口?

A.PlatformTransactionManager

B.BeanFactory

C.TransactionDefinition

D.TransactionStatus

37.下面关于AOP描述不正确的是?

A.Spring对对象进行代理时,如果对象有接口,必须使用JDK Proxy针对接口生成代理

B.Spring对对象进行代理时,如果对象没有接口,将使用Cglib对目标生成代理

C.AOP的实现是结合SpringIoC 机制的,在Spring提供对象时,可以提供代理对象

D.AOP是基于代理对目标进行增强

38.下列关于jdbcTemplate说法错误的是?

A.Spring的jdbcTemplate简化Jdbc操作,不管连接(Connection),不管事务、不管异常、不管

关闭

B.JdbcTemplate 提供update方法用于增删改操作

C.如果对jdbcTemplate进行事务管理,应该使用DataSourceTransactionManager

D.JdbcTemplate开发时必须自定义RowMapper对象完成表中记录到对象的封装

39.下列关于Bean的作用域说法不正确的是?

A.Bean的默认作用域是singleton,也就是单例对象,在spring BeanFactory创建时,就会创

建单例的对象

B.如果设置Bean的作用域为prototype,则每次getBean时会返回一个新的Bean对象实例

C.设置Bean的作用域为request,会在创建Bean后,保存到request范围

D.设置Bean的作用域为session,会在创建Bean后,保存到session范围

40.关于Struts+Spring+Hibernate集成框架,下列说法正确的是?

A.使用SSH框架开发项目,由于增加了大量配置工作,从而会降低开发的效率

B.三个框架可以用多种方式进行集成

C.使用SSH框架开发不利于实现复杂的业务逻辑

D.使用SSH框架开发不利于构造复杂的页面和交互流程低

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的说法错误的是()。

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.360docs.net/doc/366809911.html,ername,https://www.360docs.net/doc/366809911.html,erid from https://www.360docs.net/doc/366809911.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框架搭建实例教程,课程设计

. SSH的理解及其应用实践

1.SSH是什么 (3) 2 Spring 介绍理解: (3) 2.1简单介绍 (3) 2.2各种特性 (3) 2.2.1轻量 (3) 2.2.2控制反转 (4) 2.2.3面向切面 (4) 2 .2.4容器 (4) 2.2.5框架 (4) 2.3总结 (4) 3.Hibernate介绍理解: (4) 3.1简单介绍 (4) 3.2核心接口 (5) .3.2.1 Session接口 (5) 3.2.2 .SessionFactory接口 (5) 3.2.3.Configuration接口 (5) 3.2.4.Transaction接口 (5) 3.2.5 Query和Criteria接口 (5) 4. Struts (6) 4.1什么是Struts框架 (6) 4.2 Struts 概览 (6) 4.2.1Client browser(客户浏览器) (6) 4.4 Struts中的Controller(控制器)命令设计模式的实现 (7) 4.5 在Struts框架中控制器组件的三个构成部分 (7) 4.7 Struts中的Model(模型) (8) 5.SSH整合步骤 (8) 5.1安装所需软件环境: (8) 5.1.1、首先安装JDK,配置Java环境变量 (8) 5.1.2安装MyEelipse (8) 5.1.3 数据库 (9) 5.1.4、 (9) 5.2环境配置好了就可以做SSH整合的项目 (9) 6.搭建框架并简单应用 (11) 6.1准备工作 (11) 6.2(建立项目,包结构,导入所需jar文件) (12) 6.3撰写资源文件 (15) 6.4在https://www.360docs.net/doc/366809911.html,m 包下添加下列文件 (19) 6.5添加hibernate DAO 模板 (20) 6.6以上的工作还不够,我们还需要进行WEB方面的配置 (20) 7.测试: (23)

myEclipse8.5整合SSH步骤(基于操作和配置文件)

一、准备工作: myEclipse 整合 SSH 步骤(基于操作和配置文件) 1. JDK -> jdk1.6.0_17 安装(环境变量配置): JAVA_HOME = C:\ jdk1.6.0_17; PATH = %JAVA_HOME%\bin; %JAVA_HOME%\jre\bin; CLA SSPATH = .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar; 在 Cmd -> java –version 查看 JDK 的版本是否与刚配好的版本一致。 2. apache-tomcat-6.0.24:解压即可; 3. myEclipse 8.5:安装(略): 最高可提供: 框架:Java EE 5 Spring 3.0 Hibernate 3.3 Struts 2.1 4. DB :以 MySQL 5.1 为例。 二、打开 myEclipse 先配置好 Tomcat 服务器和 JDK 操作好下图所示: 1. Window -> Preferences -> Java: Installed JREs 在这里可以不使用 myEclipse 自带的 JDK ,得 Add…自己安装好的 JDK : 2. Window -> Preferences -> MyEclipse -> Servers: Tomcat 6.x 在这里配置 Tomcat 服务器,我们这里是选择 6.x 。Browse…自己将 Tomcat 解压放的目 录,再选择 Enable ,将它启用,然后 Apply 应用一下就 Ok 了。

3. Window -> Preferences: Tomcat 6.x -> JDK 选择前面我们配好的JDK 版本。

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);

SSH整合

MyEclipse6.0的SSH整合 Version 1.1 2010-6-20 目录 0.概述 (2) 1.准备环境 (2) 2.创建工程 (10) 3.添加Struts支持 (11) 4.添加Spring支持 (13) 5.配臵数据源 (17) 6.添加Hibernate支持 (28) 7.添加Hibernate反转工程 (35) 8.修改目录结构 (39) 9.测试Spring和Hibernate的整合 (41) 10.整合Struts和Spring (51) 11.测试SSH的整合 (52) 0.概述 MyEclipse 是 Eclipse 的一个优秀插件,用于 Java EE 的开发,提供了诸如数据库管理、文件配臵管理等的一站式服务。然而对

于 SSH 的整合,仅仅使用 MyEclipse 是无法成功实现的。这或许是MyEclipse 的 Bug,因为它自带的部分库文件并不能按照预期进行整合,需要我们手工干预。因此,我们编写这个这个文档,希望对以后的 SSH 整合技术有一定的帮助。 本公司使用 MyEclipse6.0 构建 SSH 项目。对公司开发部开会讨论,开发工具MyEclipse6.0。另外需要指出的是,SSH 的整合有很多方法,这里只介绍其中的一种。作为 Java EE 的开发,我们使用Tomcat5.5 作为 Web 容器,使用 MySQL 作为数据库。 1.准备环境 下面是我们需要使用的软件开发环境: MyEclipse6.0 Tomcat5.5 MySQL5.1 JDK6.0 需要指出的是,各个软件的版本号并不一定需要和上面列出的相同。但是,由于我们编写本教程时的 实验环境是由上述各版本系统搭建的,因此不能确保其它版本的软件是不是能够正常运行。另外由于 MyEclipse 中已经附带了 SSH 所需要的各种库文件,所以我们一般不再需要另外的准备。 对于软件的设臵,我们将 MySQL 数据库编码设臵为 UTF-8。具体方法为: 安装好 MySQL 后,打开 MySQL Server Instance Config Wizard,请根据下面的图示进行设臵: 1) 启动 MySQL 配臵向导界面,点击 Next 继续;

图解SSH框架配置步骤

图解SSH框架配置步骤 核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为 ssh 做好准备 2.1 下载包 Struts2 现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。 1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为ssh做好准备 2.1下载包 Struts2.1.6包下载: https://www.360docs.net/doc/366809911.html,/download.cgi#struts216 Full Distribution: o struts-2.1.6-all.zip (110mb) [PGP] [MD5] Hibernate3.3包下载: https://https://www.360docs.net/doc/366809911.html,/6.html Spring2.5下载: https://www.360docs.net/doc/366809911.html,/download

2.2搭建开发环境 打开MyEclipse,新建一个web project,如图: 注意:J2ee版本设为java ee 5.0

点击Finish完成,建好的工程如图: 如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:

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;

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:修改配置文件

SSH2_增删查改实例

SSH2 增删查改实例 (0)软件和框架版本: MyEclipse 6.0.1 Tomcat 6.0.14 Sturts2 1.8 Hibernate 3 Spring 2.0 Mysql 5.1 (一)引入包(共73个,不一定都需要,但是我的项目是这么多,经过调试,有没包冲突)

(二)创建数据库表 建立数据库octtest,并创建user表,表里面一共4个字段:id,姓,名,年龄。 语句如下: create database octtest; user octtest; DROP TABLE IF EXISTS `users`; CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL, `firstname` varchar(50) NOT NULL, `lastname` varchar(50) NOT NULL, `age` int(10) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; (三)用myeclipse 中自带的hibernate reverse engineering 工具,根据刚才创建的user表,自动生成实体User 和相应的User.hbm.xml配置文件。 1)在myeclipse中的视图中创建连接数据库连接,如下图:

填入mysql数据库相应的路径,用户名,密码等信息。注意:这里要引入mysql-connector-java的jar包,需要从外部导入。 2)连接数据库正常后,选择octtest数据库中的user表,右键-》hibernate reverse engineering。自动生成实体User 和相应的User.hbm.xml配置文件。(正常情况下可以生成,但是笔者生成engineer有问题,所以只能够手动创建User类和相应的User.hbm.xml,,所以如果读者顺利创建,可跳过2a,2b两部) 2a)创建User实体类 User.java package com.bean; public class User { public Integer id; public String firstname; public String lastname; public int age;

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分)

ssh2实例(带截图)

Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过一个实例,详细的为大家讲解如何实现全注解式的开发。 开发环境 JDK1.6.0_18 Eclipse3.2.1 MyEclipse5.1.0 Tomcat6.0.10 MySQL5.0.27 Navicat Lite for MySQL 8.1.20 每个人的开发环境可能会有差异,但有一点我需要说明的是,JDK的版本不得低于1.5,因为用到了很多1.5版才支持的新特性。Tomcat和MySQL请不要低于我所用的版本,因为我没在其它的版本上进行测试。Navicat则是MySQL数据库的图形化操作工具。我在这里假定各位目前已经设置好了开发环境,下面就开始详细的说明。 由于要阐述的内容比较多,大象决定将它们划分成个几章节来讲,这一章就主要来说说jar包的选择。 第一部分:选择必须的jar包 新建一个web项目,然后将必要的jar包COPY到lib里面。根据本文实例demo,大象给出下图中的最少jar包配置。 我对这些jar包进行一下说明,方便大家理解。

解压Struts2.1.6的lib文件夹,从中选出上面7个jar包添加到我们的工程库中。commons-logging、freemarker、ognl、struts2-core、xwork这5个还是struts2的核心包。但在Struts2.1.6这个版本中,还需要加上commons-fileupload包。如果没有,则启动就会报错,不过不需要像网上传言的那样还得加上commons-io的jar包,这些大象都亲自做过测试。在本实例中,我将对struts2也采取注解的方式,所以用到了struts2-convention-plugin-2.1.6.jar这个插件。因为要与spring整合,所以struts2-spring-plugin-2.1.6.jar也必不可少。 大象在这里偷个懒,直接将spring的完整jar包加了进来,如果各位想精简类库的话,就选取它的分类jar包吧。比如本例使用struts2作为MVC框架,所以spring的webmvc就不可能用到了。有想改的朋友请自己动手改下。另外有点我想说下,如果采取完整spring的jar包,还需要Spring2.5.6\lib\concurrent文件夹中的backport-util-concurrent.jar,如果不加这个,spring会报错。但是采取spring分类jar包的形式,这个可以不用加,至于具体使用什么需要依赖这个包,大象还没去测试过,这个有待验证。还有lib\slf4j下的日志包,目前很多都开始采用基于slf4j 接口的日志器,它的好处就是日志器是根据slf4j的接口来进行实现,可以在不改变代码的情况下更换日志器。最后Spring的源代码中使用的是commons-logging记录日志,因此这个包不能少,不过因为struts2也用到了,所以这里就省了。 Hibernate从3.3版开始,对jar包结构做了一次大的调整,我们只需要加入lib\required文件夹下面的6个jar包。请注意这6个jar包都是使用Hibernate所必须的。另外再加上hibernate 核心包。这里我将slf4j-api-1.5.2.jar换成了1.5.0,这是因为slf4j是一个通用日志接口,不提供任何实现,我在demo里面使用的是log4j,而hibernate包里面没有log4j的slf4j实现。而且如果版本不一致,会有异常,因此我就采用Spring2.5.6\lib\slf4j里面提供的配套版本。另外我将commons-collections-3.1.jar换成了Struts2.1.6里面的3.2版。

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三大框架介绍

一.在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框架面试题(自己+别人的试题)

(问答题+选择题(在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集成spring-Struts2整合详细步骤

搭建SSH框架spring与struts2的集成 1:单独配置struts 一:导入struts包 二:编写Action public class JboaEmployeeAction extends ActionSupport { public String login(){ System.out.println("login.............."); return SUCCESS; } }

三:配置struts.xml index.jsp 四:配置web.xml ---struts2的核心控制器 index.jsp

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

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

《SSH框架整合详解》A卷

SSH2整合

Spring+Hibernate+Struts2整合文档 一、Spring+Struts2整合: 1、spring配置在web.xml文件中的上下文监听器: contextConfigLocation /WEB-INF/applicationContext*.xml org.springframwork.web.content.ContextLoaderListener 2、struts2配置在web.xml文件中的过滤器: struts2 org.apache.struts2.dispatcher.FilterDispatcher org.springframework.web.context.ContextLoaderListener struts2 /* 3、设置struts.xml文件,就可以使用spring的IOC来管理struts的Action:

SSH考试题

SSH考试题 一.单项选择题及填空题(每题2分共30分) 1.SSH中,依次处理的哪一层的实现? A.Struts –业务逻辑层;Hibernate-表现层;Spring-持久层 B.Struts-表现层;Hibernate-业务逻辑层;Spring-持久层 C.Struts-持久层;Hibernate-表现层;Spring-业务逻辑层 D.Struts-表现层;Hibernate-持久层;Spring-业务逻辑层 2.对于Struts2中动态方法调用的方式,下列哪项使用不正确? a. b. login2对应action的name,后面的login对应action里的方法名 c. d.login2对应action的方法名,后面的login对应action里的name 3.Struts2中,通过下列哪种方式获取不到servletApi? A.ActionContext b ServletContext c ServletActionContext d。接口ServletContextAware,ServletRequestAware,ServletResponseAware访问Servlet对象 4.和SQL相比,HQL有哪些优点? A.HQL能够简单的操作表b。HQL是简单的sql语言组成c。HQL是面向对象的检索语言D。HQL对应的是表和表的字段 5.一个XML文件能被浏览器解析的最小要求是? A.这个文件是形势良好的 b. 这个文件时结构完整的 c 必须每个标记都是XML标准定义过得 D.扩展名必须是。XML文件 6.以下程序代码对Customer的name属性修改了两次 tx=session.beginTransaction(); Customer customer =(Customer)session.load(Customer.class,new Long(1)); Customer.setName(“Jack”);customer.setName(“Mike”); https://www.360docs.net/doc/366809911.html,mit(); 执行以上程序,Hibernate需要向数据库提交几条update语句? A.0 b 1 c 2 d 3 7.Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用那个元素映射orders属性? A. b. c. d. 8.对于以下程序,Customer对象在第几行变为持久化状态? Customer customer = new Customer();//line1 Customer.setName(“Tom”);//line2

相关文档
最新文档