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