admin 管理员组

文章数量: 1184232


2024年4月24日发(作者:java教程视频教学)

J2EE简答题

1、简述J2EE的四层模型..

运行在客户端机器上的客户层组件;运行在J2EE服务器上的Web层组件;运行在J2EE服务器上的业务

逻辑层组件;运行在EIS服务器上的企业信息系统层软件

2、什么是对象持久化

即把数据如内存中的对象保存到可永久保存的存储设备中如磁盘..持久化的主要应用是将内存中的数据

存储在关系型的数据库中;当然也可以存储在磁盘文件中、XML数据文件中等等..

3、简述一下ORMAPPING;为什么我们使用它

ORMObject Relational Mapping是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术..

简单说:ORM是通过使用描述对象和数据库之间映射的元数据;将Java程序中的对象自动持久化到关

系数据中..本质上就是将数据从一种形式转换到另外一种形式..

原因:用它来架起对象和关系型数据库的桥梁;可解决对象层次的映射、对象关系的映射以及对象的持

久化问题..

4、简述一下如何使用Hibernate实现对象持久化的过程可画图或用伪码

描述

STEP 1:创建Configuration对象..在这一步中主要为了进行配置文件的装载操作;读取所有的配置文件并

进行解析、

STEP 2: 创建SessionFactory对象..通过创建好的Configuration对象可以创建一个sessionFactory对象的

实例;同时是生成Session对象实例的工厂;他在整个应用中应该是;唯一的..

STEP 3:创建Session对象.. Session对象类似于数据库的连接对象;可以理解为与数据库建立的一个连接;

但是他的功能要比JDBC中的Connection对象丰富很多..

STEP 4:开始一个事务..在Java中定义一个事务操作的开始;这是使用Hibernate进行持久化操作必不可少

的步骤

STEP 5:进行持久化操作..在这个步骤中可以读取或者保存Java对象..

STEP 6:结束事务..在操作完成之后还要进行显式的结束事务的操作..

STEP 7:关闭Session..类似于释放数据库的连接..

5、为什么要实现序列化

1、序列化以某种存储形式使自定义对象持久化

2、序列化将对象转换为可传输方式从一个地方传递到另一个地方

3、序列化使程序更具维护性

6、比较一下sessionFactory中的opensession和getcurrentsession方法

1、getCurrentSession创建的session会和绑定到当前线程;而openSession不会..

2 、getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭;而openSession必须手动关闭

7、比较一下session中的load和get方法;以及如何保证每次都是从数据

库读取而不是在缓存中读

load和get方法均可以根据指定的实体类和id从数据库读取记录;并返回与之对应的实体对象..

其区别在于:如果未能发现符合条件的记录;get方法返回null;而load方法会抛出一个

ObjectNotFoundException..

Load方法可返回实体的代理类实例;而get方法永远直接返回实体类..

load方法可以充分利用内部缓存和二级缓存中的现有数据;而get方法则仅仅在内部缓存中进行数据查

找;如没有发现对应数据;将越过二级缓存;直接调用SQL完成数据读取..

8、Action接受用户参数输入;主要有哪几种方式 我们常用的是哪一种

属性接收参数;2.Domain modal域模型接收参数; driven接收参数..常用第一种跟第

二种

9、在struts中实现一个action有哪几种方式 最常用的是哪种

1.定义一个普通的类;类中只要有一个public String execute方法且返回一个字符串即可..

2.定义一个类;实现Action接口;这个包的

3继承Support这个类..

最常用的是第三种

10、在中Result的type常用的有四种类型

1dispatcher 2redirect 3chain 4redirectAction

哪些是服务器跳转 哪些是客户端跳转

dispatcher和chain是服务器端跳转;所以客户端只发起一次请求

redirect和redirectAction是客户端跳转;所以客户端发起两次请求..

11、j2ee是技术还是平台还是框架 它主要包含哪些技术;列举并简单描述

2到3个技术

J2EE本身是一个标准;一个为企业分布式应用的开发提供的标准平台..J2EE也是一个框架;包括JDBC、

JNDI、RMI、JMS、EJB、JTA等技术..JDBC:是一种用于执行SQL语句的Java API;可以为多种关系数

据库提供统一访问;它由一组用Java语言编写的类和接口组成..

RMI:RMI协议调用远程对象上的方法..它使用了序列化方式在客户端和服务器端传递数据..RMI是一种

被EJB使用的更底层的协议..

12、MVC的各个部分都有哪些技术来实现 如何实现

MVC是Model-View-Controller的简写.."Model" 代表的是应用的业务逻辑通过JavaBean;EJB组件实

现; "View" 是应用的表示面由JSP页面产生;"Controller" 是提供应用的处理过程控制一般是一个Servlet;

通过这种设计模型把应用逻辑;处理过程和显示逻辑分成不同的组件实现..这些组件可以进行交互和重

用..

13、什么是JNDI

JNDI是SUN公司提供的一种标准的Java命名系统接口;JNDI提供统一的客户端API;通过不同的访问

提供者接口JNDI SPI的实现;由管理者将JNDI API映射为特定的命名服务和目录系统;使得Java应用程

序可以和这些命名服务和目录服务之间进行交互..

14、举例并简单描述2到3种动态网页开发技术..

1、PHP;是英文超文本预处理语言Hypertext Preprocessor的缩写..PHP 是一种 HTML 内嵌式的语言;是一

种在服务器端执行的嵌入HTML文档的脚本语言;语言的风格有类似于C语言;被广泛地运用..

2、ASP;它是微软公司开发的代替CGI脚本程序的一种应用;它可以与数据库和其它程序进行交互;是一

种简单、方便的编程工具..ASP的网页文件的格式是.asp;现在常用于各种动态网站中..

1.浏览器会将请求打包成http请求数据包;发送给web服务器;

2.web服务器中的servlet引擎解析请求并封装为一个HttpServletRequest对象包含了请求数据;同时创

建个HttpServletResponse对象..

3.servlet调用servlet的service方法;并将HttpServletReque;HttpServletResponse对象作为参数传递给

servlet实例

4. servlet可以从HttpServletRequest对象中获得请求数据;并处理;当然;servlet也可能要访问数据库..然

后将处理之后的结果放到HttpServletResponse中..

5.servlet引擎从HttpServletResponse中取数据;并将数据打包成http数据包发送给浏览器..

16、开发servlet服务器程序三种方法..

开发servlet有三种方法:a;实现servlet接口; b;继承GenericServet; c;继承HttpServlet

17、通过httpservlet去开发servlet;需要重写doGet和doPost方法..这是

常用的方式;请简述Get与Post方法的区别..

1get是从服务器上获取数据;post是向服务器传送数据..

在客户端;Get方式在通过URL提交数据;数据在URL中可以看到;POST方式;数据放置在HTML

HEADER内提交..

2对于get方式;服务器端用tring获取变量的值;对于post方式;服

务器端用获取提交的数据..

3GET方式提交的数据最多只能有1024字节;而POST则没有此限制..

4安全性问题..使用 Get 的时候;参数会显示在地址栏上;而 Post 不会..所以;还是

使用 post为好..

18、简述http返回包中的状态码200;302;404;500的意义..

200 请求已成功;请求所希望的响应头或数据体将随此响应返回..

302 请求的资源现在临时从不同的URI响应请求..

404 请求失败;请求所希望得到的资源未被在伺服器上发现..

500 伺服器遇到了一个未曾预料的状况;导致了它无法完成对请求的处理.

19、简述请求重定向direct和请求转发

getRequestDispatcher forward的区别..

1、forward只能将请求转发给同一个Web应用中的组件;而sendRedirect方法不仅可以重定向到当前应

用程序中的其他资源;还可以重定向到其他站点的资源..

2、sendRedirect方法重定向的访问过程结束后;浏览器地址栏中显示的URL会发生改变;由初始的URL

地址变成重定向的目标URL;而调用forward方法的请求转发过程结束后;浏览器地址栏保持初始的

URL地址不变..

3、forward方法的调用者与被调用者之间共享相同的request对象和response对象;而sendRedirect方

法调用者和被调用者使用各自的request对象和response对象;它们属于两个独立的请求和响应过程..

20、Hibernate拒绝连接、服务器崩溃的原因 最少写三个

1. db没有打开

2. 网络连接可能出了问题

3. 连接配置错了

4. 驱动的driver;url是否都写对了

5. LIB下加入相应驱动;数据连接代码是否有误

6. 数据库配置可能有问题

7. 当前联接太多了;服务器都有访问人数限制的

8. 服务器的相应端口没有开;即它不提供相应的服务

9 hibernate有哪些缓存;分别怎么使用

10 你对hibernate的了解到了一个什么样的程度

11 写出一个sql语句体现hibernate中一对多的关系

21、Update和saveOrUpdate的区别

update方法操作的对象必须是持久化了的对象..也就是说;如果此对象在数据库中不存在的话;就不能使

用update方法..

saveOrUpdate方法操作的对象既可以使持久化了的;也可以使没有持久化的对象..如果是持久化了的对象

调用saveOrUpdate则会

更新数据库中的对象;如果是未持久化的对象使用此方法;则save到数据库中..

22、Hibernate的三种状态之间如何转换

当对象由瞬时状态Transient一save时;就变成了持久化状态..当我们在Session里存储对象的时候;实际

是在Session的Map里存了一份;也就是它的缓存里放了一份;然后;又到数据库里存了一份;在缓存里这

一份叫持久对象Persistent..Session 一 Close了;它的缓存也都关闭了;整个Session也就失效了;这个时候;

这个对象变成了游离状态Detached;但数据库中还是存在的..当游离状态Detachedupdate时;又变为了持

久状态Persistent..当持久状态Persistentdelete时;又变为了瞬时状态Transient;此时;数据库中没有与之对

应的记录..

23、工厂模式

工厂模式主要是为创建对象提供了接口..工厂模式按照Java与模式中的提法分为三类:

1. 简单工厂模式Simple Factory 2. 工厂方法模式Factory Method 3. 抽象工厂模式Abstract Factory

这三种模式从上到下逐步抽象;并且更具一般性..还有一种分类法;就是将简单工厂模式看为工厂方法模

式的一种特例;两个归为一类..下面是使用工厂模式的两种情况:

1.在编码时不能预见需要创建哪种类的实例..2.系统不应依赖于产品类实例如何被创建、组合和表达的

细节

24、抽象类和接口的区别

接口是公开的;里面不能有私有的方法或变量;是用于让别人使用的;而抽象类是可以有私有方

法或私有变量的; 另外;实现接口的一定要实现接口里定义的所有方法;而实现抽象类可以有选择地

重写需要用到的方法;一般的应用里;最顶级的是接口;然后是抽象类实现接口;最后才到具体类实现..

还有;接口可以实现多重继承;而一个类只能继承一个超类;但可以通过继承多个接口实现多重继承;

接口还有标识里面没有任何方法;如Remote接口和数据共享里面的变量全是常量的作用.

25、Forward和redirect的区别

forward是服务器请求资源;服务器直接访问目标地址的URL;把那个URL的响应内容读取过来;然

后把这些内容再发给浏览器;浏览器根本不知道服务器发送的内容是从哪儿来的;所以它的地址栏中

还是原来的地址..

redirect就是服务端根据逻辑;发送一个状态码;告诉浏览器重新去请求那个地址;一般来说浏览器会

用刚才请求的所有参数重新请求;所以session;request参数都可以获取..

26、持久化对象的三种状态;代表含义

瞬时态:简单的说就是你在程序里面new一个对象;还没有和session关联

持久态:对象和session有了关联;对象处于hibernate框架管理中

游离态:在持久态的情况下;对象和session失去了关联;比如或 后;即

游离态;但数据已经存储到了数据库

27、页面之间的值传递

1:可以分成多个参数对的方式用querystring传递..

2:可以用特定的字符分隔后组成一个字符串;再用一个参数对的querystring方式传递..

3:如果是第三信息的话;可以用在服务器端的session方式传递;一般不用这种方式..因为占服务器

资源..

4:也可以用cookie方式传递..

5:当然还可以用其它的不常的方式传递..

28、Struts框架的数据验证可分为几种类型

表单验证由ActionForm Bean处理:如果用户没有在表单中输入姓名;就提交表单;将生成表单验证

错误

业务逻辑验证由Action处理:如果用户在表单中输入的姓名为“Monster”;按照本应用的业务规则;

不允许向“Monster”打招呼;因此将生成业务逻辑错误..

29、写一个Singleton模式的例子

public class Singleton

{

private static final Singleton singleton = new Singleton;

private Singleton

{

}

public static Singleton getInstance

{

return singleton;

}

}

30、谈谈你MVC的理解

MVC是一种设计模式;它强制的将应用程序的输入、处理、和输出分开.. 使用了MVC的应用

程序被分为3个核心部件:试图View、模型Model、控制器Controller..它们各司其职;既分工明确

又相互合作.. 首先视图接受用户输入请求;然后将请求传递给控制器;控制器再调用某个模型来处理

用户的请求;在控制器的控制下;再将处理后的结果交给某个视图进行格式化输出给用户.这是经典

的MVC设计执行的基本流程..MVC不仅实现了功能模块和显示模块的分离;同时它还提高了系统

的可维护性、可扩展性和组件的可复用性;是一个优秀的创建软件的途径.. J2EE把MVC引入了

web领域;并在此基础上架构出了一套称为Model2的体系..Model2体系及jsp作为视图显示输出

和接受用户输入数据;Servlet作为控制器处理用户请求并根据用户请求选择相应的jsp返回给用

户;javaBean作为模型组件用作业务逻辑处理、管理数据的存储和一致性..

31、项目中为什么使用SSH

1. 使用Struts是因为struts是基于MVC模式的;很好的将应用程序进行了分层;使开发者更关注于业务

逻辑的实现;第二;struts有着丰富的taglib;如能灵活运用;则能大大提高开发效率..


本文标签: 对象 请求 数据