java初学者, 请求诸位帮我分析下以下的3个问题,(真心感谢)  1:struts2中的拦截器我该如何理解? struts2自己的拦截器是在什么时候调用的? 在action之前的时候调用拦截器还是在action之后的呢?  2:在struts2中,我能不能把struts2.xml配置文件的action理解成mvc思想的控制层?又或者是action对应的java类是控制层?还是怎么着?请各位高手帮我分析一下struts中mvc。。  真心感谢  3:能不能帮我分析下struts.xml配置文件中的<result type="stream">,主要不知道这type里面都放些什么东西, 好像有转发有重定向吧?  但我还是分不清楚, 我看下了struts里面的代码, 好像type有十多种吧?在请各位大神帮忙分析。                                            真心感谢诸位。StrutsMVCJava

解决方案 »

  1.   

    拦截器是在action之前就调用了,并且是拦截器调用action,所以你可以在拦截器中写代码,让这些代码在action之前之后运行都可以,甚至在某些情况下你可以在拦截器中选择不执行action,action类就是控制层的类,jsp是表现层,配置文件只是指定了action的一些参数,它不可能成为一个层,控制层必须是程序,所以只有action类才是控制层的类,值堆栈可以视为数据模型,
      

  2.   

    result type就太多了,你可以参考:http://blog.163.com/xiexueyong1987@126/blog/static/12626734220103521714850/
      

  3.   

    看看Struts in action你就都明白了
      

  4.   

    result type 主要是dispatcher 服务器内部跳转 跳转jsp页面
    redirect 浏览器外部跳转 跳转jsp页面
    chain 服务器内部跳转 跳转指定的action 再由相应的action跳转jsp页面
    redirection 浏览器外部跳转 跳转指定的action  再由相应的action跳转jsp页面
    这4种跳转主要是防止页面重复提交 浏览器地址是否变化 能否进行传递参数的问题  相当于jsp的request.getRequestDispaction response.sendRedirect
    其他的比如使用模板引擎的话就可以用freeer或velocity
    plaintext可以原样输出源码
    其他的不了解也行
      

  5.   

    struts框架中提供了大量的拦截器组件,默认执行一个名为defaultStack的拦截器。
      拦截器可以将Action-》Result包裹起来,在它们之前或之后追加处理逻辑。
    action请求-->拦截器1-->拦截器2
    -->Action-->Result-->拦截器2-->拦截器1
    -->响应
      

  6.   

    struts2的拦截器是在调用ation 之前执行的,执行流程如图: