关键词不能为空

当前您在: 主页 > 英语 >

JSP面试题及答案

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-06 02:08
tags:

-

2021年2月6日发(作者:ontario)



JSP


面试题及答案




浏览器


jsp,html

< p>
之间的关系





Java


Servlet


一样


,


是在服务器端执 行的


,


通常返回该客


户端的就是一个< /p>


HTML


文本


,


因此客户端只要有浏览器就能浏览


2.



大多数


Browser/Server


结构的


Web


应用中


,


浏览器直接通 过


HTML


或者


JSP


的形式与用户交互


,


响应用户的请求

< br>


在服务器上执行


,


并将执行结果 输出到客户端浏览器


,


我们可以说基本上与浏览器无关


自定义标签要继承哪个类



这个类可以继承


TagSupport


或者


BodyTag Support


,两者的


差别是前者适用于没有主体的标签,< /p>


而后者适用于有主体的标签。



果选择继 承


TagSupport


,可以实现


d oStartTag



doEndTag


两个


方法实现


T


ag


的功能,如果选择继承


BodyTagSupport


,可以实现


doAfterBody


这个方法。过滤器


Filter


的作用及配置


< br>过滤器的作用


:


过滤器是一个对象,可以传输请求或修改 响应。


它可以在请求到达


Servlet/JSP


之前对其进行预处理,


而且能够在响


应离开


Servlet/JSP


之后对其进行后处理。所以如果你有几个


Servlet/JSP


需要执行同样的数据转换或页面处理的话,你 就可以写


一个过滤器类,然后在部署描述文件(



)中把该过滤器与对


应的


Servlet/JSP


联系起来。


你可以一个过滤器以作用于一个或一组

< br>servlet


,零个或多个过滤器能过滤一个或多个


s ervlet


。一个过滤器


1






< p>











1




void


init(FilterConfig


config)


throws


ServletException:


在过滤器执行


service


前被调用,以设置 过滤器的配置对象。


2


void


d estroy();



过滤器执行


se rvice


后被调用。


3


Void


doFilter(ServletRequest


req,ServletResponse


res,FilterChain


chain)


throws


IOException,ServletEx ception;forward,



redirect


的区别



有哪


些方式实现


forward


是把另一个页面加载到本页面,不改变浏览器的路径,


redirect




转< /p>









< p>











:


direct(








)




:


uestDispatcher(







).forward(request,


response) ;jsp


内置对象和作用?







< p>




request< /p>



response


< br>out



session



application



pageCon text



config


< p>
page



exception

< br>作用如下:


(1)


HttpServletReque st


类的


Request


对象作用:代 表请求对象,


主要用于接受客户端通过


HTTP


协议连接传输到服务器端的数据。


(2)


HttpS ervletResponse


类的


Respone

< p>
对象作用:代表响应对象,主


要用于向客户端发送数据

(3)


JspWriter


类的


out


对象作用:主要用


于向客户端输出数据

< br>;



Out


的基类是


JspWriter(4) HttpSession




session


对象作用:


主要用于来分别保存每个用户信息,


与请求关


联的会话;



会话状态维持是


Web

应用开发者必须面对的问题。


(5)


ServletCo ntex


类的


application


对象作用:


主要用于保存用户信息,


2



代码片段的运行环境;


< p>
它是一个共享的内置对象,即一个容器中的


多个用户共享一个


application


对象,


故其保存的信息被所 有用户所


共享


.(6) PageContext


类的


PageContext


对象作用:

< p>
管理网页属性


,



JSP


页面包装页面的上下文,管理对属于


JSP

中特殊可见部分中


已命名对象的访问,它的创建和初始化都是由容器来完成的。



(7)


ServletConfig< /p>


类的


Config


对象作用:代码片段配 置对象,表示


Servlet


的配置。



(8) Object


类的


Page< /p>


(相当于


this


)对象作用:


处理


JSP


网页,


是< /p>


Object


类的一个实例,


指的是


JSP


实现类的实例,


即它也是

< p>
JSP


本身,只有在


JSP


页面范围之内才是合法的。



(9)Exception


作用:处理


JSP


文件执行时发生的错误和 异常如果用


JSP


开发一个聊天程序,不用数据库存储聊天纪录 ,请问聊天记录最


好存储在()中。



ApplicationdoPost,doGet


的区别




1


。当你直接访问一个


servlet


时,调用的是


doGet

< p>
方法。




2

< p>
。如果你的


html


里面规定了

< br>method


访问哪个方法,则调用


该方法。

< p>



3



get



post


提交的数据 量是不一样的


.get


好像最多只能在


url


后跟


8K, post


没这个限制



jsp


乱码如何解决,


几种解决方案。




一、


JSP


页面显示乱码



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



三、数据库连接时出现乱码页面间对象传递的方法


< p>
request,session,application,cookie




3




ribute(key,value)



ribute(key,value)


ribute(key,value)


我们在


web


应用开发过


程中经常遇到输出某种编码的字符,如

iso8859-1


等,如何输出一


个某种编码的字符串?



text = new String( es( iso8859-1 ), GBK );


首先以



iso8859-1


解码为


byte


数组,再用



GBK


重构字符串


简单介绍一下


servlet

< p>
servlet


容器:


负责处理客户请求、


把请求传送给


servlet


并把结


果返回给客户。不同程序的容器实际实现可能有所变化,但容器与


ser vlet


之间的接口是由


servletAPI


定义好的,这个接口定义了


servlet


容器在


servlet


上要调用的方法及传递给


s ervlet


的对象类。


servlet


的生命周期:



servlet


容器 创建


servlet


的一个实例容器调用


该实例的


init()


方法如果容器对该

servlet


有请求,则调用此实例的


service( )


方法容器在销毁本实例前调用它的


destroy()


方法销毁并标


记该实例以供作为垃圾收集一旦请求了一个


servlet


,就没有办法阻


止容器执行一个完整 的生命周期。容器在


servlet


首次被调用时创建


它的一个实例,


并保持该实例在内存中,


让它对 所有的请求进行处理。


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


中,容器为每个


servlet


创建一 个单独的实例,容器并不会每接到一


个请求就创建一个新线程,


而是使用一个线程池来动态的将线程分配


给到来的请求,但是这从


servlet


的观点来看,效果和为每个请求创


4



建一个新线程的效果相同。


BS



CS


的联系与区别。


B/S


模式是指在


TCP/IP


的支持下,以


HTTP


为传输协议,客 户


端通过


Browser


访问


Web


服务器以及与之相连的后台数据库的技术


及体系结构。它由浏览器、


Web


服务器、应用服务器和数据库 服务


器组成。客户端的浏览器通过


URL


访问


Web


服务器,


Web


服务器


请求数据库服务器,并将获得的结果以


H TML


形式返回客户端浏览


器。



c/s


在系统机构上和


B/S


相似,不过需要在客户端安装一个客


户端软件,由这个软件对服务器的数据进 行读写,就像我们常用的


qq


,就是这种模式。



JSP



SERVLET< /p>


的区别。



JSP


先编译成


SERVLET


然后再编译成


CLASS


文件




JSP


SERVLET JAVA


文件



CLASSjsp


主要做视图层,


servlet


主要做控制



JSP


中动态


INCLUDE


与静态


INCLUDE


的区别?



动态


INCLUDE



jsp:include


动作实现



它总是会检查所含文件


中的变化,


适合用于包含动态页面,


并且可以带参数。


< /p>


静态


INCLUDE


< br>include


伪码实现


,


定不 会检查所含文件的变化,适用于包含静态


页面


JSP

< p>
的内置对象及方法。



9






象< /p>



request,response,pagecontext ,session,application,out,config,p


age,ex ception


request


HttpServletR equest




< br>response


HttpServletResponse

< br>的




session


HttpSession





pagecontext PageContext


的子类


application ServletContext



5



子类


out


JspWriter


的子类


config


ServletConfig


的子类



page


Object


的子类


exception Throwab


的子类四种会话跟踪技术



会话跟踪是 为了跟踪用户于


service


之间的多次交互


.




也就是我们常见的在


C



/


文件夹 下有一个


COOKIE


目录




n



Co okie


安全


.


不可见


.


但占用


srevice


资源





重写


.


这是在用户的


IE


禁止


Cookie


的时候采用的方法。因

为不管是


Cookie


还是



session


都要借助


4.


隐藏域和的区别



用于在

JSP


页面中嵌入


Java


脚本用 于在


JSP


页面中申明变量或


方法,可 以在该页面中的脚本中调用,声明的变量相当于


Servlet






的< /p>









< p>









JSP ,MYSQL,SQL2005.


SQL2005


效率高:


< p>
因为


mysql


的分页还是先查出所有的记录,< /p>


再从起始位置开始查出所需要的记录,




SQL2005


不会查所有记


录,只 查筛选后所需要的记录简单说明下你对


servlet


的认识及 其


Servlet


的基本架构、生命周期



HttpServlet


类是一个抽象类,可以从该类派生 出一个子类来实


现一个


HttpServlet


,接受来自


Web


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



Web


站点的客户浏览器)



并将处理后的响应结果发回


Web

< br>站点



Web


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




HttpSe rvlet


的子


类中,必须至少重载下表中的其中一种方法。< /p>



方法名


doGet


6




如果


Servlet


支持


Http GET


请求,用于


Http GET


请求




doPost


如果


Servlet< /p>


支持


Http


POST


请求,用于


Http POST


请求




doPut



如果

< br>Servlet


支持


Http PUT


请求,用于


Http PUT


请求




doDelete



如果

< p>
Servlet


支持


Http


DELETE


请求,用于


Http < /p>


DELETE






init



destroy



如果需要管理


Servlet


生命周期内所持有资源,可以重载这两


个方法通常,

< br>不重载


service


方法,


对 于上表中的每一种


HTTP


请求,


se rvice


方法通过分派它们到相应的


Handler


线程(


doXXX


方法)


来处理这些标准的


HTTP


请求。同样地,通常也不重载


doOptions



doTrace





servi ce











doTrace



doOptions


来支持


HTTP1.1


TRACE



OPTIONS



Servlet


通常运


行在多线程的 服务器中,因此,所编写的


Servlet


代码必须能够处理< /p>


并行请求和对数据资源的同步访问。


共享资源包括内存中的数据< /p>


(例


如:实例或类变量)和外部对象(例如:文件、数据库连接或 网络连





Protected


void


doGet(HttpServletRequest


resp)


throws


req,HttpServletResponse


Serv letException,IOException



ser vice


方法授并处理


HTTP GET


请求。


GET


方法允许客户读取来自


Web


服务器的信息,客户通过传


7



递一个带


URL


的查询字符串可以告诉 服务器它需什么信息。重载支



GET


请求的


doGet


方法还将自动支持


H TTP HEAD


请求,


HEAD


请求 也是一个


GET


请求,它得到的返回响应中只有一个请求头



header


)字段,而没有响应信息的 内容。如果重载方法,应该从


该请求读数据,在响应中设置整个


headers


,访问


PrintWriter


或输


出流对象,


最后写响应数据。

当设置


headers


时,


应确保 包含


content


type



encoding


。如果使用


PrintW riter


对象返回响应,在存取


PrintWriter


对象之前必须设置


content


typ e



Servlet


引擎必须在


写响应数据之前写


headers


,因为在写 数据之后


headers


随时都可


能被 刷新。简单描述下数据连接池的工作机制是什么?



数据库连接 池在初始化时将创建一定数量的数据库连接放到连


接池中,


这些 数据库连接的数量是由最小数据库连接数来设定的。



论这些数 据库连接是否被



使用,连接池都将一直保证至少拥有这么


多的连接数量。


连接池的最大数据库连接数量限定了这个连接池能占


有的最大连接数,当应用程序向连接池请求的连接数超



过最大连接


数量时,


这些请求将被加入到等待 队列中。


数据库连接池的最小连接


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



1)


最小连接数 是连


接池一直保持的数据库连接,


所以如果应用程序对数据库连 接的使用


量不大,


将会有大量的数据库连接资源被浪费;



2)


最大连接数是连

接池能申请的最大连接数,


如果数据库连接请求超过此数,


后面的数


据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。

< p>
3)


如果最小连接数与最大连接数相差太大,那么最先的连接请求将


8



会获利,


之 后超过最小连接数量的连接请求等价于建立一个新的数据


库连接。


不过,


这些大于最小连接数的数据库连接在使用完不会马上


被 释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。


jsp


乱码如何解决,给出三种以上的对应解决方案,并给出对应的程


序案例;



一、


JSP


页面显 示乱码









中< /p>








acterEncoding( gb2312 )


对请求进行统一编码三、


数据库连接出现乱码



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


URL


中加上


useUnicode= true


characterEncoding=GBK


就< /p>


OK


了。四、通过过滤器完成五、在



中的设置编码格式面向


对象的特征有哪些方面



1.


抽象:抽象就是忽略一个主题中与当前目标无关的那些 方面,


以便更充分地注意与当前目标有关的方面。


抽象并不打算 了解全部问


题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方


面,一是过程抽象,二是数据抽象。


2.


继承: 继承是一种联结类的层


次模型,


并且允许和鼓励类的重用,


它提供了一种明确表述共性的方


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


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


,而原


始类称为新类的基类(父类)


。派生类可以从它的基类那里继承方法


和实例变量,并且类可以修改或增加新的方法使 之更适合特殊的需


9



要。


3.


封装:封装是把过程和数据包围起来,对数据的访问只能通过


已定义的界面。


面向对象计算始于这个基本概念,

即现实世界可以被


描绘成一系列完全自治、


封装的对象,< /p>


这些对象通过一个受保护的接


口访问其他对象。

< br>4.


多态性:多态性是指允许不同类的对象对同一


消息 作出响应。


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


多态性语言


具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程

序函数同名问题。


String


是最基本的数据类型吗




基本数据类型包括

byte



int



char



long



float



double



boolean



shor t




类是


fi nal


类型的,


因此不可以


继承这个类 、不能修改这个类。为了提高效率节省空间,我们应该用


StringBuffer



int




Integer


有什么区别



Java


提供两种不同的类型:


引用 类型和原始类型


(或内置类型)



In t



java


的原始数据类型,


Integer



java

< br>为


int


提供的封装类。


Jav a





原< /p>









< p>










booleanBoolean charCharacter byteByte shortShortintInteger


longLong floatFloat doubleDouble


引用类型和原始类型的行为完


全不同,


并且它们具有不 同的语义。


引用类型和原始类型具有不同的


特征和用法,它们包 括:大小和速度问题,这种类型以哪种类型的数


据结构存储,


当 引用类型和原始类型用作某个类的实例数据时所指定


的缺省值。对象引用实例变量的缺省 值为



null


,而原始类型实例变< /p>


量的缺省值与它们的类型有关。


String

< br>和


StringBuffer


的区别


JAVA


平台提供了两个类:


S tring



StringBuffer


,它们可以储


10



存和操作字符 串,即包含多个字符的字符数据。这个


String


类提供


了数值不可改变的字符串。而这个


StringBuffer


类提供的字符串进
























使

< br>用


StringBuffer


。典型地,你可以使用


StringBuffers


来动态构造字符


数据。运行时异常与一般异常有何异同?



异常表示程序运行 过程中可能出现的非正常状态,


运行时异常表


示虚拟机的通常操 作中可能遇到的异常,是一种常见运行错误。


java


编译器要 求方法必须声明抛出可能发生的非运行时异常,


但是并不要


求必 须声明抛出未被捕获的运行时异常。说出


ArrayList,Vector,


LinkedList


的存储性能和特性


< /p>


ArrayList



Vector


都是使用数组方式存储数据,


此数组元素数


大于实际存储的数据以便增加和插入元素,


它们都允许直接按序号索

引元素,


但是插入元素要涉及数组元素移动等内存操作,


所 以索引数


据快而插入数据慢,


Vector

由于使用了


synchronized


方法


(线程安


全)


,通常性能上较


ArrayList


差,而


LinkedList


使用双向链表实现


存储,


按序号索引数据需要进行前 向或后向遍历,


但是插入数据时只


需要记录本项的前后项即可, 所以插入速度较快。


Collection




Collections


的区别。


< /p>


Collection


是集合类的上级接口,

继承与他的接口主要有


Set



tions


是针对集合类的一个帮助类,他提供一系列静态方


法 实现对各种集合的搜索、排序、线程安全化等操作。





的区别。






都可作为逻辑运算符





使用,但是





短路与



,运算时


11


先判断符号前面的表达式的值,


如果能够确定整个表达式的值,

则不


进行符号后面的表达式的运算。另外,



也可作为位运算符使用。


HashMap



Hashtable


的区别。




HashMap


< br>Hashtable


的轻量级实现(非线程安全的实现)



他们都完成了


Map


接口,主要区别 在于


HashMap


允许空(


null



键值



ke y



,


由于非线程安全,


效率上可能高于


Hashtable



HashMap


允许将


null

作为一个


entry



key


或者


value


,而


Hashtable


不允




HashMap



Hashtable



contains


方法

去掉


了,


改成


containsv alue



containsKey


。 因为


contains


方法容易让人引起


误解。


Hashtable


继承自


D ictionary


类,而


HashMap


Java1.2


引进的


Map


interface


的一个实现。最大的不同是,


Hashtable



方法是


Synchronize


的,而


HashMap


不是,在多个线程访问


Hashtable


时,不需 要自己为它的方法实现同步,而


HashMap


< p>
必须为之提供外同步。


Hashtable



HashMap


采用的


hash/reha sh


算法都大概一样,


所以性能不会有很大的差异。

< p>
final, finally, finalize


的区别。



final


用于声明属性,方法和类,分别表示属性不可变, 方法不


可覆盖,


类不可继承。


fina lly


是异常处理语句结构的一部分,


表示总

< br>是执行。


finalize



O bject


类的一个方法,在垃圾收集器执行的时


候会调用被回 收对象的此方法,


可以覆盖此方法提供垃圾收集时的其


他资源回 收,例如关闭文件等。


sleep()




wait()


有什么区别





sleep


是线程类(


Thread


)的方法,导致此线程暂停执行指定


1 2


-


-


-


-


-


-


-


-



本文更新与2021-02-06 02:08,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/604767.html

JSP面试题及答案的相关文章