`

struts extends 继承 (在抽象类中调用抽象方法,具体由其子类实现)

阅读更多

public abstract class SecurityAction extends BaseAction {

 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  /*User u=new User();
  u.setName("zw");
  request.getSession().setAttribute("user", u);//这个是为了执行下面的doExcetion()而加的
  */User user=(User)request.getSession().getAttribute("user");//获取session中的对象
  if(user==null||user.getName()==null){
   String url=request.getServletPath();
   String query=request.getQueryString();//request传的参数
   if(query!=null){
    request.setAttribute("signonAction", url+"?"+query);
   }
   else{
    request.setAttribute("signonAction", url);
   }
   System.out.println("url: "+url+"--query: "+query);
   return mapping.findForward("loginfail");
  }
  else{
   return doExecute(mapping,form,request,response);//由一个execute()跳转到另一个execute()
  }
 }

 protected abstract ActionForward doExecute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
 throws Exception ;//由子类来实现方法,这个父类调用子类的方法
}

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionServlet;

public class BaseAction extends Action {

 private String base="base";//通常这里是一个所有对象需要用到的 对象

 protected String getBase() {
  return base;
 }

 public void setServlet(ActionServlet servlet) {
  super.setServlet(servlet);
  this.base=servlet.toString();
  /*if (actionServlet != null) {
   ServletContext servletContext = actionServlet.getServletContext();
   WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
   this.petStore = (PetStoreFacade) wac.getBean("petStore");
  }*/ //从spring中获取对象
 }
}

public class SecurityActionImpl extends SecurityAction {

 protected ActionForward doExecute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  System.out.println("SecurityActionImpl: doExecute()");
  return mapping.findForward("success");
 }
}

分享到:
评论

相关推荐

    虚拟数据层 Struts2、Hibernate、Spring整合的泛型DAO Version 2010.9.27

    dao接口 : PersonDAO extends GenericDao, Integer> 可以不写代码,方法已经在父类泛型dao里了,这里为了说明:可扩展添加 findByNameExact()方法 子类的附加方法。 泛型daoimpl :GenericDaoImpl, ID extends ...

    JAVA面试题最全集

    51.Object类(或者其子类)的finalize()方法在什么情况下被调用? 52.一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历...

    java 面试题 总结

    然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...

    超级有影响力霸气的Java面试题大全文档

    然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中...

    Struts原理、开发及项目实施

    做相应数据库操作,略 */ } } FormBean的产生是为了提供数据给ActionBean,在ActionBean中可以取得FormBean中封装的数据,经相应的逻辑处理后,调用业务方法完成相应业务要求。...

    泛型dao 泛型dao 泛型dao

    dao接口 : PersonDAO extends GenericDao, Integer> 可以不写代码,方法已经在父类泛型dao里了,这里为了说明:可扩展添加 findByNameExact()方法 子类的附加方法。 泛型daoimpl :GenericDaoImpl, ID extends ...

    ssh(structs,spring,hibernate)框架中的上传下载

     文件数据存储在Blob类型的FILE_CONTENT表字段上,在Spring中采用OracleLobHandler来处理Lob字段(包括Clob和Blob),由于在程序中不需要引用到oracle数据驱动程序的具体类且屏蔽了不同数据库处理Lob字段方法上的...

    最新Java面试宝典pdf版

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24...

    Java面试宝典2010版

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 21、写clone()方法时,通常都有一行代码,是什么? 22、面向对象的特征有哪些方面 23、java中实现多态的机制是什么? 24、...

    Java面试笔试资料大全

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24...

    Java面试宝典2012版

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17...

    Java面试宝典-经典

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24...

    JAVA面试宝典2010

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24...

    java面试题大全(2012版)

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24...

    Java面试宝典2012新版

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 15 21、写clone()方法时,通常都有一行代码,是什么? 15 22、面向对象的特征有哪些方面 15 23、java中实现多态的机制是什么? 17 24...

    java面试宝典2012

    抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 16 21、写clone()方法时,通常都有一行代码,是什么? 16 22、面向对象的特征有哪些方面 17 23、java中实现多态的机制是什么? 18 24...

Global site tag (gtag.js) - Google Analytics