JAVASSH面试题.docx
- 文档编号:10056294
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:33
- 大小:42.60KB
JAVASSH面试题.docx
《JAVASSH面试题.docx》由会员分享,可在线阅读,更多相关《JAVASSH面试题.docx(33页珍藏版)》请在冰豆网上搜索。
JAVASSH面试题
Java---SSH(MVC)
1.谈谈你mvc理解
MVC是Model—View—Controler简称。
即模型—视图—控制器。
MVC是一种设计模式,它强制性把应用程序输入、解决和输出分开。
MVC中模型、视图、控制器它们分别肩负着不同任务。
视图:
视图是顾客看到并与之交互界面。
视图向顾客显示有关数据,并接受顾客输入。
视图不进行任何业务逻辑解决。
模型:
模型表达业务数据和业务解决。
相称于JavaBean。
一种模型能为各种视图提供数据。
这提高了应用程序重用性
控制器:
当顾客单击Web页面中提交按钮时,控制器接受祈求并调用相应模型去解决祈求。
然后依照解决成果调用相应视图来显示解决成果。
MVC解决过程:
一方面控制器接受顾客祈求,调用相应模型来进行业务解决,并返回数据给控制器。
控制器调用相应视图来显示解决成果。
并通过视图呈现给顾客。
Struts
1.struts1.2和struts2.0区别?
如何控制两种框架中单例模式?
struts1.2和struts2.0对比
a、Action类:
A
struts1.2规定Action类继承一种基类。
struts2.0Action规定继承ActionSupport基类
b、线程模式
struts1.2Action是单例模式并且必要是线程安全,由于仅有一种Action实例来解决所有祈求。
单例方略限制了Struts1.2Action能做事情,并且开发时特别小心。
Action资源必要是线程安全或同步。
struts2.0Action为每一种祈求产生一种实例,因而没有线程安全问题。
c、Servlet依赖
struts1.2Action依赖于ServletAPI,由于当一种Action被调用时HttpServletRequest和HttpServletResponse被传递给execut办法。
struts2.0Action不依赖于容器,容许Action脱离容器单独测试。
如果需要,Struts2Action依然可以访问初始Request和Response。
但是,其她元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse必要性。
d、可测性
测试struts1.2Action一种重要问题是execute办法暴露了ServletAPI(这使得测试要依赖于容器)。
一种第三方扩展:
strutsTestCase
提供了一套struts1.2模仿对象来进行测试。
Struts2.0Action可以通过初始化、设立属性、调用办法来测试,“依赖注入”也使得测试更容易。
2.项目中为什么使用SSH
1.使用Struts是由于struts是基于MVC模式,较好将应用程序进行了分层,使开发者更关注于业务逻辑实现;第二,struts有着丰富taglib,如能灵活运用,则能大大提高开发效率。
2.使用Hibernate:
由于hibernate为Java应用提供了一种易用、高效率对象关系映射框架。
hibernate是个轻量级持久性框架,功能丰富。
3.使用Spring:
由于spring基于IoC(InversionofControl,反向控制)和AOP构架多层j2ee系统框架,但它不逼迫你必要在每一层中必要使用Spring,由于它模块化较好,容许你依照自己需要选取使用它某一种模块;
采用IoC使得可以很容易实现bean装配,提供了简洁AOP并据此实现事务管理(TranscationManagment),等等
3.struts与spring是如何继承
不懂题目之意:
与否是说strutsaction都继承自org.apache.struts.action.Action
而Spring中继承就不清晰了。
4.struts如何实现国际化
如下以两国语言(中文,英文)为例:
1.在工程中加入Struts支持
2.编辑ApplicationResource.properties文献,在其中加入要使用国际化信息,例如:
lable.welcome.china=Welcome!
!
!
3.创立英文资源文献ApplicationResource_en.properites
4.创立暂时中文资源文献ApplicationResource_temp.properites例如:
lable.welcom.china=中华人民共和国欢迎您!
5.对暂时中文资源文献进行编码转换。
可以使用myeclipse插件,也可以在dos下执行:
native2ascii-encodinggb2312ApplicationResource_temp.propertiesApplicationResource_zh_CN.properties
6.在jsp中加入strutsbean标记库<%@tagliburi="/WEB-INF/struts-bean.tld"prefix="bean"%>
显示信息:
messagekey="label.welcome.china"> 可以在struts-config.xml文献中定义各种资源包,而每个资源包可使用key属性指定包名称。 5.struts2.0惯用标签 1.往action里传值: 2.显示标签property用于输出指定值: propertyvalue="userName"/> 3.用于从页面往action中(user)对象内传值: textname="user.userName"id="username"/> 4.判断 if> if>用于在页面中判断指定数据 iftest="userName==admin">…. if> else>…. else> 5.迭代 iterator>用于将List、Map、ArrayList等集合进行循环遍历 iteratorvalue="userList"id="user"status="u"> propertyvalue="userName"/> iterator> 6.URL地址标签, url>用于生成一种URL地址,可以通过URL标签指定 param>子元素向URL地址发送祈求参数 urlaction=""> paramname=""value=""> param> url> 7.超链接 url>标签一起使用,用于带各种参数。 urlaction=""> paramname=""value=""> param> paramname=""value=""> param> paramname=""value=""> param> url> ">超链接 8.set标签,用于将某个值放入指定范畴内。 例如application,session等。 setname="user"value="userName"scope=”request”/> 6.struts中怎么配备form-bean、action、tiles 此处配备是struts1.2 form-bean配备: (在配备文献struts-config.xml中): name: 指定form名字;type指定form类型: 包名+类名; action配备: (在配备文献struts-config.xml中) attribute="" input="" name="" parameter="" scope="request" type="" > path: 祈求Action名字;attribute: form名字,与form-bean中name相应;input: 输入页途径; name: 如果配备了attribute,name不起作用,与attribute同样;parameter: 使用分发Action时,指定调用分发Action中办法名; scope: Action范畴;type: Action类型: 包名+类名; tites配备: 1.新建一种tiles-defs.xml文献,并在其中做如下配备: xmlversion="1.0"encoding="UTF-8"? > DOCTYPEtiles-definitionsPUBLIC"-//ApacheSoftwareFoundation//DTDTilesConfiguration1.1//EN"""> 2.在web.xml和struts-config.xml和web.xml中做相应配备: 在struts-config.xml中配备如下: ************ ************ 在web.xml中配备如下: ************ ************* 3.调用Tiles组件 Tiles组件是通过StrutsAction来调用,在struts-config.xml中做如下action配备: ************* path="/member" parameter="member-definition" type="org.apache.struts.actions.ForwardAction"/> ************** 7.logic标签有哪几种? 此标签库可以分为三种类型: 条件、循环、转发/重定向。 1.条件类型(没标注都比较简朴) logic: empty,logic: notEmpty; logic: equal,logic: notEqual,logic: lessThan,logic: greaterThan,logic: lessEqual,logic: greaterEqual; logic: present,logic: notPresent; logic: match,logic: notMatch;比较两字符串与否相等,可以比较字符串开始、结尾或其中某个某些。 location属性: 指定从某个位置开始进行比较。 2.循环类型 logic: iterate 3.转发/重定向类型 logic: forward和logic: redirect logic: forward标签和jsp: forward标签相似,但它可以使用globalforward中一种ActionForward 例如: forwardname="login"/> ------------------------------------------------------------------------------ 与上面有关globalforward中代码: logic: redirect标签和上面标签类似,但它默认调用办法是response.sendRedirect(), 取代了上面requestDispatcher.forward()。 最大不同是它支持所有html: link标签属性,因此你可以指定request参数: redirectname="login"paramId="employeeId"paramName="employee"property="id"/> 在MVC框架下,不推荐使用这两个标签,你应当是从controller中选取下一种view,而不是从view中选取.在Jsp页面中不要过多使用logic标签。 8.action是单实例还是多实例,为什么? action是单实例。 当各种顾客访问一种祈求时候,服务器内存中只有一种与之相应action类对象。 由于当服务器第一次加载struts配备文献时候,创立了一种Action后,每发送一种祈求,服务器都会先去检索相应范畴内(request,session)与否存在 这样一种action实例,如果存在,则使用这个实例,如果不存在,则创立一种action实例。 9.dispatchAction是用什么技术实现? DispatchAction 是Aciton一种子类,重要解决了一种祈求解决各种功能问题 普通Action你只能写execute办法来解决业务,而想用这一种Action解决各种任务,你必要要祈求参数进行解析,用if语句块来解决 举一种小例子: 有如下一种url: http: //localhost: 8080/myApp/addUserAction.do 如果你解决这个url是一种普通Action,那么就只能在execute里面执行插入有关操作,如果换成一下url: http: //localhost: 8080/myApp/UserAction.do? method=add 你就应当依照method对象值来执行相应操作,如再有一种途径http: //localhost: 8080/myApp/UserAction.do? method=delete 这个还可以使用那个Action来解决,只是多判断一下而已. 如果你用DispatchAction,就简朴多了,因此dispatchAction还是用Action这样一种技术。 10.struts2.0mvc模式? 与struts1.0区别? struts2mvc模式: 当顾客在页面提交顾客祈求时,该祈求需要提交给struts2控制器解决。 struts2控制器依照解决成果, 决定将哪个页面呈现给客户端。 与struts1最大不同是: struts2控制器。 struts2控制器不再像struts1控制器,需要继承一种Action父类,甚至可以无需实现 任何接口,struts2Action就是一种普通POJO。 事实上,Struts2Action就是一种包括execute办法普通Java类 该类里包括各种属性用于封装顾客祈求参数。 11.STRUTS配备文献是什么? struts-config.xml 12.请写出Struts工作原理。 13.struts解决流程。 一、ActionServlet初始化 ActionServlet作为Struts组件前端控制器,由于web.xml相应配备: 在应用一加载时即会被实例化并调用其init办法,init办法所做重要工作有二: 1.加载struts配备文献,并创立用于封装配备信息ModuleConfig对象 2.加载资源文献,并创立用于封装资源文献MessageResources对象 需要注意两点: 如果web.xml有多模块配备,将创立各种ModuleConfig对象和MessageResources对象分别 用于封装各个模块struts配备文献和资源文献。 针对各个模块所创立ModuleConfig对象和MessageResources对象将存储在ServletContext中,相应属 性名中有该模块名称相应标记。 此外,如果有相应配备话,init办法还将初始化数据源和PlugIn 二、ActionServletprocess 所有形如*.do祈求(依照web.xml中有关配备)将提交给ActionServlet,最后将调用其process办法 。 process办法重要工作有三: 1. 依照祈求信息获知所祈求模块名称,从ServletContext中获得与祈求模块相应ModuleConfig对 象,并存储到request中。 2. 依照模块信息获得相应RequestProcessor对象,一种模块相应一种RequestProcessor对象, RequestProcessor对象将关联与所属模块相应ModuleConfig对象。 3. 调用RequestProcessor对象process办法,将request和response作为参数传递给它。 三、RequestProcessorprocess RequestProcessor对象process办法重要工作有五步: 1. 调用自己processPreprocess(request,response)办法,该办法不进行任何操作,用于子类重写 扩展其功能。 2. 获得与祈求地址所匹配ActionMapping对象,AcionMapping对象用于封装一种特定acion配备信息 。 3. 依照ActionMapping中配备信息获得ActionForm对象(该对象将缓存到request或session中),并 将表单数据填充到ActionForm中,然后依照ActionMapping配备决定与否验证ActionForm,如果验证, 将调用ActionFormvalidate办法,若其返回ActionErros对象中包括ActionMessage对象则表达验证 失败,将转向action配备信息input属性所批示地址。 4. 如果ActionForm无需验证或验证通过将创立并缓存与祈求地址匹配Action对象,将ActionMapping 对象、ActionForm对象、request和response作为参数调用其execute办法。 5. 依照Action对象execute办法返回ActionForward对象,将祈求转发或重定向到该ActionForward 所封装地址。 14.用struts+hibernate做一种增删查改(机试) 15.Struts2.0与Struts1.x有何区别。 Feature特性 Struts1Struts一 Struts2Struts2 Actionclasses行动班 Struts1requiresActionclassestoextendanabstractbaseclass.Struts一规定采用行动班,以延长一种抽象基类。 AcommonprobleminStruts1isprogrammingtoabstractclassesinsteadofinterfaces.一种共同问题在Struts一,是编程抽象类而不是接口。 AnStruts2ActionmayimplementanActioninterface,alongwithotherinterfacestoenableoptionalandcustomservices.12Struts行动,也许实行一项行动界面,随着其她接口,使可选和定制服务。 Struts2providesabaseActionSupportclasstoimplementcommonlyusedinterfaces.Struts2提供了相应actionsupport一流执行惯用接口。 Albeit,theActioninterfaceisnotrequired.虽然,这项行动界面是不是必须。 AnyPOJOobjectwithaexecutesignaturecanbeusedasanStruts2Actionobject.任何波霍对象与执行签名可以被用来作为一种Struts二行动对象。 ThreadingModel线程模型 Struts1Actionsaresingletonsandmustbethread-safesincetherewillonlybeoneinstanceofaclasstohandleallrequestsforthatAction.Struts一行动是单身,必要线程安全,由于将只有一种实例一类来解决所有祈求采用行动。 ThesingletonstrategyplacesrestrictionsonwhatcanbedonewithStruts1Actionsandrequiresextracaretodevelop.单身人士方略地方限制,可以做些什么与Struts一行动,并规定加倍小心发展。 Actionresourcesmustbethread-safeorsynchronized.行动资源,必要线程安全或同步。 Struts2Actionobjectsareinstantiatedforeachrequest,sotherearenothread-safetyissues.2Struts行动对象是实例对于每个祈求,因而没有线程安全问题。 (Inpractice,servletcontainersgeneratemanythrow-awayobjectsperrequest,andonemoreobjectdoesnotimposeaperfor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVASSH 试题