JAVASSH面试题.docx

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

JAVASSH面试题.docx

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

JAVASSH面试题.docx

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中配备如下:

************

definitions-config

/WEB-INF/tiles-defs.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相应配备:

0

在应用一加载时即会被实例化并调用其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

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

当前位置:首页 > 工程科技 > 兵器核科学

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

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