JAEE面试题.docx

上传人:b****5 文档编号:6217017 上传时间:2023-01-04 格式:DOCX 页数:18 大小:35.68KB
下载 相关 举报
JAEE面试题.docx_第1页
第1页 / 共18页
JAEE面试题.docx_第2页
第2页 / 共18页
JAEE面试题.docx_第3页
第3页 / 共18页
JAEE面试题.docx_第4页
第4页 / 共18页
JAEE面试题.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

JAEE面试题.docx

《JAEE面试题.docx》由会员分享,可在线阅读,更多相关《JAEE面试题.docx(18页珍藏版)》请在冰豆网上搜索。

JAEE面试题.docx

JAEE面试题

JAEE面试题

第一部分:

Servlet/JSP快速入门

1.请列举至少6种javaEE技术,并简述其作用。

解析:

javaEE是一系列的技术,主要包扩13种。

对于开发人员来说,了解几种主要的技术是非常必要的,例如JDBC、JSP、Servlet、XML、JNDI、JMS、JTA等。

参考答案:

(1)JDBC(JavaDatabaseConnectivity):

用来访问数据库的API。

(2)JavaServlet:

是一种小型的Java程序,扩展了web服务器的功能。

(3)JSP(JavaServerPages):

JSP页面由HTM代码和嵌入其中的Java代码组成,用来实现动态视图。

(4)JNDI(JavaNameandDirectoryInterface):

JNDIAPI被用于访问名字和目录服务。

(5)EJB(EnterpriseJavaBean):

实现业务逻辑的组件,可以构成分布式系统。

(6)RMI(RemoteMethodInvoke):

调用远程对象方法。

(7)JavaIDL/CORBA:

将Java和CORBA集成在一起。

(8)XML(ExtensibleMarkupLanguage):

可以用它来定义其他标记语言的语言。

(9)JMS(JavaMessageService):

用于和消息中间件相互通信的API。

(10)JTA(JavaTransactionAchitecture):

一种标准的API,可以访问各种事务管理器。

(11)JTS(JavaTransactionService):

是CORBAOTS事务监控的基本实现。

(12)JavaMail:

用于存取邮件服务的API。

(13)JAF(JavaBeansActivationFramework):

JavaMail利用JAF来处理MIME编码的邮件附件。

2.在web.xml文件中配置Servlet时,主要配置哪些信息?

解析:

使用IDE开发Servlet时,配置信息可以通过可视化方式定义。

然而对于web应用开发员来说,了解Servlet的配置非常必要,能够在必要的时候手动进行修改。

参考答案:

配置Servlet时,主要配置以及,如下所示:

IndexServlet

com.etc.servlet.IndexServlet

IndexServlet

/IndexServlet

其中是Servlet源文件的名字,是自定义的名字,往往使用类名。

是其中非常重要的信息,用来配置访问Servlet的逻辑路径。

必须以/开头。

com.etc.FirstServlet

FristServlet

/frist

其中,是Servlet源文件的名字,是自定义的名字,往往使用类名。

是非常重要的信息,用来配置访问Servlet的逻辑路径,必须以/开头。

3.如果通过一个链接访问Servlet,默认调用Servlet中的那个方法提供服务?

解析度与不同的HTTP请求方法Servlet中都定于了对应的doXXXX方法接受请求。

一超级链接的方式提交请求,默认的GET方式,所以将调用Servlet中的doGet方法。

程序员应该熟悉每种用户请求对应的HTTP方式。

4.如果一个表单没有显示指定method属性值,那么默认使用什么方法提交请求?

解析表单提交时Web应用中常见的请求方式,一般情况下,建议使用POST方式提交请求,因为这种方式请求参数在请求体重传递,不会显示在URL中。

但是,如果在HTML的标记中没有使用method属性指定提交方式,默认是GET方式。

参考答案默认使用GET方式。

5.请求接口中的哪个方法可以返回请求参数的值?

哪个方法可以把请求参数的多个值同时返回?

解析Web应用中复杂重要的的功能往往通过表单提交实现,用户利用表单可以输入很多信息,这些信息被称为请求参数。

在Web应用开发中,获得请求参数几乎是使用最多的功能,程序员应该熟练掌握获得请求参数有关的所有方法。

参考答案请求接口中的getParameter方法可以返回摸一个请求参数的值,getParaneterValues方法可以把摸个请求参数的多个值同时返回,封装到一个数组中,例如复框的多个值。

6.响应接口中的哪个方法可以设置内容类型?

用简单代码演示。

解析响应可以封装服务器端返回到客户端的数据。

而这些数据的格式和编码都需要使用响应中的方法进行设置。

如果设置错误,客户端浏览器将无法显示。

参考答案响应中的setContentType方法可以设置内容类型,如下所示:

//设置响应的内容类型

Respose.setContentType(“text/htmllcharset=gb2312”);

上述代码中设置响应的内容类型是text或者html,编码格式是gb2312.

7.简述JSP的运行过程

解析很多初级开发员对JSP的理解比较肤浅,不熟悉JSP的运行过程,JSP出错时很难排错,开发员必须熟悉JSP的运行过程,这样才能编写出优良的JSP并能顺利调试。

参考答案

(1)容器将JSP翻译成符合Servlet规范的类。

(2)容器编译JSP生成的类。

(3)容器初始化JSP实例;

(4)将请求和相应对象传递给JSP实例的服务方法,提供服务。

8.JSP中的<%%>和<%=%>有什么区别?

解析JSP从表面上看就是HTML代码中混合了Java代码,而为了区别Java代码和HTML代码,规范中定义了一些符号,即脚本元素。

初级开发员应该从熟悉这些脚本元素开始,逐步熟悉JSP的开发。

参考答案<%%>称为脚本片段,可以包含任何符合语法的Java代码,可以同时包含多行代码。

而<%=%>称为表达式,=号后面是一个表达式,这个表达式的值将被输出到浏览器中,表达式后面不用使用分号结束,而且每个<%=%>只能包含一个表达式。

9.JDBC编程中主要有哪几种语句对象?

有什么区别?

解析JDBC主要用来操作数据库,操作数据库本质上是通过执行SQL语句完成。

所以,JDBC编程中,能够用来执行SQL语句的语句对象非常重要,每种语句对象都存在一些区别,开发员应该熟悉并掌握。

参考答案JDBC中主要有以下3种语句对象:

(1)Statement:

Statement是所有语句对象的父接口,定义了语句对象的规范。

(2)PreparedStatement:

预编译的语句对象,将待执行的语句进行了预编译,可以在执行时动态指定SQL语句中的参数。

(3)CallableStatement:

可以用来调用数据库的存储过程。

10、简述使用JDBC操作数据库的主要步骤。

解析不论使用什么数据库软件,JDBC操作数据库的步骤都基本相同。

开发员一定需要注意的是,JDBC的连接对象、语句对象、结果集等都是高开销对象,使用完毕一定要在finally语句中进行关闭处理,否则将降低应用的性能。

参考答案

(1)加载驱动类;

(2)获得连接对象;

(3)获得语句对象;

(4)执行SQL语句,如果是查询语句,需要处理结果集;

(5)关闭结果集。

语句对象。

数据库连接对象。

11.说明MVC模式的含义,并用图表示web应用中MVC模式中每部分之间的关系

解析对于web开发员来说,正确理解MVC模式非常关键。

目前,大多数web应用都是基于MVC模式进行架构,也有很多MVC框架能够帮助开发员快速搭建MVC应用。

值得注意的是,使用JSP,Servlet,JavaBean可以构建MVC模式的应用,但是MVC是一种架构思想,并不仅局限于JSP,Servlet,JavaBean这个范围内,可以使用很多其他技术实现。

参考答案MVC本来应用于桌面程序中,M是指数据模型,V是指用户界面,C则是控制器,至今已被广泛使用。

使用MVC的目的是将M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。

C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

MVC模式是近些年被JavaEE平台广泛使用的设计模式。

Web应用中的MVC模式与桌面程序中的MVC模式有所不同。

由于web应用大多基于请求响应模式,因此往往做不到“一旦M改变,V应该同步更新”。

MVC每部分之间的关系如下

 

第二部分详解Servlet组件开发

1.请说明Servlet的声明周期

解析Servlet作为服务器端的组件,需要在容器中才能运行,容器管理Servlet的生命周期。

对于web开发员来说,了解Servlet的声明周期才能更好地进行Servlet编程。

参考答案

阶段一:

初始化

客户端第一次访问Servlet,或者容器加载应用时(配置),容器调用Servlet类的构造方法,实例化一个Servlet对象,该对象存在于服务器端内存中,容器将启动多线程并发访问该对象。

实例化结束后,将对Servlet实例进行初始化,先调用init(ServletConfig)方法,在调用init()方法

阶段二:

提供服务

Servlet初始化成功后,容器调用Servlet接口中定义的service(ServletRequestreq,ServletResponseres)方法。

Service将请求和响应对象转换成HttpServletRequestreq,HttpServletResponseresp)方法。

HttpServlet中的service方法,将请求根据请求方式转发给对应的doXXX方法,如doGet、doPost

阶段三销毁

Servlet提供服务结束,或者一段时间后,容器将销毁Servlet实例。

销毁Servlet实例前,容器先调用Servlet接口中定义的destroy方法,允许完成一些自定义的操作。

2.什么事Servlet的初始化参数?

如何配置?

如何在程序中获得?

解析如果摸个Servlet需要一些参数,可以再web.xml中今夕配置,而不必要硬编码到源代码中,这样可以方便地进行修改。

值得注意的事,Servlet的初始化参数只能在当前的Servlet中使用,其他Servlet中无法使用。

参考答案Servlet的初始化参数指的是初始化Servlet实例时的参数,可以再web.xml中尽享配置,如下所示:

TestServlet

com.etcTestServlet

level

2.1

上述配置中,使用为TestServlet配置了一个名字为level的初始化参数,值为2.1.可以使用多个元素配置多个初始化参数。

在TestServlet中,可以直接调用getInitParameter(“level”)方法返回该参数的值。

3.请列出请求接口中至少三个获得请求头的方法。

解析当用户向服务器端请求时,HTTP请求头的信息也随之被发送到服务器。

请求接口中定义了获得请求头的方法,实际应用中常常需要获得某些请求头的值,根据请求头的值判断客户端的情况进行编程。

开饭元应该熟悉各种请求头的含义,以及获得请求头的方法。

参考答案getHeader方法可以根据请求头名字获得请求头值;getIntHeader方法用来返回整型请求头的值;getDateHeader方法用来返回日期类型请求头的值。

4.响应接口中addHeader方法和setHeader方法有什么区别?

解析响应封装了服务器端发送给客户端的信息,响应接口中定义了操作响应头的方法,有些方法容易混淆,开发员应该辨别清楚。

参考答案addHeader方法用来向响应中添加一个头,如果盖头的名字已经存在,name允许一个头包含多个值:

setHeader方法向响应中添加一个头信息,如果头寸在,则覆盖已有的值。

5.Servlet跳转到JSP常常有两种方法:

一种称为响应重定向,一种称为请求转发。

请用代码展示两种方法,并说明其区别。

解析Servlet作为MVC中的控制器,主要的作用就是接受客户端请求,获得请求信息后调用业务逻辑,然后根据业务逻辑的处理结果跳转到不同的视图显示给用户。

开发员必须掌握常用的两种跳转方法,即响应重定向和请求转发。

实际工作中常用的是请求转发,很多MVC框架默认也是使用请求转发.

参考答案

响应重定向response.sendRedirect(“index.jsp”);

请求转发:

request.getRequestDispantcher(“index.jsp”).forward(request,respinse);

响应重定向相当于让客户端向重定向的资源重新发送一个请求。

当前请求中的信息无法传递到下一个资源。

而请求转发显得刚玉吧当前的请求转发到下一个资源。

当前请求中的信息将可以转递到下一个资源。

6.请求接口中的提供了处理属性的方法,请列举每个方法并说明其作用。

解析控制器调用业务逻辑后,往往需要把一些处理的结果返回到视图上进行显示。

这种时候,属性的概念就至关重要。

请求属性是最常用的一种属性,实在请求范围内有效的属性。

开发员一定要正确理解每种范围的属性并能够正确使用。

参考答案请求接口中有三个和属性有关的方法,分别是:

setAttribute(String,Object),可以将一个对象设置一个名字,存储到请求中:

getAttribute(String),可以根据属性的名字返回属性值:

removeAttribute(String),可以根据属性的名字删除属性。

7.cookie有什么作用?

如何使用Servlet的API返回请求中的cookie?

如何将cookie保存到客户端?

解析cookie是保存在客户端的小文本,合理地使用cookie能够增强用户体验。

然而,开发员使用cookie时,一定不要把涉及用户隐私的内容保存到cookie中,如银行账号的密码等。

另外,cookie可以被用户人为禁止或删除,这也是使用cookie时需要考虑的问题。

参考答案cookie用来将一些信息保存到客户端,已被用户下次访问同一应用时,能够自动将这些信息发送到服务器端。

服务器端通过使用cookie编程,能够提高用户体验。

请求接口中提供了getCookie方法返回所有的cookie,响应接口提供了addCookie方法能够将cookie对象返回到客户端。

8.如何获得会话对象?

请用简单代码展示。

解析web应用中,常常需要使用会话对象。

会话是指客户端对服务器端一次连续的访问过程。

开发人员应该熟悉会话相关的操作。

参考答案可以通过请求对象获得会话对象,如request.getSession()。

如果当前存在会话,直接返回使用:

如果不存在,则创建一个新的会话返回。

还有一个重载的getSession方法,具有一个boolean类型的参数,其中request.getSession(true)和request.get

Session()完全相同,而request.getSession(false)意思是如果存在会话对象就返回使用,如果不存在则返回null。

9.有哪几种方式可以设置会话有效时间?

解析会话对象都被存储在容器中,如果很长时间不使用,就应该被销毁,以保证内存的有效使用。

容器总是会为会话设置默认的有效时间,大多数是30分钟,也可以自己定义会话的有效时间。

参考答案有两种方法可以设置会话的有效时间,一种是在web.xml中配置,如下所示:

40

使用这种方式设置的有效时间,是对当前应用中所有会话都有效,单位是分钟。

还有一种方式是使用HttpSession中的setMaxInterval(int)方法,这个方法能够设定最大不活动时间,超过这个时间会话没有被访问,即被容器销毁。

这个方法只能够控制调用该方法的会话对象,不会对所有会话对象生效。

10.什么是URL重写?

能解决什么问题?

解析大多数容器实现会话,都是基于cookie机制实现的。

然而,cookie可能被用户人为地设置失效,这种情况下,会话页将无效。

为了能够在cookie失效时依然使会话有效,可以使用URL重写策略。

如果使用某些MVC框架编程,如Struts,这些问题都已经在框架层面得到了解决。

参考答案URL重写就是使用响应接口中的encodeURL(path)方法,把指定的path重新编码,将名字是JSESSIONID的cookie的值强制加到path对应的URL中,传递到服务器端,这样就能够保证即使cookie被阻止,服务器端永远能得到会话对象的ID值,使得会话有效。

11.会话接口中提供了处理会话属性的方法,请列举每个方法并说明其作用。

解析如果某些对象需要在会话范围内有效,那么就可以考虑使用会话范围的属性。

保存在会话范围内的属性,在当前会话中一直有效。

然而,由于会话的生命中期较长,所以属性也将随着会话一直存在于内存中。

只有当必须使用会话属性时再考虑使用,能用请求属性解决的场合就使用请求属性,开发员必须能够正确选择不同范围属性进行使用。

参考答案会话接口中有三个和属性有关的方法,分别是:

setAttribute(String,Object),可以将一个对象设置一个名字,存储在会话中;getAttritute(String),可以跟据属性的名字返回属性值;removeAttribute(String),可以根据属性的名字删除属性。

12.什么是上下文对象?

如何获得上下文对象?

解析上下文是一个全局的概念,每个应用都有一个唯一的上下文对象。

上下文接口中定义了一系列的方法,开发员应该熟悉这个接口的常用方法。

参考答案当容器启动时,会加载容器中的每一个应用,并且针对每一个应用创建一个对象,称为上下文对象。

每个应用都只有一个唯一的上下文对象,ServletAPI中提供了ServletContext接口来表示上下文对象。

要在Servlet中获得上下文对象非常简单,直接使用getServletContext()方法就可以返回当前的上下文对象,在JSP中可以直接使用application内置对象使用上下文。

13.如何配置上下文参数?

在程序中如何获得上下文参数?

解析如果在应用中的很多地方,都需要使用某一个参数,那么就可以配置一个上下文参数。

上下文参数与Servlet初始化参数不同的是,上下文参数能够在应用所有资源里使用,而Servlet初始化参数在当前Servlet中使用。

参考答案在web.xml中可以使用配置上下文参数,如下所示:

path

/WEB-INF/props

要获得上下文参数,可以使用ServletContext接口中的getInitParameter方法返回。

14、上下文接口中提供了处理属性的方法,请列举每个方法并说明其作用?

解析:

除了请求属性、会话属性外,还可以使用上下文属性。

如果某个对象在上下文范围内使用,就可以考虑使用上下文属性存储。

上下文的生命周期很长,应用加载时初始化,直到应用重新加载才被销毁,所以只有必须使用上下文属性时方可使用,否则应该尽量使用请求属性。

参考答案:

上下文接口中有三个和属性有关的方法,分别是setAttribute(String,Object),可以将一个对象设置一个名字,存储到上下文范围中:

getAttribute(String),可以根据属性的名字返回属性值:

removeAttribute(String),可以根据属性的名字删除属性。

15、说明请求属性、会话属性、上下文属性的区别?

解析:

属性在Web应用开发中占有举足轻重的地位,是用来在组件之间传递对象的主要方式。

主要有三个对象可以储存属性,即请求、会话、上下文。

由于请求生命周期最短,所以应该尽量使用请求属性,而只有在必须用会话属性或者必须用上下文属性时菜考虑使用这两种属性。

参考答案:

请求属性是请求范围内的属性,除了请求转发外,只在当前的请求中有效:

会话属性是会话范围内的属性,只要会话没有失效,就一直随着当前的会话所在:

上下文属性是上下文范围的属性,只要容器没有重新加载应用,就一直随着上下文对象存在。

应该尽量使用请求属性实现功能,只有在必须用会话属性或者必须用上下文属性时才考虑使用这两种属性。

16、请说明ServletContextEvent什么场景下被触发,以及如何处理?

解析:

事件处理在很多时候非常有效,开发人员应该熟悉Servlet中得常用时间类别,并熟悉每种事件触发的条件。

参考答案:

当上下文对象被初始化或者被销毁时,将触发ServletContextEvent,要处理该事件,可以自定义事件处理类实现ServletContextListener接口;然后覆盖该接口中的方法,实现处理逻辑。

17、请说明HttpSessionEvent什么场景下会被触发,以及如何处理?

解析:

会话事件在很多场合可以使用,开发人员应该熟悉会话事件的触发条件以及处理方法等。

参考答案:

当会话对象有变化的时候,将触发HttpSessionEvent事件发生,例如会话被创建、会话被销毁、会话被活化、要处理该事件,有两个接口可以监听,分别是HttpSessionListener和HttpSessionActivationListener。

其中前者监听会话创建和销毁的情况,后者监听会话活化和钝化的情况。

18、如何在web.xml中配置监听器,使监听器生效?

解析监听器必须在web.xml中配置才能生效。

参考答案在web.xml中,可以使用配置监听器,如下所示:

com.etc.listener.CounterListener

19、

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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