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");
}
}