您的位置 首页 java

Java试题分享211109

1. MVC的各个部分都有那些技术来实现?如何实现?

答案: “Model” 代表的是应用的业务逻辑(通过 JavaBean ,EJB组件实现)

“View” 是应用的表示面(由JSP页面产生)

“Controller” 是提供应用的处理过程控制(一般是一个 servlet

目的:把应用逻辑,处理过程和显示逻辑分成不同的组件实现。

这些组件可以进行交互和重用。

2. J2EE是什么?

答案: (1)J2EE是Sun公司提出的多层(multi-diered), 分布式 (distributed),基于组件(component-base)的企业级应用模型(enterpriese application model)

(2)J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。

(3)J2EE也是一个框架,包括JDBC、JNDI、RMI、 JMS 、EJB、JTA等技术。

3. STRUTS的应用

答案: Struts基于MVC(Model-View-Controller)设计模式的应用构架。

Struts主要功能:

一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。

二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。

三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理 JavaBeans 属性、国际化的提示和消息。

4. 什么是JNDI

答案: (Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

5. 什么是JMS

答案: (Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

6. 什么是JTA

答案: java Transaction API) JAVA 事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

7. GET与POST方法的区别

答案: (1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML header 内提交。

(2)GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。

8. Jsp 中的常用的内置对象

答案: 1. Request对象 :客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。

2. response对象 :response对象包含了响应客户请求的有关信息.

3.session对象: Session 对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

4.out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象page对象page对象就是指向当前JSP页面本身,

5. application对象 : application对象实现了用户间数据的共享,可存放 全局变量 。它开始于服务器的启动,直到服务器的关闭

9、说说在 WEBLOGIC 中开发消息Bean时的persistent与non-persisten的差别

persistent方式的 MDB 可以保证消息传递的可靠性,也就是如果EJB容器出现问题而JMS服务器依然会将消息在此MDB可用的时候发送过来,而non-persistent方式的消息将被丢弃。

10. hibernate 有哪些优势与局限

答案:

优点:(1)对象/关系数据库映射(Basic O/R Mapping)

(2)透明持久化(Persistent)

(3)事务Transaction (org.Hibernate.Transaction)

(4)它没有侵入性,即所谓的轻量级框架。

(5)移植性会很好。

(6)缓存机制。提供一级缓存和二级缓存。

(7)简洁的HQL编程。

缺点:Hibernate在批量数据处理的时候是有弱势。

11. j2ee常用的设计模式?说明 工厂模式

Java中的23种设计模式:

Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式),

Prototype(原始模型模式),Singleton(单例模式), Facade(门面模式),

Adapter(适配器模式), Bridge (桥梁模式), Composite(合成模式),

Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式),

Command(命令模式), Interpreter(解释器模式), Visitor 访问者模式 ),

Iterator (迭代子模式), Mediator(调停者模式), Memento(备忘录模式),

Observer(观察者模式), State(状态模式), Strategy(策略模式),

Template Method (模板方法模式), Chain Of Responsibleity( 责任链模式

工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。

12. 请对以下在J2EE中常用的名词进行解释(或简单描述)

web容器 :给处于其中的应用程序组件(JSP, Servlet )提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统问题。主要有 WEB服务器 来实现。例如: TOMCAT ,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

EJB容器:Enterprise java bean 容器。更具有行业领域特色。他提供给运行在其中的组件EJB各种管理功能。只要满足J2EE规范的EJB放入该容器,马上就会被容器进行高效率的管理。并且可以通过现成的接口来获得系统级别的服务。例如邮件服务、事务管理。

JNDI:( Java Naming & Directory Interface)JAVA命名目录服务。主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能。

JMS:(Java Message Service)JAVA消息服务。主要实现各个应用程序之间的通讯。包括点对点和广播。

JTA:(Java Transaction API)JAVA事务服务。提供各种分布式事务服务。应用程序只需调用其提供的接口即可。

JAF:(Java Action FrameWork)JAVA安全认证框架。提供一些安全控制方面的框架。让开发者通过各种部署和自定义实现自己的个性安全控制策略。

RMI/IIOP:(Remote Method Invocation /internet对象请求中介协议)他们主要用于通过远程调用服务。例如,远程有一台计算机上运行一个程序,它提供 股票 分析服务,我们可以在本地计算机上实现对其直接调用。当然这是要通过一定的规范才能在异构的系统之间进行通信。RMI是JAVA特有的。

13. J2EE是什么?

J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。

14. 解释下面关于J2EE的名词

JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能.

JMS:Java Message Service,JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.

JTA:Java Transaction API,JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.

JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略.

RMI:Remote Method Interface,远程方法调用

15 请简述STRUTS架构

Struts是采用 Java Servlet /JavaServer Pages技术,开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能: 一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。 二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。 三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。

16.在 Spring框架 中,如何解决Web页面乱码问题?

可以采用Spring框架自带的过滤器CharacterEncoding filter ,配置方式如下:

在web.xml文件中filter的位置加上如下内容:

 <filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>  

17.在Struts中,如何实现防止表单的重复提交操作?

Struts的Token(令牌)机制能够很好的解决表单重复提交的问题,基本原理是:服务器端在处理到达的请求之前,会将请求中包含的令牌值与保存在当前用户会话中的令牌值进行比较,看是否匹配。在处理完该请求后,且在答复发送给客户端之前,将会产生一个新的令牌,该令牌除传给客户端以外,也会将用户会话中保存的旧的令牌进行替换。这样如果用户回退到刚才的提交页面并再次提交的话,客户端传过来的令牌就和服务器端的令牌不一致,从而有效地防止了重复提交的发生。

18 Struts的入口类?

答: ActionServlet 是Struts的入口类,所有struts请求都经由该类转发处理

19 关于hibernate:
1)在hibernate中,在配置文件呈标题一对多,多对多的标签是什么;
2)Hibernate的二级缓存是什么;
3)Hibernate是如何处理事务的;

答:1)一对多的标签为:<one-to-many> ;多对多的标签为:<many-to-many>;
2) sessionFactory 的缓存为hibernate的二级缓存;
3)Hibernate的事务实际上是底层的JDBC Transaction的封装或者是JTA Transaction的封装;默认情况下使用JDBCTransaction。

20 写出你熟悉的开源框架以及各自的作用。

答:框架:hibernate,spring,struts.
Hibernate主要用于数据持久化;
Spring 的控制反转能起到解 耦合 的作用;
Struts 主要用于流程控制;
服务器类: Apache Tomcat Jboss等

21 请写出spring中I0C的三种实现机制。(Spring)

答:三种机制为:通过setter方法注入、通过 构造方法 注入和接口注入。

22 说出Servlet的 生命周期 ,并说出Servlet和 cgi 的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过 多线程 方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

23 JSP的内置对象及方法。

request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取 cookie , header, 和session数据的有用的方法。

response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如 cookies ,头信息等)

out对象是 javax .jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext 表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page表示从该页面产生的一个servlet实例

24 JSP的常用指令

 <%@page language="java" contenType="text/ HTML ; charset =gb2312" session="true" buffer="64kb" autoFlush="true"

isThreadSafe="true" info="text" errorPage="error.jsp" isErrorPage="true" isELIgnored="true" pageEncoding="gb2312"

import="java. SQL .*"%>

isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)

<%@ include  file="filename"%>

<%@taglib prefix="c"uri=" #34;%>  

25 、什么情况下调用doGet()和doPost()?

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

26 、servlet的生命周期

web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。

27、如何现实servlet的单线程模式

<%@ page isThreadSafe=”false”%>

28、页面间对象传递的方法

request,session,application,cookie等

29、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是”类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

30、四种会话跟踪技术

会话作用域ServletsJSP 页面描述

page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

request是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)

session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

application是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

31、J2EE是技术还是平台还是框架?

J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。

J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。

32、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的 字符串

 Public String translate (String str) {
String tempStr = "";
try {
tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
tempStr = tempStr.trim();
}
catch (Exception e) {
System.err.println(e.getMessage());
}
return tempStr;
}  

33 . Servlet接口 中有几个方法?

答:5个方法:init(),service(),getServletConfig(),

getServletInfo(),destroy().

34 、Servlet的生命周期分及四个阶段?

答:1,创建Servlet对象,通过服务器反射机制创建Servlet对象,第一次请求时才会创建。(默认)

2,调用Servlet对象的init()方法,初始化Servlet的信息,init()方法只会在创建后被调用一次;

3,响应请求,调用service()或者是doGet(),doPost()方法来处理请求,这些方法是运行的在多线程状态下的。

4, 在长时间没有被调用或者是服务器关闭时,会调用destroy()方法来销毁Servlet对象。

35 编写Servlet代码时应注意什么问题?

答: 线程 安全问题,不要使用成员属性。

36 、hibernate的二级缓存?

Hibernate的缓存包括Session的缓存和 SessionFactory 的缓存,其中SessionFactory的缓存又可以分为两类:内置缓存和外置缓存。Session的缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。SessionFactory的内置缓存和Session的缓存在实现方式上比较相似,前者是SessionFactory对象的一些集合属性包含的数据,后者是指Session的一些集合属性包含的数据。SessionFactory的内置缓存中存放了映射元数据和预定义SQL语句,映射元数据是映射文件中数据的拷贝,而预定义 SQL语句 是在Hibernate初始化阶段根据映射元数据推导出来,SessionFactory的内置缓存是只读的,应用程序不能修改缓存中的映射元数据和预定义SQL语句,因此SessionFactory不需要进行内置缓存与映射文件的同步。SessionFactory的外置缓存是一个可配置的插件。在默认情况下,SessionFactory不会启用这个插件。外置缓存的数据是数据库数据的拷贝,外置缓存的介质可以是内存或者硬盘。SessionFactory的外置缓存也被称为Hibernate的第二级缓存。

37 、forward 和redirect的区别?

答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

38 、JSP中动态INCLUDE与静态INCLUDE的区别?

答:动态INCLUDE用jsp:include动作实现 <jsp:include page=”included.jsp” flush=”true” />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE用include伪码实现,它不会检查所含文件的变化,适用于包含静态页面<%@ include file=”included.htm” %>

39、说出数据连接池的工作机制是什么?

答:J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

40、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是”类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

41、jsp的四种范围?

答:a.page是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 JSP 页面

b.request是代表与 Web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件(由于 forward 指令和 include 动作的关系)

c.session是代表与用于某个 Web 客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求

d.application是代表与整个 Web 应用程序相关的对象和属性。这实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域

42、Struts的Token(令牌)机制是怎么回事?产生token的哪几种方式?

答:Struts使用Token机制,来防止恶意的破坏和重复提交问题,也就是点击后退后在再提交,这是Struts无法发现的,在form中生成一个token码,在session中也保存有一个同样的token码,当表单提交后,判断两个token码向等后,就会改变session中的这个token码,当然在用回退后,form的token码是不会变的,在提交,还会判断两个token码是否相等,如果不等就会抛出异常,证明这是过时的垃圾数据。

作用:Token机制可以解决表单的重复提交;

产生token的两种方式: <1>. form表单的post请求,使用隐藏域<input type=”hidden” name=”token” value=”${token}”>;

<2>. 直接使用超级连接<html:link action=”” trasantion=”true”>,可以直接在连接后面添加token值。

43 hibernate怎样实现持久化

1.hibernate是一种ORM(object relation mapping,对象关系映射)框架,所谓的对象关系映射,通俗的说,就是把JAVA对象保存到关系型数据库中,即进行持久化的框架。

2.hibernate进行持久化首先要建立对象到关系数据库的映射。

3.hibernate根据定义的映射规则将对象持久化(保存到)数据库存中。这就实现了对象持久化。

文章来源:智云一二三科技

文章标题:Java试题分享211109

文章地址:https://www.zhihuclub.com/179287.shtml

关于作者: 智云科技

热门文章

网站地图