iterator>用于将List、Map、ArrayList等集合进行循环遍历;
5).判断if>
if>用于在页面中判断指定数据
2、请结合struts2简述mvc的框架的应用。
答:
struts是MVC的具体实现。
MVC的三个部分(M模型;V视图;C控制器);
模型:
Struts2提供action的execute方法来让程序员可以调用自定义的任何模型。
模型组件已经超出了MVC框架覆盖的范围。
对于Struts2而言,通常没有为模型组件提供太多的帮助。
视图:
Struts2只能用jsp作为视图技术,struts2允许使用其他的模板技术,并通过选择主题来展现不同视图。
核心控制器:
是struts2的核心控制器,作为一个filter运行在web中,负责拦截所有的用户请求,过滤用户请求,如果请求以.action结尾该请求转入struts2处理
3、请写出struts2默认配置文件struts.xml至少五个标签,并说出它的作用。
1)package:
该标签使用包机制来解决同名action的兼容问题,该标签支持多继承;
2)action:
该标签用于配置action映射,以确定如何处理客户端请求。
3)标签该标签用来标识包范围内的全局结果集,即用于共享结果集。
4)标签通过该标签可以向Struts2框架中注册拦截器或者拦截器栈,一般多用于自定义拦截器或拦截器栈的注册
5)标签该标签用于配置全局(包范围)的异常视图映射。
它只有一个子元素:
,通常需要两个搭配使用。
6)param标签主要用于为其他标签提供参数
4、请写出struts2国际化中文资源文件名。
其中在struts2配置文件里:
resource_zh_CN.properties
5、hibernate对象有多少种状态?
分别是什么?
三种:
瞬时态游离态持久态
6、org.hibernate.Session.load(ClasstheClass,Serializableid)和org.hibernate.Session.get(ClasstheClass,Serializableid)区别是什么?
即时加载:
不管是否使用,马上加载(从数据库取出放入内存)
优点:
响应速度快,效率高
缺点:
占用资源多
延迟加载:
代码执行后并不马上执行sql语句从数据库获取数据,而是在使用对象时才加载。
注意:
如果使用延迟加载,session要一直处于open状态,否则报异常;
优点:
占用资源少
缺点:
响应速度慢
7、在班上一个教师可以同时多个学生授课,一个学生同时只能听一个教师授课。
(教师对象里有属性:
teacherId、teacherName学生对象里有属性studentId、studentName都是字符串型)
1)教师和学生之间的关系是什么?
One-to-many
2)请写出实体类.
学生
privateIntegerstudentId;
privateStringstudentName;
privateTeacherteacher;
publicIntegergetStudentId(){
returnstudentId;}
publicvoidsetStudentId(integerstudentId){
this.studentId=studentId;}
老师
privateintegerteacherId;
privateStringteacherName;
privateSetstudents=newHashSet(0);
请写出它们之间双向hibernate.hbm映射.
学生姓名
老师编号
老师xml
老师编号
老师编号
4)请写出教师名称是"张三"授课的所有学生的HQL。
fromStudentwhereStudetn.teacher.teacherName=”张三”
5)请写出学生名称是"李四"所授课的教师HQL。
8、什么是springIOC?
请举例说明。
答:
IOC就是Spring的核心,就是由Spring来控制对象的生命周期和对象的关系。
举例:
有点像通过婚介找女朋友。
婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告诉它我想找个什么样的女朋友,然后婚介就会按照我们的要求,提供一个mm,我们只需要去和她谈恋爱、结婚就行了。
简单明了,如果婚介给我们的人选不符合要求,我们就会抛出异常。
整个过程不再由我自己控制,而是有婚介这样一个类似容器的机构来控制。
所有的类的创建、销毁都由spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。
对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
什么springAOP?
请举例说明。
答:
AOP面向切面编程是对OOP的补充,OOP关键的东西是对象,对象封装了自己的属性和操作,AOP关键的东西是切面,解决的是OOP对象间相互作用的问题。
举例:
如果说OOP是在程序纵向流动中的应用,那么AOP关注的是程序的横切面。
9、HIbernate的工作原理是什么?
1)、通过Configuration().configure()读取并解析hibernate.cfg.xml配置文件;
2)、由hibernate.cfg.xml中的读取解析映射关系;
3)、通过config.buildSessionFactory()创建sessionFactory
4)、sessionFactory.openSession()打开Session
5)、session.beginTransaction创建事物Transaction
6)、persistentoperate持久化操作
7)、session.getTransaction().commit()提交事物
8)、关闭session和sessionFactory
11、update()和saveorupdate()的区别
update()更新,没有主键会报错
saverOrUpdate()保存或者更新,没有主键就执行插入。
12、如何加入Spring到web框架中?
在web.xml中加入如下同容,在启动web服务器时加载
/WEB-INF/applicationContext.xml中的内容。
context
org.springframework.web.context.ContextLoaderServlet
通过如下类得到ApplicationContext实例
WebApplicationContextUtils.getWebApplicationContext
13、Spring中ApplicationContext的作用是什么?
beanFactory
国际化(getMesage)
资源管理:
可以直接读取一个文件的内容(getResource)
加入web框架中(加入一个servlet或监听器)
事件处理
14、Spring的Bean有多种作用域?
singleton、prototype、request、session、globalsession、application、自定义
16.Hibernate有几种查询方式?
1)、Session的get()和load()查询;
2)、HQL查询;
3)、Query查询;
4)、Criteria查询;
5)、本地SQL语句查询(NativeSQl)。
17.Hibernate的优点和缺点?
⑴Hibernate的优点:
1).Hibernate使用Java反射机制,而不是字节码增强程序来实现透明性;
2).Hibernate的性能非常好,因为它是一个轻量级框架。
映射的灵活性很出色;
3).它支持多种关系数据库,从一对一到多对多的各种复杂关系;
(2)Hibernate的缺点:
它限制您所使用的对象模型,如一个持久性类不能映射到多个表,其独有的界面和可怜的市场份额也让人不安。
18.Hibernate简介?
Hibernate是一个开源的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用面向对象编程思想来操纵数据库。
19.Hibernate工作原理?
及为什么要用?
Hibernate是一个JDO工具。
它的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和Hibernate
提供的一些基本类,就可以达到使用数据库的目的。
1)对JDBC操作提供封装,方便操作简化数据库访问的代码,使用面向对象的方式操作DAO;
2)简化DAO层的代码量ORM从关系型DB到面向对象(java)的转变;
3)在java代码中充斥着大量的sql语句不便于维护,但是ORM映射可以减少此类代码,便于维护;
Hibernate中的对象状态有3种,分别为:
•未被持久化的值对象(ValueObject,VO);
•已经被持久化的持久化对象(PersistentObject,PO);
•曾经被持久化过,但现在已经和Session分离,以VO的身份在运行。
Hibernate自身提供了3种管理Session对象生命周期的方式:
(1)Session对象的生命周期与本地线程绑定。
(2)Session对象的生命周期与JTA事务绑定。
(3)Hibernate委托程序管理Session对象的生命周期。
struts的工作原理
1、初始化,读取struts-config.xml、web.xml等配置文件(所有配置文件的初始化)
2、发送HTTP请求,客户端发送以.do结尾的请求
3、填充FormBean(实例化、复位、填充数据、校验、保存)
4、将请求转发到Action(调用Action的execute()方法)
5、处理业务(可以调用后台类,返回ActionForward对象)
6、返回目标响应对象(从Action返回到ActionServlet)
7、转换Http请求到目标响应对象(查找响应,根据返回的Forwardkeyword)
8、Http响应,返回到Jsp页面
用自己的话简要阐述struts2的执行流程。
Struts2框架本身大致可以分为3个部分:
核心控制器FilterDispatcher、业务控制器Action和用户实现的企业业务逻辑组件。
核心控制器FilterDispatcher是Struts2框架的基础,包含了框架内部的控制流程和处理机制。
业务控制器Action和业务逻辑组件是需要用户来自己实现的。
用户在开发Action和业务逻辑组件的同时,还需要编写相关的配置文件,供核心控制器FilterDispatcher来使用。
1、Struts2的工作流程相对于Struts1要简单,与WebWork框架基本相同,所以说Struts2是WebWork的升级版本。
基本简要流程如下:
1、客户端浏览器发出HTTP请求。
2、根据web.xml配置,该请求被FilterDispatcher接收。
3、根据struts.xml配置,找到需要调用的Action类和方法,并通过IoC方式,将值注入给Aciton。
4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。
5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面。
6、返回HTTP响应到客户端浏览器。
2.struts2的web里需要配置什么?
--配置Struts2核心Filter的名字-->
struts2
--配置Struts2核心Filter的实现类-->
org.apache.struts2.dispatcher.FilterDispatcher
--配置Filter拦截的URL-->
--配置Struts2的核心FilterDispatcher拦截所有用户请求-->
struts2
/*
2.struts2的web里需要配置什么?
--配置Struts2核心Filter的名字-->
struts2
--配置Struts2核心Filter的实现类-->
org.apache.struts2.dispatcher.FilterDispatcher
--配置Filter拦截的URL-->
--配置Struts2的核心FilterDispatcher拦截所有用户请求-->
struts2
/*