ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:33.64KB ,
资源ID:3859078      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3859078.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JSP面试题及答案.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JSP面试题及答案.docx

1、JSP面试题及答案JSP面试题及答案1.扫瞄器jsp,html之间的关系1.JSP与JavaServlet一样,是在效劳器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有扫瞄器就能扫瞄2.在大多数Browser/Server结构的Web应用中,扫瞄器直接通过HTML或者JSP的形式与用户交互,响应用户的请求3.JSP在效劳器上执行,并将执行结果输出到客户端扫瞄器,我们可以说根本上与扫瞄器无关2.自定义标签要继承哪个类这个类可以继承TagSupport或者BodyTagSupport,两者的差异是前者适用于没有主体的标签,而后者适用于有主体的标签。如果选择继承TagSuppor

2、t,可以完成doStartTag和doEndTag两个方法完成Tag的功能,如果选择继承BodyTagSupport,可以完成doAfterBody这个方法。3.过滤器Filter的作用及配置过滤器的作用:过滤器是一个对象,可以传输请求或修改响应。它可以在请求到达Servlet/JSP之前对其进行预处理,而且能够在响应离开Servlet/JSP之后对其进行后处理。所以如果你有几个Servlet/JSP需要执行同样的数据转换或页面处理的话,你就可以写一个过滤器类,然后在部署描述文件web.xml中把该过滤器与对应的Servlet/JSP联系起来。你可以一个过滤器以作用于一个或一组servlet,

3、零个或多个过滤器能过滤一个或多个servlet。一个过滤器完成java.servlet.Filter接口并定义它的三个方法:1voidinit(FilterConfigconfig)throwsServletException:在过滤器执行service前被调用,以设置过滤器的配置对象。2voiddestroy();在过滤器执行service后被调用。3VoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainchain)throwsIOException,ServletException;4.forward,与redirect的

4、区别?有哪些方法完成forward是把另一个页面加载到本页面,不改变扫瞄器的路径,redirect是跳转到另一个页面,会改变扫瞄器的路径重定向:response.sendRedirect(重定向的路径)转发:request.getRequestDispatcher(转发路径).forward(request,response);5.jsp内置对象和作用?有九个内置对象:request、response、out、session、application、pageContext、config、page、exception作用如下:(1)HttpServletRequest类的Request对象作用:

5、代表请求对象,主要用于接受客户端通过HTTP协议连接传输到效劳器端的数据。(2)HttpServletResponse类的Respone对象作用:代表响应对象,主要用于向客户端发送数据(3)JspWriter类的out对象作用:主要用于向客户端输出数据;Out的基类是JspWriter(4)HttpSession类的session对象作用:主要用于来分别保存每个用户信息,与请求关联的会话;会话状态维持是Web应用开发者必须面对的问题。(5)ServletContex类的application对象作用:主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一

6、个application对象,故其保存的信息被全部用户所共享.(6)PageContext类的PageContext对象作用:治理网页属性,为JSP页面包装页面的上下文,治理对属于JSP中特别可见局部中已命名对象的访问,它的创立和初始化都是由容器来完成的。 (7)ServletConfig类的Config对象作用:代码片段配置对象,表示Servlet的配置。 (8)Object类的Page相当于this对象作用:处理JSP网页,是Object类的一个实例,指的是JSP完成类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。 (9)Exception作用:处理JSP文件执行时发生的

7、错误和异常6.如果用JSP开发一个聊天程序,不用数据库存储聊天纪录,请问聊天记录最好存储在中。Application7.doPost,doGet的区别?1。当你直接访问一个servlet时,调用的是doGet方法。2。如果你的html里面规定了method访问哪个方法,则调用该方法。3。get和post提交的数据量是不一样的.get好似最多只能在url后跟8K,post没这个限制8.jsp乱码如何解决,几种解决方案。?一、JSP页面显示乱码二、表单提交中文时出现乱码三、数据库连接时出现乱码9.页面间对象传递的方法request,session,application,cookie等reques

8、t.setAttribute(key,value)session.setAttribute(key,value)application.setAttribute(key,value)10.我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?text=newString(text.getBytes(“iso8859-1),GBK);首先以“iso8859-1解码为byte数组,再用“GBK重构字符串11.简单介绍一下servletservlet容器:负责处理客户请求、把请求传送给servlet并把结果返回给客户。不同程序的容器实际完成可能有

9、所变化,但容器与servlet之间的接口是由servletAPI定义好的,这个接口定义了servlet容器在servlet上要调用的方法及传递给servlet的对象类。servlet的生命周期: servlet容器创立servlet的一个实例容器调用该实例的init()方法如果容器对该servlet有请求,则调用此实例的service()方法容器在销毁本实例前调用它的destroy()方法销毁并标记该实例以供作为垃圾搜集一旦请求了一个servlet,就没有方法阻挡容器执行一个完整的生命周期。容器在servlet首次被调用时创立它的一个实例,并保持该实例在内存中,让它对全部的请求进行处理。容器可

10、以决定在任何时候把这个实例从内存中移走。在典型的模型中,容器为每个servlet创立一个单独的实例,容器并不会每接到一个请求就创立一个新线程,而是使用一个线程池来动态的将线程分配给到来的请求,但是这从servlet的观点来看,效果和为每个请求创立一个新线程的效果相同。12.BS与CS的联系与区别。B/S模式是指在TCP/IP的支持下,以HTTP为传输协议,客户端通过Browser访问Web效劳器以及与之相连的后台数据库的技术及体系结构。它由扫瞄器、Web效劳器、应用效劳器和数据库效劳器组成。客户端的扫瞄器通过URL访问Web效劳器,Web效劳器请求数据库效劳器,并将获得的结果以HTML形式返回

11、客户端扫瞄器。c/s在系统机构上和B/S相似,不过需要在客户端安装一个客户端软件,由这个软件对效劳器的数据进行读写,就像我们常用的qq,就是这种模式。13.JSP与SERVLET的区别。JSP先编译成SERVLET然后再编译成CLASS文件JSP-SERVLET-JAVA文件-CLASSjsp主要做视图层,servlet主要做操纵层14.JSP中动态INCLUDE与静态INCLUDE的区别?动态INCLUDE用jsp:include动作完成它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态INCLUDE用include伪码完成,定不会检查所含文件的变化,适用于包含静态页面

12、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-Thro

13、wab的子类16.四种会话跟踪技术会话跟踪是为了跟踪用户于service之间的屡次交互.1.cookie也就是我们常见的在C盘/文件夹下有一个COOKIE目录2.session比Cookie平安.不可见.但占用srevice资源3.url重写.这是在用户的IE禁止Cookie的时候采纳的方法。因为不管是Cookie还是session都要借助4.隐藏域17.和的区别用于在JSP页面中嵌入Java脚本用于在JSP页面中申明变量或方法,可以在该页面中的脚本中调用,声明的变量相当于Servlet中的定义的成员变量。18.你认为哪种分页效率最高?JSP,MYSQL,SQL2005.SQL2005效率高:

14、因为mysql的分页还是先查出全部的记录,再从起始位置开始查出所需要的记录,而SQL2005不会查全部记录,只查筛选后所需要的记录19.简单说明下你对servlet的认识及其Servlet的根本架构、生命周期HttpServlet类是一个抽象类,可以从该类派生出一个子类来完成一个HttpServlet,接受来自Web站点的请求该请求来自访问该Web站点的客户扫瞄器,并将处理后的响应结果发回Web站点Web站点再将响应结果发送给客户扫瞄器,在HttpServlet的子类中,必须至少重载下表中的其中一种方法。方法名doGet如果Servlet支持HttpGET请求,用于HttpGET请求doPos

15、t如果Servlet支持HttpPOST请求,用于HttpPOST请求doPut如果Servlet支持HttpPUT请求,用于HttpPUT请求doDelete如果Servlet支持HttpDELETE请求,用于HttpDELETE请求init和destroy如果需要治理Servlet生命周期内所持有资源,可以重载这两个方法通常,不重载service方法,对于上表中的每一种HTTP请求,service方法通过分派它们到相应的Handler线程doXXX方法来处理这些标准的HTTP请求。同样地,通常也不重载doOptions和doTrace方法,service方法通过分派它们到doTrace和d

16、oOptions来支持HTTP1.1 TRACE和OPTIONS。Servlet通常运行在多线程的效劳器中,因此,所编写的Servlet代码必须能够处理并行请求和对数据资源的同步访问。共享资源包含内存中的数据例如:实例或类变量和外部对象例如:文件、数据库连接或网络连接。Protected void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException从service方法授并处理HTTP GET请求。GET方法同意客户读取来自Web效劳器的信息,客户通过传递一个带URL

17、的查询字符串可以告诉效劳器它需什么信息。重载支持GET请求的doGet方法还将自动支持HTTP HEAD请求,HEAD请求也是一个GET请求,它得到的返回响应中只有一个请求头header字段,而没有响应信息的内容。如果重载方法,应该从该请求读数据,在响应中设置整个headers,访问PrintWriter或输出流对象,最后写响应数据。当设置headers时,应确保包含content type和encoding。如果使用PrintWriter对象返回响应,在存取PrintWriter对象之前必须设置content type。Servlet引擎必须在写响应数据之前写headers,因为在写数据之后

18、headers随时都可能被刷新。20.简单描述下数据连接池的工作机制是什么?数据库连接池在初始化时将创立肯定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被参加到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到以下几个因素:1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费; 2)最大连

19、接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被参加到等待队列中,这会影响之后的数据库操作。3)如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。21.jsp乱码如何解决,给出三种以上的对应解决方案,并给出对应的程序案例;一、JSP页面显示乱码二、表单提交中文时出现乱码 request.seCharacterEncoding(“gb2312)对请求进行统一编码三、数据库连接出

20、现乱码要涉及中文的地方全部是乱码,解决方法:在数据库的数据库URL中加上useUnicode=true&characterEncoding=GBK就OK了。四、通过过滤器完成五、在server.xml中的设置编码格式22.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一局部,临时不用局部细节。抽象包含两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并且同意和鼓舞类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为

21、类继承。新类继承了原始类的特性,新类称为原始类的派生类子类,而原始类称为新类的基类父类。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特别的需要。3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个根本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受爱护的接口访问其他对象。4. 多态性:多态性是指同意不同类的对象对同一消息作出响应。多态性包含参数化多态性和包含多态性。多态性语言具有灵敏、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。23.String是最根本的数据类型吗?根

22、本数据类型包含byte、int、char、long、float、double、boolean和short。类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节约空间,我们应该用StringBuffer类24.int 和 Integer 有什么区别Java 提供两种不同的类型:引用类型和原始类型或内置类型。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类:booleanBoolean charCharacter byteByte shortShortintInteger longLong flo

23、atFloat doubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包含:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。25.String 和StringBuffer的区别JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进

24、行修改。当你了解字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。26.运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。27.说出ArrayList,Vector, LinkedList的存储性能和特性ArrayList和Vector都是使用数组方法存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都同意直接按序号

25、索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法线程平安,通常性能上较ArrayList差,而LinkedList使用双向链表完成存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。28.Collection 和 Collections的区别。 Collection是集合类的上级接口,继承与他的接口主要有Set 和List.Collections是针对集合类的一个援助类,他提供一系列静态方法完成对各种集合的搜索、排序、线程平安化等操作。29.&和&的区别。 &和

26、&都可作为逻辑运算符“与使用,但是&是“短路与,运算时先推断符号前面的表达式的值,如果能够确定整个表达式的值,则不进行符号后面的表达式的运算。其它,&也可作为位运算符使用。30.HashMap和Hashtable的区别。 HashMap是Hashtable的轻量级完成非线程平安的完成,他们都完成了Map接口,主要区别在于HashMap同意空null键值key,由于非线程平安,效率上可能高于Hashtable。HashMap同意将null作为一个entry的key或者value,而Hashtable不同意。HashMap把Hashtable的contains方法去掉了,改成containsval

27、ue和containsKey。因为contains方法简单让人引起误解。 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个完成。最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法完成同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采纳的hash/rehash算法都大概一样,所以性能不会有很大的差异。31.final, finally, finalize的区别。 final 用于声明属性,方法和类,分

28、别表示属性不可变,方法不可覆盖,类不可继承。finally是异常处理语句结构的一局部,表示总是执行。finalize是Object类的一个方法,在垃圾搜集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾搜集时的其他资源回收,例如关闭文件等。32.sleep() 和 wait() 有什么区别? sleep是线程类Thread的方法,导致此线程暂停执行指定时间,给执行时机给其他线程,但是监控状态依旧保持,到时后会自动恢复。调用sleep不会释放对象锁。wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify

29、方法或notifyAll后本线程才进入对象锁定池打算获得对象锁进入运行状态。33.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被屏蔽了。如果在一个类中定义了多个同名的方法,它们或有不同

30、的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。34.error和exception有什么区别?error 表示恢复不是不可能但很困难的情况下的一种严峻问题。比方说内存溢出。不可能盼望程序能处理这样的情况。exception 表示一种设计或完成问题。也就是说,它表示如果程序运行正常,从不会发生的情况。35.同步和异步有何异同,在什么情况下分别使用他们?举例说明。如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当应用

31、程序在对象上调用了一个需要花费很长时间来执行的方法,并且不期望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采纳异步途径往往更有效率。36.abstract class和interface有什么区别?声明方法的存在而不去完成它的类被叫做抽象类abstract class,它用于要创立一个表达某些根本行为的类,并为该类声明方法,但不能在该类中完成该类的情况。不能创立abstract 类的实例。然而可以创立一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的全部抽象方法提供完成,否则它们也是抽象类。取而代之,在子类中完成该方法。了解其

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1