知识大全 使用ActionForward优化Struts应用程序

Posted

篇首语:亦余心之所善兮,虽九死其犹未悔。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用ActionForward优化Struts应用程序相关的知识,希望对你有一定的参考价值。

使用ActionForward优化Struts应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  从一个servlet内部 通过运用javax servlet RequestDispatcher类的forward方法你就可以将控制流程引导到一个目的资源 在login应用程序的action类中 该代码形式如下

     RequestDispatcher rd = request getRequestDispatcher(destination);   rd forward(request  response);

  其中destination就是到一个目的资源的路径

  但是在一个典型的Struts应用程序中 你可以用ActionForward类作为替代 运用这个类的好处就是你不再需要创建一个RequestDispatcher对象并调用它的forward方法了

  你可以将ActionForward类用于一个Action类的execute方法中 注意 其中一个重载的execute方法有如下的定义 它返回一个ActionForward对象

     public ActionForward execute(   ActionMapping mapping   ActionForm form  HttpServletRequest request   HttpServletResponse response)   throws Exception

  因为当时我们还没有讲到ActionForward类 所以在本系列的第一部分和第二部分中所有Action类的execute方法都只返回了空值 现在 在一个Action类的execute方法中 你就可以用ActionForward类来代替下面这个RequestDispatcher对象实例了

    RequestDispatcher rd = request getRequestDispatcher(destination);   rd forward(request  response);

  新的代码变成 return (new ActionForward(destination));

  构建ActionForward对象

  ActionForward类提供了下面五种构造器

       public ActionForward()   public ActionForward(String path)   public ActionForward(String path  boolean redirect)   public ActionForward(String name  String path  boolean redirect)   public ActionForward(String name  String path  boolean redirect  boolean contextRelative)

  虽然这些构造器是不需要说明的 但我们应该注意下面几点 在这些构造器中 第二种可能是最常用的 后四种构造器中的path参数表示的是到目的资源的路径 后三种构造器中的redirect布尔值表示的是是否执行了一个重定向(redirect) (缺省情况下 这个值设置为false 因为redirect比forward慢 )最后 第五个构造器中的contextRelative布尔值表示该路径是否应该是context relative的 而不是module relative的

  同样 一个ActionForward实例也可以有一个逻辑名称 你可以用这个名称来查找与一个特殊的ActionMapping对象相关的实例 (参见本系列第四部分关于ActionMapping的讲述 )

  学习ActionForward类的方法

  ActionForward类定义了三个保护字段——name path和redirect——它们构成了ActionForward的三个属性 ActionForward类提供getter和setter方法来从这些字段读值 给这些字段赋值 这些方法是不需要说明的 定义如下

    public boolean getContextRelative()   public void setContextRelative(boolean contextRelative)   public String getName()   public void setName(String name)   public String getPath()   public void setPath(String path)   public boolean getRedirect()   public void setRedirect(boolean redirect)

  除此之外 ActionForward类还重载了toString方法并返回 ActionForward[ + name + ] 其中name是名称字段

  最后 还有一个freeze方法 它固定了一个组件的配置

  再次运用Login应用程序

  要完全了解ActionForward类 我们需要再次运用在本系列第一部分和第二部分构建的login应用程序 你可以下载完整的应用程序 把它重命名为myStrutsApp 它的web xml和struts config xml文件同myStrutsApp 中的文件是一样的 JSP页面也没有改变 只有action类同以前不同

  注意下面这行代码是新的 return (new ActionForward( /mainMenu jsp ));

  它替代了下面这些代码 现在它们都被注释出来了

    RequestDispatcher rd = request getRequestDispatcher( /mainMenu jsp );   rd forward(request  response);

  同样 下面这些代码也都被重写了

    // RequestDispatcher rd = request getRequestDispatcher( /login jsp );   // rd forward(request  response);

  新的代码变成 return (new ActionForward( /login jsp ));

  ViewSecretAction类

  ViewSecretAction也变得更好了 execute方法最后的这三行代码现在由一行来处理了 返回(new ActionForward ( /viewSecret jsp )):

    //RequestDispatcher rd =request getRequestDispatcher( /viewSecret jsp );   //rd forward(request  response);   //  return null;

  接下来 我们来重新查看LogoutAction类(见列表 ) 注意execute方法中下面这些代码已经被替代了

    // RequestDispatcher rd = request getRequestDispatcher( /login jsp );   // rd forward(request  response);   // return null;

  你只需要用下面这一行代码来取代它就行了 return (new ActionForward( /login jsp ));

cha138/Article/program/Java/hx/201311/25615

相关参考

知识大全 用ActionForward优化你的Struts应用程序[2]

用ActionForward优化你的Struts应用程序[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 用ActionForward优化你的Struts应用程序[1]

用ActionForward优化你的Struts应用程序[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 用Struts框架开发Java应用

用Struts框架开发Java应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Struts开

知识大全 Struts配置讲解Web应用

Struts配置讲解Web应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Web应用的发布描

知识大全 通过Struts应用MVC设计模型

通过Struts应用MVC设计模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  模型视图控制器

知识大全 如何在struts中应用国际化

   如何在struts中应用国际化呢下面就告诉你方法      要在资源文件配置语言  

知识大全 用StrutsTestCase测试Struts应用程序

用StrutsTestCase测试Struts应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 用Struts建立MVC应用的介绍

用Struts建立MVC应用的介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  .Model和

知识大全 进行Struts应用程序单元测试开发

进行Struts应用程序单元测试开发  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一引言  测

知识大全 为 Web 服务构建 Struts 应用程序

为Web服务构建Struts应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当您要将企业