Struts1.2(2)

1.RequestProcessor


1)解决多个人使用一个映射文件的问题.
2)当浏览器访问服务器,调用serlvet的时候,serlvet会去找config.xml映射文件.在这里之间增加一个RequestProcessor来转到分模块的config.xml上.


过程


  1)在web.xml里增加一个<init-param>,name为主serlvet的下一层,比如config/ma.
  2)写Action,配置自己config.xml
  3)配置自己的config.xml,写法跟主config.xml一样.
  4)浏览器访问的时候以模块名/xxx.do开头.


区分是否需要登陆的页面
  1)第一个办法是写一个过滤器拦截在serlvet前面.
  2)第二个办法就是把需要登陆的页面放在一个RequestProcessor模块里.


    过程
     1)重写RequestProcessor类,重写process方法(这个方法被serlvet调用).
     2)重写该方法的时候应该写上super.process().然后加上自己的代码.
     3)在自己的config.xml里增加一个<controller processorClass>元素,指定RequestProcessor在哪里(若不指定就是框架自己的RequestProcessor)
    
2.一个Actiong多个execute方法


1.用DispatchAction.
  1)新建一个Action,继承DispatchAction.然后写上多个execute,但是名字不要相同.
  2)在config.xml里parameter属性里写上"option"类似的关键字(只需要一个Action元素).
  3)在浏览器上访问的时候应该是/xxx.do?option=方法名.


2.MappingDispatchAction
  1)其他一样,主要是config.xml里根据方法的个数来创建多个Action元素.
  2)每个元素的path肯定不一样,但type是一样的.parameter写的是方法名.
  3)访问的时候直接是path.do.


3.原理
  这两个类都是继承Action类,在execute里做手脚.通过parameter属性和反射方法来获得相应的方法名.


4.区别
  区别在于,MappingDispatchAction虽然多写Action元素,但是可以自由的定义forward的元素.推荐使用

你可能感兴趣的:(框架,xml,Web,浏览器)