javaEE阶段常见面试题题锦.doc_第1页
javaEE阶段常见面试题题锦.doc_第2页
javaEE阶段常见面试题题锦.doc_第3页
javaEE阶段常见面试题题锦.doc_第4页
javaEE阶段常见面试题题锦.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 Servlet执行时一般实现哪几个方法?doGet(HttpServletRequest request,HttpServletResponse response)doPost(HttpServletRequest request,HttpServletResponse response)init()destroy()2、 说出Servlet的生命周期?Servlet运行在Servlet容器中,其生命周期由容器来管理。Servlet的生命周期通过javax.servlet.Servlet接口中的init()、service()和destroy()方法来表示。Servlet的生命周期包含了下面4个阶段:(1)加载和实例化Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。(2)初始化在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,如建立数据库的连接,获取配置信息等。对于每一个Servlet实例,init()方法只被调用一次。在初始化期间,Servlet实例可以使用容器为它准备的ServletConfig对象从Web应用程序的配置信息(在web.xml中配置)中获取初始化的参数信息。在初始化期间,如果发生错误,Servlet实例可以抛出ServletException异常来通知容器。(3)请求处理Servlet容器调用Servlet的service()方法对请求进行处理。要注意的是,在service()方法调用之前,init()方法必须成功执行。在service()方法中,Servlet实例通过ServletRequest对象得到客户端的相关信息和请求信息,在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。在service()方法执行期间,如果发生错误,Servlet实例可以抛出ServletException异常。(4)服务终止当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收。如果再次需要这个Servlet处理请求,Servlet容器会创建一个新的Servlet实例。在整个Servlet的生命周期过程中,创建Servlet实例、调用实例的init()和destroy()方法都只进行一次,当初始化完成后,Servlet容器会将该实例保存在内存中,通过调用它的service()方法,为接收到的请求服务3、 请描述Session与Cookie的异同之处具体来说cookie机制采用的是在客户端保持状态的方案。存储在客户端,可以设定时间限制,若不设定时间则不会消亡。它是在用户端的会话状态的存贮机制,他需要用户打开客户端的cookie支持。而session机制采用的是一种在客户端与服务器之间保持状态的解决方案。存储在服务端,必须有时间限定,若不设置,在一段时间后自动消亡。4、 什么情况下调用doGet()和doPost()?1)、Form表单的method方法如果是post的话当表单提交的时候就要调用doPost,其他的访问方式比如链接访问,表单里method为get表单提交时候调用doGet。2)、地址栏里直接提交都默认用get方法提交。3)、这两种方法有本质的区别,get传递参数附加在url后,大小个数有严格限制且只能是字符串(255)。post的参数传递不通过url,使用数据包传递,所以可以很大,也可以传递二进制数据,如文件的上传。5、java web的四种作用域page 是代表与一个页面相关的对象和属性。一个页面由一个编译好的Java servlet 类.这既包括servlet 又包括被编译成servlet 的JSP页面。当前页面有效。request代表与Web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个Web组件。比如forward指令就可以使请求跨越多个页面。同一请求内有效。session 是代表与用于某个Web客户机的一个用户体验相关的对象和属性。一个 Web会话可以也经常会跨越多个客户机请求。一次会话(session)通常持续于用户打开浏览器后的一系列访问中。从用户登录到用户退出之间有效。application 是代表与整个Web应用程序相关的对象和属性。这实质上是跨越整个 Web应用程序,包括多个页面、请求和会话的一个全局作用域。从服务器启动到服务器关闭之间有效。6、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?1)、Jsp是页面技术,但是编译后的文件就是servlet文件。2)、Servlet是服务器端的小程序,主要是用来处理请求的。3)、Jsp有自己的标签。4)、JSP侧重于视图,Servlet主要用于控制逻辑7、JSP的内置对象?1) 、request 代表请求2) 、response 响应对象3) 、out输出对象4) 、page代表当前页面5) 、application应用程序对象6) 、pageCotext 页面上下文7) 、config 配置对象8) 、session会话9) 、exception 异常8、说一下常用的jsp标准动作Jsp:useBean动作,主要功能是用来实例化一个bean对象Jsp:setProperty动作,主要是用来给bean对象中的某些属性或单个属性赋值Jsp:getProperty动作,主要用来显示bean对象中的属性值Jsp:forward动作,主要用来进行页面跳转,属于请求转发模式Jsp:include动作,主要用来导入页面,属于页面的动态导入Jsp:param动作,主要是在forward跳转或页面include导入时进行参数值传递的Jsp:plugin动作,主要是引入插件9、JSP中动态INCLUDE与静态INCLUDE的区别?动态导入:先编译后包含静态导入:先包含后编译10、forward 和redirect的区别?forward: 1)此行为是服务器端行为。2)地址栏仍为原来的页面显示URL3)多个页面共用request对象4)只能在同一工程内跳转5) forward下面的代码不在编译。redirect: 1)此行为是客户端行为2)地址栏显示新页面URL3)多个页面不共用requst对象4)可以在不同工程中跳转5)redirect下面的代码也编译,编译后才跳转11、在web开发中我们经常使用iso8859-1,我们如何实现编码的转化?使用request对象 request.setCharacterEncoding(utf-8);使用response对象response.setCharacterEncoding(utf-8); response.setContentType(text/html;charset=utf-8);通过流进行转换: String name = highcom工程有限公司; name = new String(name.getBytes(ios8859-1),utf-8);12、JDBC中,Statement ,PreparedStatement的区别是什么?Statement 接口提供了执行语句和获取结果的基本方法。PreparedStatement 接口添加了处理 IN 参数的方法。可以进行预编译,提高速度。13、说出数据连接池的工作机制是什么?J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。(通过参数可以决定最大连接数是多少,服务器启动的时候建立多少连接,池中需要维持多少空闲连接等。)当使用的连接调用完成后,就可以讲连接close,这个时候池驱动程序将此连接放回连接池并且标记为空闲,其他调用就可以使用这个连接。14、 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(责任链模式)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。15、EJB与JAVA BEAN的区别?EJB的英文全称是企业级的JavaBean两者是完全不同的JavaBean是一个组件,而EJB就是一个组建框架JavaBean面向的是业务逻辑和表示层的显示,通过编写一个JavaBean,可以将业务逻辑的事件和事务都放在其中,然后通过它的变量属性将所需要的内容在表示层传递显示。EJB主要分为会话bean,实体bean,消息驱动bean。是部署在服务器上的可执行组建或商业对象。EJB有一个部署描述符,通过这个部署描述符可以对EJB的属性进行描述。EJB不和表示层交互。16、说一下常用的JSTL?我们通常使用标签去替换jsp页面中的代码段和java表达式,常用的有EL表达式,forEach标签,if标签,choose标签,set标签,out标签等,这些都是jstl(jsp标准标签库)中核心库的标签,其uri是/jsp/jstl/core,除此还有一些其他的标签库,如函数,sql,xml等,不过我们常用的就是core,而且现在多使用框架编程,struts框架有其自带的标签库,对我们来说最重要的是使用标签的习惯和意识。17、简单描述一下MVC的流程在MVC模型中,M代表model,模型层;V代表view,视图层;C代表controller,控制层。首先由浏览器browser发送请求到达控制器(controller),在控制器中可以选择接下来的操作,如果不需要对数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论