javaEE阶段常见面试题题锦
1、Servlet执行时一般实现哪几个方法?
doGet(HttpServletRequest request,HttpServletResponse response)moon可以作为英文名吗
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应用程序的配置信息(在l中配置)中获取初始化的参数信息。在初始化期间,如果发生错误,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 应用程序对象maven的repository什么意思
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)地址栏仍为原来的页面显示URL
3)多个页面共用request对象
4)只能在同一工程内跳转
数据库开发软件有哪些java常见笔试题5)forward下面的代码不在编译。
redirect: 1)此行为是客户端行为
2)地址栏显示新页面URL
3)多个页面不共用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 Bytes("ios8859-1"),"utf-8");
12、JDBC中,Statement ,PreparedStatement的区别是什么?
Statement 接口提供了执行语句和获取结果的基本方法。
PreparedStatement 接口添加了处理IN 参数的方法。可以进行预编译,提高速度。
13、说出数据连接池的工作机制是什么?
J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。(通过参数可以决定最大连接数是多少,服务器启动的时候建立多少连接,池中需要维持多少空闲连接等。)当使用的连接调用完成后,就可以讲连接close,这个时候池驱动程序将此连接放回连接池并且标记为空闲,其他调用就可以使用这个连接。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论