面试资料总结.docx
- 文档编号:9444500
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:67
- 大小:64.48KB
面试资料总结.docx
《面试资料总结.docx》由会员分享,可在线阅读,更多相关《面试资料总结.docx(67页珍藏版)》请在冰点文库上搜索。
面试资料总结
Struts工作流程:
struts1:
发布StrutsWeb服务时,根据web.xml初始化ActionServlet,ActionContext等内容.在接到一个HttpRequest请求后,ActionServlet根据struts-config.xml中的配置内容,将请求的参数传到对应的Formbean中,并设置session.然后根据请求中的Action参数,在struts-config.xml中查找指定的Action,并调用此Action来处理请求.根据Action的处理结果,会返回一个forward变量,此时通过mapping.findForward()查找出对应的forward所标示的Action或者JSP页面,将请求转到下一个处理.如果是forward指向JSP页面,则输出到前台.
Struts2工作流程:
(1)客户端提交一个HttpServletRequest请求(.action或JSP页面)
(2)请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等
(3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器
(4)请求发到FilterDispatcher后,FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个Request(一般根据URL后缀是否为.action来判断)
(5)如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求交到ActioProxy,由其进行处理.
(6)ActionProxy通过ConfigurationManager(它会访问struts.xml)询问框架的配置文件,找到需要调用的Action类.
(7)ActionProxy创建一个ActionInvocation实例,而ActionInvocation通过代理模式调用Action,(在调用之前会根据配置文件加载相关的所有Interceptor拦截器)
(8)Action执行完毕后,返回一个result字符串,此时再按相反的顺序通过Interceptor拦截器.
(9)最后ActionInvocation负责根据struts.xml中配置的result元素,找到与返回值对应的result,决定进行下一步输出.
1、Servlet的基本架构。
【基础】
答:
publicclassServletNameextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{}
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{}}
2、WEBSERVICE名词解释。
JSWDL开发包的介绍。
JAXP、JAXM的解释。
SOAP、UDDI,WSDL解释。
WebService是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得WebService能与其他兼容的组件进行互操作。
JAXP(JavaAPIforXMLParsing)定义了在Java中使用DOM,SAX,XSLT的通用的接口。
这样在你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码。
JAXM(JavaAPIforXMLMessaging)是为SOAP通信提供访问方法和传输机制的API。
WSDL是一种XML格式,用于将网络服务描述为一组端点,这些端点对包含面向文档信息或面向过程信息的消息进行操作。
这种格式首先对操作和消息进行抽象描述,然后将其绑定到具体的网络协议和消息格式上以定义端点。
相关的具体端点即组合成为抽象端点(服务)。
SOAP即简单对象访问协议(SimpleObjectAccessProtocol),它是用于交换XML编码信息的轻量级协议。
UDDI的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。
soap是webservice最关键的技术,是webservice中数据和方法调传输的介质。
WSDL(webservicedefinitionlanguage)描述了webservice的接口和功能。
3、内部类可以引用他包含类的成员吗?
有没有什么限制?
一个内部类对象可以访问创建它的外部类对象的内容,内部类如果不是static的,那么它可以访问创建它的外部类对象的所有属性内部类,如果是sattic的,即为nestedclass,那么它只可以访问创建它的外部类对象的所有static属性一般普通类只有public或package的访问修饰,而内部类可以实现static,protected,private等访问修饰。
当从外部类继承的时候,内部类是不会被覆盖的,它们是完全独立的实体,每个都在自己的命名空间内,如果从内部类中明确地继承,就可以覆盖原来内部类的方法。
4、Jdo是什么?
JDO是Java对象持久化的新的规范,为javadataobject的简称,也是一个用于存取某种数据仓库中的对象的标准化API。
JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBCAPI的使用)。
这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。
另外,JDO很灵活,因为它可以在任何数据底层上运行。
JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强。
5、STRUTS的应用(如STRUTS架构)
Struts是采用JavaServlet/JavaServerPages技术,开发Web应用程序的开放源码的framework。
采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。
Struts有如下的主要功能:
一.包含一个controllerservlet,能将用户的请求发送到相应的Action对象。
二.JSP自由tag库,并且在controllerservlet中提供关联支持,帮助开发员创建交互式表单应用。
三.提供了一系列实用对象:
XML处理、通过JavareflectionAPIs自动处理JavaBeans属性、国际化的提示和消息。
6、LINUX下线程,GDI类的解释。
LINUX实现的就是基于核心轻量级进程的”一对一”线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。
GDI类为图像设备编程接口类库。
7、BS与CS的联系与区别。
C/S是Client/Server的缩写。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。
客户端需要安装专用的客户端软件。
B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
浏览器通过WebServer同数据库进行数据交互。
8、C/S与B/S区别:
1.硬件环境不同:
C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门服务器提供连接和数据交换服务.
B/S建立在广域网之上的,不必是专门的网络硬件环境,例与电话上网,租用设备.信息自己管理.有比C/S更强的适应范围,一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S一般面向相对固定的用户群,对信息安全的控制能力很强.一般高度机密的信息系统采用C/S结构适宜.可以通过B/S发布部分可公开信息.
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户。
3.对程序架构不同
C/S程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑.
B/S对安全以及访问速度的多重的考虑,建立在需要更加优化的基础之上.比C/S有更高的要求B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk2000Exchange2000等,全面支持网络的构件搭建的系统.
SUN和IBM推的JavaBean构件技术等,使B/S更加成熟.
4.软件重用不同
C/S程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.
B/S对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子
5.系统维护不同
C/S程序由于整体性,必须整体考察,处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统
B/S构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
6.处理问题不同
C/S程序可以处理用户面固定,并且在相同区域,安全要求高需求,与操作系统相关.应该都是相同的系统
B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的.与操作系统平台关系最小.
7.用户接口不同
C/S多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本.
8.信息流不同
C/S程序一般是典型的中央集权的机械式处理,交互性相对低
B/S信息流向可变化,B-BB-CB-G等信息、流向的变化,更像交易中心。
9、应用服务器与WEBSERVER的区别?
应用服务器:
Weblogic、Tomcat、JbossWEBSERVER:
IIS、Apache
10、jsp有哪些动作?
作用分别是什么?
JSP共有以下6种基本动作jsp:
include:
在页面被请求的时候引入一个文件。
jsp:
useBean:
寻找或者实例化一个JavaBean。
jsp:
setProperty:
设置JavaBean的属性。
jsp:
getProperty:
输出某个JavaBean的属性。
jsp:
forward:
把请求转到一个新的页面。
jsp:
plugin:
根据浏览器类型为Java插件生成object或embed标记。
11、开发中都用到了那些设计模式?
用在什么场合?
每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。
通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。
主要用到了MVC的设计模式。
用来开发JSP/Servlet或者J2EE的相关应用。
简单工厂模式等
128、UML是什么?
常用的几种图?
【基础】
答:
UML是标准建模语言;常用图包括:
用例图,静态图(包括类图、对象图和包图),行为图,交互图(顺序图,合作图),实现图。
110、J2EE是什么?
J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriseapplicationmodel).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。
所属层次包括客户层(clietntier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层。
13、java中会存在内存泄漏吗,请简单描述。
的确存在Java的内存泄漏,并且事态可以变得相当严重
Javagarbagecollector自动释放哪些内存里面程序不在需要的对象,以此避免大多数的其他程序上下文的内存泄漏.但是Java应用程序依旧会有相当的内存泄漏.查找原因会十分困难.有两类主要的Java内存泄漏:
*不再需要的对象引用
*未释放的系统资源
2.2非必要的对象引用
Java代码常常保留对于不再需要的对象引用,并且这组织了内存的垃圾收集器的工作.Java
对象通常被其他对象包含引用,为此一个单一对象可以保持整个对象树在内存中,于是导致了如下问题:
*在向数组添加对象以后遗漏了对于他们的处理
*直到你再次使用对象的时候都不释放引用.比如一个菜单指令可以插件一个对象实例引
用并且不释放便于以后再次调用的时候使用,但是也许永远不会发生.
*在其他引用依然需要旧有状态的时候贸然修改对象状态.比如当你为了在一个文本文件
里面保存一些属性而使用一个数组,诸如”字符个数”等字段在不再需要的时候依然保留在内存当中.
*允许一个长久执行的线程所引用的对象.设置引用为NULL也无济于事,在线程退出和空闲之前,对象不会被收集释放
2.3未释放的系统资源
Java方法可以定位Java实例意外的堆内存,诸如针对视窗和位图的内存资源.Java常常通过JNI(JavaNativeInterface)调用C/C++子程序定位这些资源.
14、jsp有哪些内置对象?
作用分别是什么?
【基础】
答:
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request:
用户端请求,此请求会包含来自GET/POST请求的参数;
response:
网页传回用户端的回应;pageContext:
网页的属性是在这里管理;
session:
与请求有关的会话期;application:
servlet正在执行的内容;
out:
用来传送回应的输出;config:
servlet的构架部件;
page:
JSP网页本身;exception:
针对错误网页,未捕捉的例外。
15、JSP标签的作用?
如何定义?
【中等难度】
答:
作用:
分离jsp页面的内容和逻辑;
业务逻辑开发者可以创建自定义标签;
封装业务逻辑;
可重用并且易维护;
易于手工修改、易于工具维护;
提供简洁的语法;
定义:
写标签处理器;
写tld文件;
讲标签处理器和tld文件放到同一个包里面;
把jsp页面和标签库配置部署在一起。
16、简述HttpSession的作用、使用方法,可用代码说明。
(3分钟)【基础】
答:
HttpSession中可以跟踪并储存用户信息,把值设置到属性中,有2个方法:
setAttribute(),getAttrribute();
例如:
在一个方法中用session.setAttribute(“student”,student);在session中设置一个属性名为student,值为一个名为student的对象。
而后可在同一session范围内用getAttribute(“student”)取出该属性,得到student对象。
17、struts的入口类?
【基础】
答:
是ActionServlet,所有的struts请求都经由该类转发处理。
18、几种会话跟踪技术?
【基础】
答:
cookie、URL重写、设置表单隐藏域。
19、过滤器有哪些作用?
【基础】
答:
可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统的日志等等。
20、过滤器的用法?
(对客户端的请求统一编码和对客户端进行认证)【基础】
答:
首先要实现(implements)Filter接口,同时覆盖Filter接口的三个方法:
init(FilterConfigconfig)//用于获得FilterConfig对象;
doFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)//进行过滤处理一些业务;destroy()//销毁Filter。
21、介绍在JSP中如何使用JavaBeans?
【基础】
答:
在JSP中使用JavaBean常用的动作有:
1) useBean/>: 用来创建和查找bean对象; 2) setProperty/>: 用来设置bean的属性,即调用其setXxx()方法; 3) getProperty/>: 用来获得bean的属性,即调用其getXxx()方法。 22、JSP和Servlet中的请求转发分别如何实现? 【基础】 答: JSP中的请求转发可利用forward动作实现: forward/>; Serlvet中实现请求转发的方式为: getServletContext().getRequestDispatcher(path).forward(req,res)。 23、Web.Xml的作用? 【基础】 答: 用于配置web应用的信息;如listener、filter及servlet的配置信息等。 24、写出熟悉的JSTL标签。 【基础】 答: if>、 choose>、 when>、 otherwise>、 forEach>、 set>。 25、说出struts中的标签。 【基础】 答: message/> errors/> include/> messages/> define/> html> write/> form> resource/> link> cokkie/> text> heder/> present/> parameter/> equal/> size/> 26、javascript的优缺点和内置对象;【中等难度】 答: 1)优点: 简单易用,与Java有类似的语法,可以使用任何文本编辑工具编写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格的变量声明,而且内置大量现成对象,编写少量程序可以完成目标; 2)缺点: 不适合开发大型应用程序; 3)Javascript有11种内置对象: Array、String、Date、Math、Boolean、Number、Function、Global、Error、RegExp、Object。 27、java中有几种方法可以实现一个线程? 用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop(),是因为它不安全。 它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。 结果很难检查出真正的问题所在。 suspend()方法容易发生死锁。 调用suspend()的时候,目标线程会停下来, 但却仍然持有在这之前获得的锁定。 此时,其他任何线程都不能访问锁定的资源,除非被” 挂起”的线程恢复运行。 对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。 所以不应该使用suspend(),而应在自己的Thread类中置入一个标志,指出线程应该活动还是挂起。 若标志指出线程应该挂起,便用wait()命其进入等待状态。 若标志指出线程应当恢复,则用一个notify()重新启动线程 28、什么情况下调用doGet()和doPost()? 【基础】 答: Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。 29、如何从form表单中得取checkbox的值;【基础】 答: 可在页面把checkbox的name属性取同一个,value属性取每个条目的id,后台用getParamter(“name”)能取到checkbox的一组值。 30、页面中有一个命名为bankNo的下拉列表,写脚本获取当前选项的索引值。 【基础】 答: 用java或javaScript的处理方式分别如下: Java: request.getParameter(“bankNo”); javaScript: varselectItems=document.getElementsByName(“bankNo”);selectItems[0].value; 31、javascript常用的方面;【基础】 答: 常用于数据输入校验和页面特殊效果等。 32、常用的web容器和开发工具;【基础】 答: 最常用的容器包括: tomcat、weblogic;开发工具有: eclipse,jbuilder。 33、get和post的区别? 【基础】 答: Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。 二者主要区别如下: 1)Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据; 2)Get将表单中数据按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“? ”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL; 3)Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的; 4)Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post; 5)Get限制Form表单的数据集必须为ASCII字符,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面试 资料 总结