JAVAJ2EE经典面试问题.docx

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

JAVAJ2EE经典面试问题.docx

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

JAVAJ2EE经典面试问题.docx

JAVAJ2EE经典面试问题

Web面试问题

1.css和div开发的优势?

1)显示和内容实现了分离

2)有利于搜索引擎搜索

3)有利于维护和程序的扩展。

2.谈谈页面间的参数传递有哪些方式?

1)requestrequest.setAttribute();

2)sessionsession.setAttriubte();

3)

forward>

paramname= value=/>

forward>

4)

useBeanid=class=scope=request,session>

5)request.getRequestDispatcher(“1.jsp?

name=xxxx”).forward(request,response)

3.hidden表单域有什么作用?

1)多个表单的区分

2)多个提交按钮

4.jsp有哪些内置对象?

page

pageContext===JspPageContext

session===HttpSession

request===ServletRequest

response===ServletResponse

application==servletContext

out===JspWriter

config====servletConfig

exception===jspException

5.request的作用有哪些?

1)获取客户端的参数信息request.getParameter

2)用于内部转发request.getRequestDispather().forward()

3)可以作为容器使用,保存在请求之间的信息request.getAttribute()

4)可以获取请求头信息request.getHeader();

6.session有什么作用。

1)可以作为容器,在一次会话之间保存对象信息。

2)因为http协议是无状态的协议,但是我们需要保存客户在多个请求之间的状态信息的时候,这个时候我们需要session来维持客户端的状态。

7.application有什么作用。

1)可以作为容器。

保存在application的信息可以提供给所有的jsp和servlet使用。

8.在jsp中怎样操作page作用域

pageContext.setAttribute(“age”,age,pageContext.Page_SCOPE);

9.jsp有哪些动作?

作用分别是什么?

forward/>转发到另外一个页面

useBean/>设置javabean

include>动态包含

setProperty>设置javabean属性:

setXXX()

getProperty>得到javabean属性:

getXXX();

plugin>引用插件

params/>设置转发参数

param/>

10.javaservletapi中forward()与redirect()的区别?

1)forward内部转发,客户端向服务器发送一次请求,redirect()是客户端向服务器发送了2次请求。

2)forward是request发起的。

Redirect()是response对象发起的。

Rediect()方法可以跨越不同的工程之间。

Forward只能在一个工程中使用。

3)forward不会导致地址栏改变内容。

Rediect()会导致地址栏改变。

11.class.forName的作用?

为什么要用?

1)Class.forName()表示加载一个类。

使用这种方式用于反射方式创建对象。

2)Objeco=Class.forName().newInstance();

12.在oracle大数据量下的分页解决方法?

1)SELECT*FROM

SELECTA.*,ROWNUMRN

FROM(SELECT*FROMTABLE_NAME)A

WHEREROWNUM<=40

WHERERN>=21

mySQl的分页是怎么实现的?

Selectf_id,f_namefromt_userlimit5,10

13.cookie被禁止后怎样使用session?

1)如果客户端允许cookie,那么服务器使用cookie来维持会话

2)如果客户端不允许cookie,那么服务器使用url重写来维持会话。

Response.encodeURL(“2.jsp”);

14.项目开发经历了哪几个阶段?

15.谈谈项目的体系统架构:

客户层,表示层,业务层,数据层?

16.J2EE规范中的组件技术在项目中用到了哪些?

1)servlet

2)jsp

3)jdbc

4)xml

5)jndi

17.TCP/IP通讯和UDP通迅的区别?

1)tcp通讯面向连接,经历3次握手,udp面向无连接

2)tcp是可靠的,udp不可靠

3)tcp使用的流套接字,upd使用的自寻址套接字。

Udp发送的信息都需要封装成为一个个的数据报文。

18.浏览器和WEB服务器是用什么协议通迅的?

HTTP:

这是应用层,用于将在浏览器中输入的请求数据封装成为web服务器能够理解的格式,以便于底层tcp传输。

TCP:

底层是使用TCP建立与web服务器之间的连接。

19.网络通讯中,端口有什么含义。

端口的取值范围?

端口用于区分基于TCP/IP通讯进程(通讯应用程序)。

每个基于TCP/IP应用程序都会向操作系统申请注册一个服务,这个服务用端口来表示。

本质上来说,端口就是一段内存中的缓冲区。

我们用户程序使用的端口号:

1024---65535这个范围,0—1023是系统保留。

20.说出3个常见协议的默认端口。

http----80,ftp---21pop3:

110smtp---25

21.socket是什么,它有什么作用?

Socket是通讯的端点,它屏蔽了底层的通信细节。

我们只需要面对socket就可以实现客户端和服务器之间的通信。

至于底层如何实现信息的传送,我们无需关系。

一种基于流的套接字:

tcp通讯(Socekt,ServerSocket)

一种基于数据报文的套接字(自寻址):

UDP通讯。

(DatagramSocket,DatagramPacket)

22.TCP/IP通讯的基本步骤是什么?

服务器:

1)向操作系统注服务,绑定一个端口。

这个端口代表这个服务。

ServerSocketsserverSocket=newServerSocket(9000);

2)等待客户端的连接。

serverSocket.accept();取出一个客户端的连接socket来处理

3)从socket对象中取出outputstream,inputsteram和客户端进行交互。

客户端:

1)创建一个socket对象。

Socketsocket=newSocket(host,port);创建成功,表示与服务器建立了连接。

(经过了3次握手!

2)通过socket对象,取出outputstream,inputstream输入输出流来和服务器进行信息的交互。

23.UDP通讯的基本步骤是什么?

服务器端:

1)创建一个DatagramSocket对象,然后讲这个对象和一个端口绑定。

DatagramSocketsocket=newDatagramSocket(port);

2)创建一个数据报对象DatagrampPacketp=newDatagramPacket(buffer,bufferSize);

3)将数据以数据报的形式接收:

socket.receiver(p);如果客户端没有数据报文发送过来,那么服务器会一直阻塞在这个语句位置。

但是一旦收到数据报文,那么程序会往下执行。

因此,如果要接收很多数据报文,我们讲使用循环。

客户端:

1)创建一个DatagramSocket对象,无需和具体的端口绑定

2)发送数据的时候,将数据封装在数据报文对象中,因此,我要先创建一个DatagramPacket对象。

而且还应该封装ip,port端口。

3)通过datagramSocket对象发送数据:

socket.send(p);

24.JDBC访问数据库的基本步骤是什么?

1)加载驱动Class.forName(“com.mysql.jdbc.Driver”);

2)通过驱动程序管理器DriverManager获取connection对象

3)通过连接对象connection对象获取会话。

4)通过会话执行查询或者增删改差

5)关闭资源。

25.说说preparedStatement和Statement的区别

1)preparedStatement是一个预编译会话,不再需要编译相同的sql语句,所以可以提高处理速度。

2)可以防范sql注入攻击。

26.说说事务的概念,在JDBC编程中处理事务的步骤。

事务是数据库不可分割的一系列原子属性操作,是一组不可分割的单元。

事务具有原子性,一致性,隔离性,持久性。

27.数据库连接池的原理。

为什么要使用连接池。

预先获取一定数量的连接对象,放在一个数据结构中(List,Map,Array)保存起来,当需要连接对象的时候,就从数据结构中取出一个连接对象;当使用完毕后,将连接对象放回。

这样达到了连接对象的复用效果,也提高了访问数据库的效率和性能!

28.谈谈DAO模式的原理的作用。

Dao是一种设计模式。

包括3个部分:

1)dao接口

2)dao接口的实现类,也就是数据访问对象dataaccessobject

3)po对象,也就是持久化对象,它和数据表相对应。

使用Dao设计模式实现了持久层和业务逻辑的分离。

有利于维护和程序扩展。

29.servlet和jsp有什么关系?

1)servlet,jsp是服务器的组件。

Servlet和jsp都是j2ee规范中定义的。

Jsp规范后于servlet规范。

2)jsp是html文本中嵌入了java代码,成为一种脚本。

必须经过jsp引擎转换和编译后才能成为一个servlet类。

但本质上来说,jsp就是servlet。

3)在mvc的架构中,jsp只充当了数据的显示和客户数据的输入;而servlet充当了控制器的作用。

4)客户端访问一个jsp文件资源的时候,我们无需在web.xml部署描述文件中配置,web容器直接查找对应路径下jsp文件。

然后转换和编译执行。

但是如果客户端访问一个servlet资源的时候,需要在web.xml中配置这个资源。

30.jsp是如何被容器调用和执行的?

1)当客户端第一次请求一个jsp资源的时候,jsp引擎会查找这个jsp文件并且讲它转换成为一个java文件,然后编译成为一个servlet类

2)Web容器实例化这个servlet

3)Web容器调用init()方法。

在这个init方法中,调用针对jsp的JspInit()方法。

4)Web容器调用service()方法。

在service()方法中,调用_jspService()方法。

31.编写一个servlet的步骤。

1)新写一个类,然后继承HttpServlet.

2)重写doGet()或者doPost()方法。

3)在web.xml部署描述文件中定义servlet类名称以及映射路径。

32.doGet和doPost方法各有什么作用?

1)当客户端以get方式提交的时候,service()方法调用doGet()方法处理

2)当客户端以post方式提交的时候,service()方法调用doPost()方法处理

33.为什么要为servlet配置URL映射?

1)为servlet配置URL映射,就把servlet的真正的物理路径隐藏了起来,这样客户端看到的是servlet的逻辑路径,这增强了安全性。

2)如果servlet发生了物理位置上的变化,那么客户端不会发生代码上变化,我们只需要改变web.xml就行了,这增强了程序的可维护性。

3)Web容器根据逻辑路径找到物理路径。

request.getRequestURi();

34.解释web.xml中怎样配置一个servlet?

35.servlet的类架构是什么样的。

putlicinterfaceServlet

publicabstractclassGenericServletimplementsServlet

publicabstractclassHttpServerlextendsGenericServlet

36.谈谈servlet的生命周期?

1)当第一次请求到来的时候,web容器实例化一个servlet对象

2)Web容器调用servlet对象init()方法。

3)Web容器创建或者分配一个线程,然后将servlet对象以及request,response对象传入这个线程中。

4)Web容器调用对象的service()方法。

然后根据客户端不同的请求方式,调用doGet(),doPost()方法。

5)当web容器关闭的时候,web容器会调用servlet对象的destroy()方法。

37.servlet是线程安全的吗?

为什么?

不是,因为servlet是一个多线程机制。

多线程就会涉及对共享资源的访问。

也就涉及了安全。

38.你是如何处理servlet线程安全问题的?

解决线程安全的问题,可以有3种方法:

1)在编写servlet的时候,实现SingleThreadModel这个接口。

Servlet变成了单线程机制。

2)在涉及对共享资源访问的时候,使用synchronized同步加锁,实现对共享资源的访问。

3)尽量不在servlet中定义成员变量,而使用局部变量。

这3个方法中,我们最好使用第三种方法。

这样线程安全并且性能最高。

39.如何得到客户端的请求参数?

request.getParameter(“email”);====String

request.getParameterValues(“loves”);===String[]

request.getParameterMap();====返回所有的键值对。

40.request.getParameter和request.getParameterValues的区别,它们的返回值是什么类型?

request.getParameter(“email”);====String

request.getParameterValues(“loves”);===String[]

41.response对象的作用?

1)从response对象中可以获取输出流对象,从而我们可以向客户端输出信息。

2)可以使用它来实现重定向。

response.sendRedirect();

3)可以设置响应头信息。

告诉浏览器相关的内容,比如cookie,内容类型,缓存。

4)可以使用response对象实现url重写。

42.request对象的作用范围是什么?

作用鱼范围是一次请求响应完成,也可以说只要服务器向客户端输出内容,request对象就会被销毁。

43.session对象的作用范围是什么

存在于一次会话之间。

表象上说,就是打开一个浏览器窗口,也就意味着开始了一次会话。

当关闭浏览器的时候,也就意味着关闭了会话。

实际上,只有会话超时,那么服务器才会销毁session对象。

一次会话可以跨越多个请求。

44.application对象的作用范围是什么。

一个工程或者叫做项目启动以后,application对象就会一直存在。

当web容器关闭的时候,application才会被销毁。

45.session对象是什么时候产生的,什么时候销毁的?

a)从表面现象来说,我们打开一个浏览器窗口,就开始了一次新的会话。

b)我请求静态页面,不能开始一次会话。

c)我请求一个servlet的资源的时候呢?

会话能否产生?

对于servlet来说,必须通过request.getSession()或者request.getSession(true)的方式显示创建。

对于服务器来说:

request.getSession(),后面做了哪些工作呢:

1.服务器产生一个唯一的sessionId:

2.服务器创建一个cookie,并讲JSESSIONID作为键和值放置在cookie中。

3.服务器将cookie放置在响应头中,随着其他的响应一起发往客户端。

这个会话cookie保存在浏览器的内存中。

4.客户端通过同一个浏览器再次向服务器发起请求的时候,会将保存在浏览器内存中的会话cookie和请求参数一起发往服务器。

d)对于请求的是jsp文件来说呢?

会话自动创建。

e)从表面现象来说,我关闭一个浏览器就是关闭了一次会话。

但是从本质山过来说,关闭浏览器并没有真正销毁会话。

会话被销毁的几种方式:

1)会话超时:

httpSession.setMaxInactiveInternal(30);这里的30表示s

2)手工方式让会话失效:

httpSession.invalidate();

f)服务器通过唯一的jsessionid来标示同一个会话的。

它是通过cookie和url重写来维持会话的。

46.session的实现原理是什么?

因为http协议是一个无状态的协议,所以为了维护和保存客户端的状态,使用session来完成这个任务。

在客户端允许cookie请求下,通过cookie来装载sessionid,并通过cookie在客户端和服务器端传递。

在客户端不允许cookie的情况下,通过url重写来传递sessionid,从而维持会话.会话cookie保存在浏览器内存中。

47.项目中用到了session对象吗,在哪里用到的?

48.session和cookie有什么区别。

1)session是在服务器上。

Cookie保存在客户端。

会话cookie保存在客户端浏览器上。

2)session作为容器使用,可以保存数据。

但是,当会话结束的时候,session中保存的数据会一同销毁。

Cookie也可以保存数据,如果设置了保存的最大时间,那么数据可以保存在客户端硬盘上。

3)session依赖于cookie维护会话。

(当客户端允许cookie的时候)

49..Http协议是无状态的,服务器是用什么方式为一个客户端保存状态的?

服务器通过session来为客户端保存状态的。

50.servlet或jsp能同时响应多个客户端的请求吗?

是通过什么方式做到的?

可以,因为servlet和jsp允许在多线程中。

每次客户端请求到来的时候,web服务器都会创建或者分配一个线程来处理这个请求。

并将servlet或者jsp对象,request,response对象传入线程中。

51.请简述servlet多线程的实现方式?

每次客户端请求到来,web容器都会创建或者分配一个线程来处理这个请求,这样就实现了servlet的多线程机制。

52.在servlet中定义成员变量(全局变量),有线程安全问题吗?

如何处理?

有线程安全,尽量使用局部变量。

53.请求转发和重定向的区别。

1)请求转发客户端只向服务器发出了一次请求。

而重定向客户端向服务器发出了2次请求。

2)请求转发是request对象发起的。

重定向是response对象发起的。

3)请求转发是在一个工程或者项目之中,而重定向可以在不同的工程之间和不同的机器之间。

54.JSP中动态包含和静态包含的区别。

1)静态包含是在转换成为java文件时候,把被包含文件包含进来,然后统一编译。

动态包含是包含文件,被包含文件分别编译。

在执行的时候调用.

2)静态包含的文件名称不可以是变量。

动态包含的文件名称可以是变量。

3)静态包含的文件不能够包含html,body…,动态包含可以的。

55.谈谈MVC设计模式的概念,使用MVC的好处。

1)v是视图层,由jsp或者其他的视图来完成,接收用户的输入,并显示业务数据。

2)c作为控制去,由servlet来完成,接收客户端传递的参数,封装对象,调用模式层完成业务逻辑,然后根据业务逻辑的结果,实现转发。

3)m是模式层,也就是我们的业务层。

这里实现的是业务逻辑。

4)使用mvc最大的好处是,实现了显示和业务逻辑的分离。

56.模式1和模式2和区别。

模式1:

jsp+javabean来实现的。

在javabean中包含太多的业务逻辑。

和jsp页面完全耦合。

这个javabean是广义的javabean.而不是标准的javabean.

模式2:

现在的mvc模式。

57.过滤器的原理,在项目中哪些地方用到了过滤器。

过滤器是请求到达servlet之前筑起的一道防火墙,能够过滤请求中信息并进行拦截。

同事能够对返回的流信息进行压缩,编码,改变流中信息。

对权限的处理,字符编码格式的处理都会用到过滤器。

58.为什么要使用ajax技术?

使用ajax技术,可以局部刷新页面,而不是全部刷新页面,给用户带来了更好的体验。

因为它使用的是异步请求方式。

59.ajax的基本原理是什么。

Aynchoronized异步,javascript+xml。

使用XMLHTTPREQUEST对象来向服务器异步发起请求的。

请求的结果也通过这个对象接收。

60.使用自定义标记的好处?

代替jsp页面上嵌入的java代码。

使用了类似html的标记来代替。

有利于程序的维护。

61.编写自定义标记有哪几个步骤。

1)编写一个类,继承TagSupport或者BodyTagSupport类。

2)编写标签库描述文件tld。

并且把这个tld后缀的文件放置在web-inf下。

3)在jsp文件中使用taglib指令引入标签库。

4)在jsp文件中使用自定义标签。

62.自定义标记中,tld文件的作用是什么?

在tld文件中定义了标签处理类的名称,标签体的取值,属性的取值。

还定义了标签库的uri位置。

这样,在web容器加载tld文件后,就可以通过uri找到相应的标签库以及标签库中的标签处理类。

63.如何在jsp中使用自定义标记?

1)使用taglib指令引入自定义标签库,并定义前缀

2)在页面中通过前缀使用标签。

64.jsp和javascript的区别?

1)jsp运行在服务器端,javascript运行在客户端浏览器。

2)jsp的载体是web容器。

Javascript的载体是浏览器。

3)jsp脚本中可以嵌入javascript代码。

65.你的项目中建有多少张表,字段最多的表是哪一张?

每张表里都有些什么字段?

66.说说你项目开发的流程?

67.说说你所开发模块的业务流程,业务是什么?

68.谈谈监听器的原理、配置

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

当前位置:首页 > 党团工作 > 党团建设

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

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