您的位置:首页 > 编程语言 > Java开发

JAVA基础-其全面详解Java基础知识(四)

2008-11-06 11:03 686 查看
引自:本文来自学习网(www.gzu521.com),原文地址:http://www.gzu521.com/campus/article/it/200701/139218.htm

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

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

63、页面间对象传递的方法
request,session,application,cookie等

64、jsp和servlet有哪些相同点和不同点,他们之间的联系是什么?
jsp是servlet技术的扩展,本质上是servlet的简易方式,更强调应用的外表表达。jsp编译后是"类servlet"。servlet和jsp最主要的不同点在于,servlet的应用逻辑是在Java文件中,并且完全从表示层中的html里分离开来。而jsp的情况是java和html可以组合成一个扩展名为.jsp的文件。jsp侧重于视图,servlet主要用于控制逻辑。

65、四种会话跟踪技术
会话作用域servletsjsp 页面描述
page否是代表与一个页面相关的对象和属性。一个页面由一个编译好的 java servlet 类(可以带有任何的 include 指令,但是没有 include 动作)表示。这既包括 servlet 又包括被编译成 servlet 的 jsp 页面
request是是代表与 web 客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 web 组件(由于 forward 指令和 include 动作的关系)
session是是代表与用于某个 web 客户机的一个用户体验相关的对象和属性。一个 web 会话可以也经常会跨越多个客户机请求
application是是代表与整个 web 应用程序相关的对象和属性。这实质上是跨越整个 web 应用程序,包括多个页面、请求和会话的一个全局作用域

66、request对象的主要方法:
setattribute(string name,object):设置名字为name的request的参数值
getattribute(string name):返回由name指定的属性值
getattributenames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getcookies():返回客户端的所有cookie对象,结果是一个cookie数组
getcharacterencoding():返回请求中的字符编码方式
getcontentlength():返回请求的body的长度
getheader(string name):获得http协议定义的文件头信息
getheaders(string name):返回指定名字的request header的所有值,结果是一个枚举的实例
getheadernames():返回所以request header的名字,结果是一个枚举的实例
getinputstream():返回请求的输入流,用于获得请求中的数据
getmethod():获得客户端向服务器端传送数据的方法
getparameter(string name):获得客户端传送给服务器端的有name指定的参数值
getparameternames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getparametervalues(string name):获得有name指定的参数的所有值
getprotocol():获取客户端向服务器端传送数据所依据的协议名称
getquerystring():获得查询字符串
getrequesturi():获取发出请求字符串的客户端地址
getremoteaddr():获取客户端的ip地址
getremotehost():获取客户端的名字
getsession([boolean create]):返回和请求相关session
getservername():获取服务器的名字
getservletpath():获取客户端所请求的脚本文件的路径
getserverport():获取服务器的端口号
removeattribute(string name):删除请求中的一个属性

67、J2EE是技术还是平台还是框架?
j2ee本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
j2ee也是一个框架,包括jdbc、jndi、rmi、jms、ejb、jta等技术。

68、我们在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;
}

69、简述逻辑操作(%26amp;,|,^)与条件操作(%26amp;%26amp;,||)的区别。
区别主要答两点:a.条件操作只能操作布尔型的,而逻辑操作不仅可以操作布尔型,而且可以操作数值型
b.逻辑操作不会产生短路

70、xml文档定义有几种形式?它们之间有何本质区别?解析xml文档有哪几种方式?
a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被xml解析器解析(这也是从dtd上发展schema的根本目的),c:有dom,sax,stax等

dom:处理大型文件时其性能下降的非常厉害。这个问题是由dom的树结构所造成的,这种结构占用的内存较多,而且dom必须在解析文件之前把整个文档装入内存,适合对xml的随机访问
sax:不现于dom,sax是事件驱动型的xml解析方式。它顺序读取xml文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理xml文件,适合对xml的顺序访问
stax:streaming api for xml (stax)

71、简述synchronized和java.util.concurrent.locks.lock的异同 ?
主要相同点:lock能完成synchronized所实现的所有功能
主要不同点:lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而lock一定要求程序员手工释放,并且必须在finally从句中释放。

72、ejb的角色和三个对象
一个完整的基于ejb的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循SUN公司提供的ejb规范,以保证彼此之间的兼容性。这六个角色分别是ejb组件开发者(enterprise bean provider) 、应用组合者(application assembler)、部署者(deployer)、ejb 服务器提供者(ejb server provider)、ejb 容器提供者(ejb container provider)、系统管理员(system administrator)
三个对象是remote(local)接口、home(localhome)接口,bean类

73、ejb容器提供的服务
主要提供声明周期管理、代码产生、持续性管理、安全、事务管理、锁和并发行管理等服务。

74、ejb规范规定ejb中禁止的操作有哪些?
1.不能操作线程和线程api(线程api指非线程对象的方法如notify,wait等),2.不能操作awt,3.不能实现服务器功能,4.不能对静态属生存取,5.不能使用io操作直接存取文件系统,6.不能加载本地库.,7.不能将this作为变量和返回,8.不能循环调用。

75、remote接口和home接口主要作用
remote接口定义了业务方法,用于ejb客户端调用业务方法。
home接口是ejb工厂用于创建和移除查找ejb实例

76、bean 实例的生命周期
对于stateless session bean、entity bean、message driven bean一般存在缓冲池管理,而对于entity bean和statefull session bean存在cache管理,通常包含创建实例,设置上下文、创建ejb object(create)、业务方法调用、remove等过程,对于存在缓冲池管理的bean,在create之后实例并不从内存清除,而是采用缓冲池调度机制不断重用实例,而对于存在cache管理的bean则通过激活和去激活机制保持bean的状态并限制内存中实例数量。

77、ejb的激活机制
以stateful session bean 为例:其cache大小决定了内存中可以同时存在的bean实例的数量,根据mru或nru算法,实例在激活和去激活状态之间迁移,激活机制是当客户端调用某个ejb实例业务方法时,如果对应ejb object发现自己没有绑定对应的bean实例则从其去激活bean存储中(通过序列化机制存储实例)回复(激活)此实例。状态变迁前会调用对应的ejbactive和ejbpassivate方法。

78、ejb的几种类型
会话(session)bean ,实体(entity)bean 消息驱动的(message driven)bean
会话bean又可分为有状态(stateful)和无状态(stateless)两种
实体bean可分为bean管理的持续性(bmp)和容器管理的持续性(cmp)两种

79、客服端调用ejb对象的几个基本步骤
设置jndi服务工厂以及jndi服务地址系统属性,查找home接口,从home接口调用create方法创建remote接口,通过remote接口调用其业务方法。

80、如何给weblogic指定大小的内存?
在启动weblogic的脚本中(位于所在domian对应服务器目录下的startservername),增加set mem_args=-xms32m -xmx200m,可以调整最小内存为32m,最大200m
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: