只有execute方法是每次都会调用的。

解决方案 »

  1.   

    reset(), validate(), setX(), getX()
      

  2.   

    对于你说问题,进一步可分解为:运行一个JSP时,服务器端执行哪些组件和方法,可执行哪些自定义方法。
    1、对于一个JSP请求,服务器端自动调用ActionServlet、ActionMapping、ActionForm、Action、ActionForward等组件和运行它们相应的方法。ActionServlet的方法主要有:process(),InitApplication(),InitMapping(),InitDigester(),InitOther();
    ActionServlet提供了公共方法,可以被Action类实例使用。本节我们简要讨论一些方法:关于ActionServlet方法的更详细信息,请参数在http://jakarta.apache.org/struts中的Struts文档。
    ActionServlet有允许我们增加或删除ActionForm beans、ActionForwards和ActionMappings的方法。这些方法的基本形式如下所示:
    public void addFormBean(ActionFormBean formBean)
    public void removeBean(ActionFormBean formBean)
    public void addForward(ActionForward forward)
    public void removeForward(ActionForward formward)
    public void addMapping(ActionMapping mapping)
    public void removeMapping(ActionMapping mapping)
    每个定义显示了方法的范围(都是public)、方法返回的对象(都为void)以及方法的参数,下列方法根据名字找到这些对象:
    public ActionFormBean findFormBean(String name)
    public ActionForward findForward(String name)
    public ActionMapping findMapping(String name)
    接下来的两个方法用于处理数据源:
    public void addDataSource(String key,DataSource ds)
    public Datasource findDataSource(String key) – trturns a DataSource instance
    findDataSource()方法用名字查找数据源。数据源可能是在Struts配置文件中静态定义的,也可能是用addDataSource()方法动态增加的。
    最后,我们可以用下列的destroy()方法很优雅地关闭ActionServlet,并用reload()方法从Struts配置文件中重新装入信息到ActionServlet。
    ActionForm是抽象类,用于定义用户Bean,在这里,用户可自定义各种方法;
    ActionForm类提供的一些公共方法:
    public void setMultipartRequestHandler(MultipartTequestHandler multipartRequestHandler)
    public MultipartRequestHandler getMultipartRequestHandler()
    上面这些方法用于读取或设置上载文件的多部分的请求处理程序。
    public ActionErrors validate(ActionMapping mapping,ServletRequest request)
    public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)Action类的目的是执行请求的商业逻辑,入口函数主要有perform()和execute():
    Action类定义的各种受保护的访问方法,它可以被应用程序开发者提供的专用子类使用。
    下列方法读取或设置与一个指定的请求相关联的现场(表示应该显示的与应用程序关联的消息的语言):
    protected Locale getLocale(HttpServletRequest request)
    protected void setLocale(HttpServletRequest request,Locale locale)
    下面的方法读取应用程序的消息资源:
    protected MessageResource getResources()
    如果按下表单上与动作关联的取消按钮的话,该方法返回true。
    protected Boolean isCancelled(HttpServletRequest request)
    当应用程序出错时,Action类可以用saveErrors()方法来保存出错消息:
    Protected void saveErrors(HttpServletRequest request, ActionErrors errors)2、在应用中,通常只扩展ActionForm、Action两个类.
    对于自定义的方法,可放在ActionForm、Action两个类的扩展类中,对于ActionForm的方法,以Bean的形式调用;对于Action的方法,可在perform()和execute()等入口方法中调用。
    在新版的JSPStudio中,在execute()方法中定义各种消息处理函数,从而实现了类似于ASP.NET的事件驱动程序设计方法。
    在新版的JSPStudio中,利用JSP的可视化编辑页面作为类似于ASP.NET的WinForm页,从而实现了类似于ASP.NET的WinForm程序设计方法。