JSP面试题及答案文档格式.docx

上传人:b****1 文档编号:4573826 上传时间:2023-05-03 格式:DOCX 页数:22 大小:89.58KB
下载 相关 举报
JSP面试题及答案文档格式.docx_第1页
第1页 / 共22页
JSP面试题及答案文档格式.docx_第2页
第2页 / 共22页
JSP面试题及答案文档格式.docx_第3页
第3页 / 共22页
JSP面试题及答案文档格式.docx_第4页
第4页 / 共22页
JSP面试题及答案文档格式.docx_第5页
第5页 / 共22页
JSP面试题及答案文档格式.docx_第6页
第6页 / 共22页
JSP面试题及答案文档格式.docx_第7页
第7页 / 共22页
JSP面试题及答案文档格式.docx_第8页
第8页 / 共22页
JSP面试题及答案文档格式.docx_第9页
第9页 / 共22页
JSP面试题及答案文档格式.docx_第10页
第10页 / 共22页
JSP面试题及答案文档格式.docx_第11页
第11页 / 共22页
JSP面试题及答案文档格式.docx_第12页
第12页 / 共22页
JSP面试题及答案文档格式.docx_第13页
第13页 / 共22页
JSP面试题及答案文档格式.docx_第14页
第14页 / 共22页
JSP面试题及答案文档格式.docx_第15页
第15页 / 共22页
JSP面试题及答案文档格式.docx_第16页
第16页 / 共22页
JSP面试题及答案文档格式.docx_第17页
第17页 / 共22页
JSP面试题及答案文档格式.docx_第18页
第18页 / 共22页
JSP面试题及答案文档格式.docx_第19页
第19页 / 共22页
JSP面试题及答案文档格式.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JSP面试题及答案文档格式.docx

《JSP面试题及答案文档格式.docx》由会员分享,可在线阅读,更多相关《JSP面试题及答案文档格式.docx(22页珍藏版)》请在冰点文库上搜索。

JSP面试题及答案文档格式.docx

转发路径"

).forward(request,response);

5.jsp内置对象和作用

有九个内置对象:

request、response、out、session、application、pageContext、config、page、exception

作用如下:

(1)HttpServletRequest类的Request对象

作用:

代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。

(2)HttpServletResponse类的Respone对象作用:

代表响应对象,主要用于向客户端发送数据

(3)JspWriter类的out对象作用:

主要用于向客户端输出数据;

Out的基类是JspWriter

(4)HttpSession类的session对象作用:

主要用于来分别保存每个用户信息,与请求关联的会话;

会话状态维持是Web应用开发者必须面对的问题。

(5)ServletContex类的application对象作用:

主要用于保存用户信息,代码片段的运行环境;

它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享.

(6)PageContext类的PageContext对象

管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。

(7)ServletConfig类的Config对象作用:

代码片段配置对象,表示Servlet的配置。

(8)Object类的Page(相当于this)对象

处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。

(9)Exception

处理JSP文件执行时发生的错误和异常

6.如果用JSP开发一个聊天程序,不用数据库存储聊天纪录,请问聊天记录最好存储在()中。

Application

7.doPost,doGet的区别

1。

当你直接访问一个servlet时,调用的是doGet方法。

2。

如果你的html里面规定了method访问哪个方法,则调用该方法。

3。

get和post提交的数据量是不一样的.get好像最多只能在url后跟8K,post没这个限制

8.jsp乱码如何解决,几种解决方案。

一、JSP页面显示乱码

二、表单提交中文时出现乱码

三、数据库连接时出现乱码

9.页面间对象传递的方法

request,session,application,cookie等

(key,value)

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

的字符串

text=newString((“iso8859-1”),”GBK”);

首先以“iso8859-1”解码为byte数组,再用“GBK”重构字符串

11.简单介绍一下servlet

servlet容器:

负责处理客户请求、把请求传送给servlet并把结果返回给客户。

不同程序的容器实际实现可能有所变化,但容器与servlet之间的接口是由servletAPI定义好的,这个接口定义了servlet容器在servlet上要调用的方法及传递给servlet的对象类。

servlet的生命周期:

servlet容器创建servlet的一个实例

容器调用该实例的init()方法

如果容器对该servlet有请求,则调用此实例的service()方法容器在销毁本实例前调用它的destroy()方法

销毁并标记该实例以供作为垃圾收集

一旦请求了一个servlet,就没有办法阻止容器执行一个完整的生命周期。

容器在servlet首次被调用时创建它的一个实例,并保持该实例在内存中,让它对所有的请求进行处理。

容器可以决定在任何时候把这个实例从内存中移走。

在典型的模型中,容器为每个servlet创建一个单独的实例,容器并不会每接到一个请求就创建一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,但是这从servlet的观点来看,效果和为每个请求创建一个新线程的效果相同。

12.BS与CS的联系与区别。

B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web服务器以及与之相连的后台数据库的技术及体系结构。

它由浏览器、Web服务器、应用服务器和数据库服务器组成。

户端的浏览器通过URL访问Web服务器,Web服务器请求数据库服务器,并将获得的结果以HTML形式返回

客户端浏览器。

c/s在系统机构上和B/S相似,不过需要在客户端安装一个客户端软件,由这个软件对服务器的数据进行读写,就像我们常用的qq,就是这种模式。

13.JSP与SERVLET的区别。

JSP先编译成SERVLET然后再编译成CLASS文件

JSPSERVLETJAVA文件---CLASS

jsp主要做视图层,servlet主要做控制层

14.JSP中动态INCLUDE与静态INCLUDE的区别

动态INCLUDE用jsp:

include动作实现它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面

15.JSP的内置对象及方法。

9大内置对象:

request,response,pagecontext,session,application,out,config,page,exceptionrequest--HttpServletRequest的子类

response--HttpServletResponse的子类

session--HttpSession的子类

pagecontext--PageContext的子类application--ServletContext的子类

out--JspWriter的子类

config--ServletConfig的子类

page--Object的子类exception--Throwab的子类

16.四种会话跟踪技术

会话跟踪是为了跟踪用户于service之间的多次交互.也就是我们常见的在C盘/文件夹下有一个COOKIE目录比Cookie安全.不可见.但占用srevice资源

重写.这是在用户的IE禁止Cookie的时候采用的方法。

因为不管是Cookie还是session都要借助

4.隐藏域

17.<%⋯%>和<%!

⋯%>的区别

<%⋯%>用于在JSP页面中嵌入Java脚本

<%!

⋯%>用于在JSP页面中申明变量或方法,可以在该页面中的<%⋯%>脚本中调用,声明的变量相当于Servlet中的定义的成员变量。

18.你认为哪种分页效率最高JSP,MYSQL,SQL2005.

SQL2005效率高:

因为mysql的分页还是先查出所有的记录,再从起始位置开始查出所需要的记录,而SQL2005不会查所有记录,只查筛选后所需要的记录

19.简单说明下你对servlet的认识及其Servlet的基本架构、生命周期

HttpServlet类是一个抽象类,可以从该类派生出一个子类来实现一个HttpServlet,接受来自Web站

点的请求(该请求来自访问该

Web站点的客户浏览器),并将处理后的响应结果发回Web站点(Web站点再

将响应结果发送给客户浏览器)

,在HttpServlet

的子类中,必须至少重载下表中的其中一种方法。

方法名doGet

如果Servlet

支持Http

GET请求,用于

Http

GET请求

doPost

POST请求,用于

POST请求

doPut

PUT请求,用于

PUT请求

doDelete

如果Servlet支持HttpDELETE请求,用于HttpDELETE请求

init和destroy

如果需要管理Servlet生命周期内所持有资源,可以重载这两个方法

通常,不重载service方法,对于上表中的每一种HTTP请求,service方法通过分派它们到相应的Handler线程(doXXX方法)来处理这些标准的HTTP请求。

同样地,通常也不重载doOptions和doTrace方法,service方法通过分派它们到doTrace和doOptions来支持TRACE和OPTIONS。

Servlet通常运行在多线程的服务器中,因此,所编写的Servlet代码必须能够处理并行请求和对数据资源的同步访问。

共享资源包括内存中的数据(例如:

实例或类变量)和外部对象(例如:

文件、数据库连接或网络连接)。

ProtectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException

从service方法授并处理HTTPGET请求。

GET方法允许客户读取来自Web服务器的信息,客户通过传递一个带URL的查询字符串可以告诉服务器它需什么信息。

重载支持GET请求的doGet方法还将自动支持HTTPHEAD请求,HEAD请求也是一个GET请求,它得到的返回响应中只有一个请求头(header)字段,而没有响应信息的内容。

如果重载方法,应该从该请求读数据,在响应中设置整个headers,访问PrintWriter或输出流对象,最后写响应数据。

当设置headers时,应确保包含contenttype和encoding。

如果使用PrintWriter对象返回响应,在存取PrintWriter对象之前必须设置contenttype。

Servlet引擎必须在写响应数据之前写headers,因为在写数据之后headers随时都可能被刷新。

20.简单描述下数据连接池的工作机制是什么

数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。

无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。

连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。

数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:

1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;

2)最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。

3)如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。

不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。

21.jsp乱码如何解决,给出三种以上的对应解决方案,并给出对应的程序案例;

<

%@pagecontentType="

text/html;

charset=gb2312"

%>

(“gb2312”)对请求进行统一编码

三、数据库连接出现乱码

要涉及中文的地方全部是乱码,解决办法:

在数据库的数据库URL中加上useUnicode=true&

characterEncoding=GBK就OK了。

四、通过过滤器完成

五、在中的设置编码格式

22.面向对象的特征有哪些方面

1.抽象:

抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。

抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。

抽象包括两个方面,一是过程抽象,二是数据抽象。

2.继承:

继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。

对象的一个新类可以从现有的类中派生,这个过程称为类继承。

新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。

派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

3.封装:

封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。

4.多态性:

多态性是指允许不同类的对象对同一消息作出响应。

多态性包括参数化多态性和包含多态性。

多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

23.String是最基本的数据类型吗

基本数据类型包括byte、int、char、long、float、double、boolean和short。

类是final类型的,因此不可以继承这个类、不能修改这个类。

为了提高效率节省空间,我们应该用StringBuffer类

24.int和Integer有什么区别

Java提供两种不同的类型:

引用类型和原始类型(或内置类型)。

Int是java的原始数据类型,Integer是java为int提供的封装类。

Java为每个原始类型提供了封装类。

原始类型封装类:

booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。

引用类型和原始类型具有不同的特征和用法,它们包括:

大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。

对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。

25.String和StringBuffer的区别

JAVA平台提供了两个类:

String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。

这个String类提供了数值不可改变的字符串。

而这个StringBuffer类提供的字符串进行修改。

当你知道字符数据要改变的时候你就可以使用StringBuffer。

典型地,你可以使用StringBuffers来动态构造字符数据

26.运行时异常与一般异常有何异同

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。

java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

27.说出ArrayList,Vector,LinkedList的存储性能和特性

ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

28.Collection和Collections的区别。

Collection是集合类的上级接口,继承与他的接口主要有Set和List.

Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

29.&

和&

&

的区别。

和&

都可作为逻辑运算符“与”使用,但是&

是“短路与”,运算时先判断符号前面的表达式的值,如果能够确定整个表达式的值,则不进行符号后面的表达式的运算。

另外,&

也可作为位运算符使用。

30.HashMap和Hashtable的区别。

HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于

HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。

HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。

HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。

因为contains方法容易让人引起误解。

Hashtable继承自Dictionary类,而HashMap是引进的Mapinterface的一个实现。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap就必须为之提供外同步。

Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

31.final,finally,finalize的区别。

final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

32.sleep()和wait()有什么区别

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。

调用sleep不会释放对象锁。

wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

33.Overload和Override的区别。

Overloaded的方法是否可以改变返回值的类型

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。

子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"

屏蔽"

了。

如果在一个类中定义了多个同名的方法,它们

或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。

Overloaded的方法是可以改变返回值的类型。

34.error和exception有什么区别

error表示恢复不是不可能但很困难的情况下的一种严重问题。

比如说内存溢出。

不可能指望程序能处理这样的情况。

exception表示一种设计或实现问题。

也就是说,它表示如果程序运行正常,从不会发生的情况。

35.同步和异步有何异同,在什么情况下分别使用他们举例说明。

如果数据将在线程间共享。

例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

当应用程序

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2