sturts2 是不是不会用request ,reponse,session这些对象?哪位达人可以详细解析这个原理
ä¸ä¸ªè¯·æ±å¨Struts2æ¡æ¶ä¸çå¤çå为以ä¸å 个æ¥éª¤ï¼
1.客æ·ç«¯ååºä¸ä¸ªæåservlet容å¨ç请æ±(tomcat)ï¼
2.è¿ä¸ªè¯·æ±ä¼ç»è¿å¾ä¸çå 个è¿æ»¤å¨ï¼æåä¼å°è¾¾FilterDispatcherè¿æ»¤å¨ã
3.è¿æ»¤å¨FilterDispatcheræ¯struts2æ¡æ¶çå¿èï¼å¨å¤çç¨æ·è¯·æ±æ¶ï¼å®å请æ±ä¸èµ·ç¸äºé å访é®struts2
çåºå±æ¡æ¶ç»æãå¨web容å¨å¯å¨æ¶ï¼struts2æ¡æ¶ä¼èªå¨å è½½é ç½®æ件éç¸å ³åæ°ï¼å¹¶è½¬æ¢æç¸åºçç±»ã
å¦ï¼ConfigurationManagerãActionMapperåObjectFactoryãConfigurationManager åæé ç½®æ件çä¸
äºåºæ¬ä¿¡æ¯ï¼ActionMapperåæactionçé 置信æ¯ãå¨è¯·æ±è¿ç¨ä¸ææç对象ï¼Actionï¼Resultsï¼
Interceptorsï¼çï¼é½æ¯éè¿ObjectFactoryæ¥å建çãè¿æ»¤å¨ä¼éè¿è¯¢é®ActionMapperç±»æ¥æ¥æ¾è¯·æ±ä¸
éè¦ç¨å°çActionã
4.å¦ææ¾å°éè¦è°ç¨çActionï¼è¿æ»¤å¨ä¼æ请æ±çå¤ç交ç»ActionProxyãActionProxy为Actionç代ç对象
ãActionProxyéè¿ConfigurationManager询é®æ¡æ¶çé ç½®æ件ï¼æ¾å°éè¦è°ç¨çActionç±»ã
5.ActionProxyå建ä¸ä¸ªActionInvocationçå®ä¾ãActionInvocationå¨ActionProxyå±ä¹ä¸ï¼å®è¡¨ç¤ºäº
Actionçæ§è¡ç¶æ,æè 说å®æ§å¶çActionçæ§è¡æ¥éª¤ãå®ææActionå®ä¾åææçInterceptorã
6.ActionInvocationå®ä¾ä½¿ç¨å½å模å¼æ¥è°ç¨ï¼1. ActionInvocationåå§åæ¶ï¼æ ¹æ®é ç½®ï¼å è½½Actionç¸
å ³çææInterceptorã2. éè¿ActionInvocation.invokeæ¹æ³è°ç¨Actionå®ç°æ¶ï¼æ§è¡Interceptorãå¨
è°ç¨Actionçè¿ç¨ååï¼æ¶åå°ç¸å ³æ¦æªå¨(intercepetor)çè°ç¨ã
7. ä¸æ¦Actionæ§è¡å®æ¯ï¼ActionInvocationè´è´£æ ¹æ®struts.xmlä¸çé ç½®æ¾å°å¯¹åºçè¿åç»æãè¿åç»æ
é常æ¯ï¼ä½ä¸æ»æ¯ï¼ä¹å¯è½æ¯å¦å¤çä¸ä¸ªActioné¾ï¼ä¸ä¸ªéè¦è¢«è¡¨ç¤ºçJSPæè FreeMarkerç模çãå¨è¡¨ç¤ºçè¿ç¨ä¸å¯ä»¥ä½¿ç¨Struts2 æ¡æ¶ä¸ç»§æ¿çæ ç¾ã
jspä¸å¦ææ¯åé请æ±ï¼å±æ§çå¼ä¼è¢«å°è£
å°httprequestä¸ãå¯ä»¥ç¨ç¸åºçapiè·åã
ä½ çactionå¦ææ¯ä½¿ç¨çstrutsæ¡æ¶ãä»èªå·±ä¼æå¼æ¾å°actionä¸å¯¹åºçåéï¼ç´æ¥ç¨å°±è¡äºã
各位java前辈:1.在struts2中,在jsp页面是如何获取Action中值的?需要...
struts是采用ognl模型,就是对象关系模型,想要得到action中的值,首先的一点这个值要有set和get方法,在你请求action的时候,会重新生成一个action对象--》调用set方法给这个属性赋值,在jsp上展示用的是get方法,例如你有一个属性name需要展示,set、get方法写好后,在你请求的action中给name赋值,页面就...
strus2 的action类中定义同名变量,为啥能自动获取jsp的参数
struts2框架就是对servlet进行了一些封装,我们在servlet中获取页面参数的时候是调request.getParameter(“XXX”)来获取参数值,其实struts2也是这样的,只是struts2对你隐藏了这一步,你看不到而已。你在web.xml中可以看到我们配置了struts2的filter,在你访问一个页面的时候(比如manage\/userAdd.action)...
struts2中如何在jsp页面中用js取得action中传过来的值?是用js得到...
actionNum就是action传过来的变量名
简述Struts2的运行原理
1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2 请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否...
struts2、hibernate、spring的工作原理,简单点。。。
由于它特殊的设计模式,使得它可以灵活地与其它框架整合,主要是通过配置文件的方式来完成。spring和hibernate整合在实际上替代了hibernate,因为它对hibernate的方法进行了包装。spring和strut2整合不过是为struts2的action类提供容器管理,也就是说,当要实例化一个action类的时候,根据spring配置,spring容器会...
struts2为什么我老是搞不懂action中要创建多个属性,并且还要写一个mode...
这个值会传到action类的id当中,而不是传到student类的id。如果你想传给student,那么jsp页面应该这样写 有时候你可能用到其他的框架譬如ibatis,但是他只能传入一个参数,你就可以用你的model把数据放在一起,把对象当做一个参数使用。同时数据的安全性也得到保障了。我学习框架时间比较短,肤浅的见解,...
struts2.0的工作原理?
如果该请求是一个以 .action 结尾请求,则Struts2将请求转发至相应的Action,进行数据类型转换,如果数据类型转换出错,则返回到 input 指定的结果页面。如果数据类型转换没有出错,则调用setXX 方法进行设值,如果使用了validate()验证方法(或者是使用了验证框架),则进行相应的验证。如果验证出错,回到 ...
关于struts2,hibernate2,spring3,面试时让我说下这三大框架的工作原理...
struts2提供了众多拦截器,页面提交的参数会经过默认的18个拦截器的过滤...最终能把页面提交的参数自动转换成需要的类型.能自定义拦截器,实现aop编程,实现如权限拦截等功能,数据校验,能对指定方法校验,支持xml校验.能实现国际化.支持多种表现层技术,如:JSP、freeMarker、Velocity等 支持ajax,模型驱动,能把...
Struts 2中chain如果是在同一个Action中的不同方法之间跳转
1、原理问题,struts2每个请求到来时都会实例化Action类,所以属性都是单独的,楼主理解错了,要是按你的理解,现在的Struts2根本没法工作了。2、如果你使用的是Spring的MVC,那么因为action类只被实例化一次,所以当第一个方法改变该该Action类的属性的时候,第二个方法也会读到改变后的值,因为根本是...
Struts2注解式开发,怎么让Spring管理action的创建
这个意思就是读取xxx.xxx.xxx.action包里的所有类,只要类里有注解说自己是Action的,都会被自动创建并放到spring里统一管理。PS,现在Controller层一般都直接用你springmvc了,用struts2一般是为了同时用到它的tags来编写jsp网页,不过如果view层用ajax,那就没必要非得从后台用你struts的标签来编写jsp了...