zoukankan      html  css  js  c++  java
  • Struts 1.2笔记:ActionForward

    一、只有登录才能显示的页面
        这是一个很平常的问题,在访问某些网页的时候,只有登录才可以访问,以此保证安全。
        实现原理也很简单,就是将一个属性设置在session中。在访问的时候进行判断即可。
        例:request.getSession().setAttribute("user", username);
        这样就可以根据session进行判断了
    1.MustLoginAction.java
     
    package com;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public class MustLoginAction extends Action {
     @Override
     public ActionForward execute(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response)
       throws Exception {
      
      if(request.getSession().getAttribute("user") == null) {
       
       return mapping.findForward("login");
      }
      return mapping.findForward("success");
     }
    }
     
    在转向时,如果没有做重定向,浏览器地址栏显示的地址会是“.do”的形式,如果要避免这种情况发生,则需要在struts-config.xml中的forward配置里做重定向。
    例:<forward name="login" path="/login.jsp" redirect="true"/>
     
    二、动态ActionForward
        如果需要做很多转向,那么会在struts-config.xml里配置很多的forward,这样就会比较麻烦。为了防止这种情况的发生,需要使用动态的ActionForward。
    1.DynaActionForwardTestAction.java
     
    package com;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public class DynaActionForwardTestAction extends Action {
     @Override
     public ActionForward execute(ActionMapping mapping, ActionForm form,
       HttpServletRequest request, HttpServletResponse response)
       throws Exception {
      
      ActionForward af = new ActionForward();
      af.setPath("/page"+request.getParameter("page")+".jsp");
      return af;
     }
    }
     
    如上所示,这个action在做转向的时候就使用了动态ActionForward

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    【OpenGL】Shader实例分析(七)- 雪花飘落效果
    BZOJ 1091([SCOI2003]分割多边形-分割直线)
    Protocol buffer序列化及其在微信蓝牙协议中的应用
    运行计划中cost计算方法
    jquery全局变量---同步请求设置
    Java split字符串中包含.的情况
    jQuery获取、设置title的值
    jQuery获取URL中所带参数的办法
    在Eclipse中提交SVN项目的时候注意提交项目信息
    马丁 福勒 Martin Fowler 关于依赖注入和反转控制的区别
  • 原文地址:https://www.cnblogs.com/shipeng22022/p/4614184.html
Copyright © 2011-2022 走看看