三大框架——Struts

框架的本质:就是一组jar包(java类)与相应的xml配置文件

1.Struts2框架:处理表单提交的请求(MVC模式C

        Struts2框架的核心功能:替代Servlet的处理,让Servlet的应用变得简单。

        servlet的实例是由应用服务器创建,而action是由过滤器创建的;

        与struts2相比,servlet只能通过定义字符串获取请求的值

2.Struts框架和Web项目的结合:通过过滤器来实现的。

3.请求提交的URL:

  Servlet识别的请求提交的URL:Servlet的名称无扩展名或任意扩展名

      Struts2-Action识别的请求提交的URL:Action的名称无扩展名或.action

  Servlet和Action的区分:

   Struts2过滤器的过滤范围为:*

    1.只有两者都指定扩展名(action是.action,servlet是非.action),并且扩展名不同时,才能进行唯一区分。

    2.两者都不指定扩展名,系统只能识别其为Action

    3.两者都指定相同的扩展名(.action),系统只能识别其为Action。 

    4.Servlet无扩展名,Action设置有扩展名且为.action。系统都会识别其为action

  过滤器在TomCat启动时便已创建,而Servlet需要在调用时才创建实例。所以在xml配置中,两者无论谁先谁后,都优先执行过滤器,一般,生命周期与作用域较小的写在xml前面,如监听器。

   Struts2过滤器的过滤范围为:*.action

    1.只有两者都指定扩展名(action是.action,servlet是非.action),并且扩展名不同时,也能进行唯一区分。

    2.两者都不指定扩展名,系统只能识别其为Servlet。

    3.两者都指定相同的扩展名(.action),系统只能识别其为Action。 

      4.Servlet无扩展名,Action设置有扩展名且为.action。也能进行唯一区分

3.Action的生命周期:

  1.Servlet是单例模式:所有请求调用的是同一个实例。线程不安全,如1000个线程访问Servlet,会产生互斥现象。

  2.Action的生命周期是每一次请求的开始和结束:每一个请求都会创建一个Action实例,创建完对象后会立刻释放内存。线程安全。

4.Action的字符集乱码的处理:Struts框架的过滤器自带了字符集乱码的处理功能(struts框架的默认字符集编码utf-8)

5.Action的处理请求数量:

  1.一个servlet只能处理一个请求。

  2.一个Action类可以处理多个不同的请求。

6.Action中,一个Action的类可以编写多个请求处理函数。

7.url调用请求处理函数的方式:默认的请求处理函数execute()。
  1.通过url网址,调用执行的请求处理函数。
http://127.0.0.1:8080/项目名称/请求路径/请求的Action名称!请求的Action函数名.action?参数名称  =参数的值&参数名称=参数的值
  2.通过struts.xml配置文件设置,调用执行的请求处理函数。
<action name="Action名称" class="Action类" method="Action函数名"><action>
http://127.0.0.1:8080/项目名称/请求路径/请求的Action名称.action?参数名称=参数的值&参数名称=参数的值
以上两者若同时存在,则url会覆盖xml。
  3.ognl表达式配置方式:
  <action name="wildcard_*_*" class="com.guigu.king.action.TestAction{1}" method="execute{2}"/>
http://127.0.0.1:8080/项目名称/请求路径/请求的Action名称.action?参数名称=参数的值&参数名称=参数的值
要求url中Action名称和xml中Action名称相互匹配。

8.页面请求传值和Action处理请求时的取值。
  1.页面请求传值:表单元素和URL问号
  2.Action处理请求时的取值(不考虑request):Action的取值方式叫做数据注入(注入是通过反射完成)。
    1.直接取值:在Action中定义成员变量,成员变量的数据类型为基本数据类型或字符串。
    2.通过JavaBean取值:在Action中定义成员变量,成员变量的数据类型为一个自定义数据类型。

9.Action返回执行结果:
  1.页面转发(jsp,servlet):Struts2框架下默认的页面跳转方式。在配置文件中设置。
<result type="dispatcher" name="no">jsp或servlet</result>
  2.页面重定向(jsp,servlet):在配置文件中设置。
<result type="redirect" name="ok">jsp或servlet</result>
  3.页面输出(response):直接在Action中编写处理代码。
    1.Action的处理函数中return null;
    2.通过response的out对象页面代码输出。
  4.Action--->Action:两个Action。
    1.通过页面的重定向,由一个Action跳转到另一个Action中(页面转发,程序不会再执行过滤器,所  以页面转发不能转发action)。
    2.在配置文件中设置:实际上并不是页面的跳转。只不过是new了另一个Action的实例,然后调用其  中的函数。
<result type="chain" name="no">
<param name="actionName">Action名称</param>
<param name="method">执行函数名</param>
</result>
    3.同一个Action中的函数跳转:函数直接调用。

posted on 2015-04-25 18:43  洛夜  阅读(194)  评论(0编辑  收藏  举报