struts2

来源:互联网 发布:网站80端口开放攻击 编辑:程序博客网 时间:2024/06/06 12:32
struts执行的过程  (过程再过滤器中实行
       1.获取请求服务器的url地址
         获取请求的路径里面的action的值
       2.拿着得到的action的值到src下面
              先用dom4j进行解析xml文件
              在用action进行比对name
       3.匹配的到action的数值,得到class的数值进行反射. 
           反射原理: 
              Class class=Class.forName("action全路径");//得到类对象
              Method method=class.getMethod("execute"); //得到方法
              Object  object=method.invoke();  //方法执行
       4.得到object的返回值  和xml解析后的的result的name值对比
            如果成功 则执行跳转


过滤器:        
     服务器启动时候创建过滤器,执行init
     init 加载   


配置struts.xml中struts介绍:


        路径:
            struts->package->action->result
        package标签   
            .name  package的名字 (name不能重复 
            .extends 属性值是固定的  为"strurs-default"
                     配置了该属性具有action的功能
            .namespace 属性值构成访问路径  直接访问 属性为"/"  不写默认为"/"


        action标签
            .name    action的名字  和namespace共同构成访问路径
            .class   action本地的全路径
            .method  class默认执行execute方法,修改method可以执行其他的方法
        result标签
            .根据action的返回值  进行跳转(可以servlet,jsp
            .name 返回的数值
            .<> <> 中间的数值/xxx.jsp 匹配成功挑战的页面
            .type  默认的是转发


分模块开发  
      <include file="com/index.xml"></include>   file为路径       //没有src
 
action方法的方式(3种
      1.普通类  不继承 无接口  直接使用execute
      2.实现接口 Action  (不常用,因为ActionSupport本身实现了Action的接口
      3.实现继承 ActionSupport  (可以继续使用Action的参数
   


访问action的方式(3种
      1.通过action标签的method的属性来访问不同了类方法  (方法过于多了,繁杂不适用
             <action  name="add" class="com.Action" method="add"></action>
   
     **2.通过通配符  (最常用
          通过*匹配class目录下class的所有的方法(即*=方法的name,
         <action name="action*" class="com.ShopAction" method="{1}">   //{1}第一个星号
                <result name="success">/x.jsp</result>
                <result name="fail">/x2.jsp</result>
                <allowed_methods>f1,f2</allowed_methods>   //struts2.3之后通配符访问文件要求访问许可
          </action>    
       3.动态访问
            使用复杂,很少用
          



































原创粉丝点击