zoukankan      html  css  js  c++  java
  • 01_12_Struts2_访问Web元素

    01_12_Struts2_访问Web元素

    1. 配置struts.xml文件

    <package name="login" namespace="/login" extends="struts-default">

    <action name="login*" class="com.sumapay.action.LoginAction{1}">

    <result>

    /user_login_success.jsp

                </result>

    </action>

    </package>

    2. 配置jsp页面

    user_login.jsp

    <body>

    取得Map类型requestsessionapplication,真实类型HttpServletRequestHttpServletSessionServletContext的引用

    <ol>

    <li>

    前三者:依赖于容器

    </li>

    <li>

    前三者:IOC

    </li>

    <li>

    后三者:依赖于容器

    </li>

    <li>

    后三者:IOC

    </li>

    </ol>

    <form name="f" action="" method="post">

    用户名:<input type="text" name="name" />

    密码:<input type="text" name="password" />

    <br/>

    <input type="button" value="submit1" onclick="javascript:document.f.action='login/login1'; document.f.submit();" />

    <input type="button" value="submit2" onclick="javascript:document.f.action='login/login2'; document.f.submit();" />

    <input type="button" value="submit3" onclick="javascript:document.f.action='login/login3'; document.f.submit();" />

    <input type="button" value="submit4" onclick="javascript:document.f.action='login/login4'; document.f.submit();" />

    </form>

    </body>

    user_login_success.jsp

    <body>

    <s:property value="#request.r1" />

    |

    <%=request.getAttribute("r1")%>

    <br />

    <s:property value="#session.s1" />

    |

    <%=session.getAttribute("s1")%>

    <br />

    <s:property value="#application.a1" />

    |

    <%=application.getAttribute("a1")%>

    <br />

    <s:debug></s:debug>

    </body>

    3. 实现Action

    3.1LoginAction1.java

    package com.sumapay.action;

    import java.util.Map;

    import com.opensymphony.xwork2.ActionContext;

    import com.opensymphony.xwork2.ActionSupport;

    public class LoginAction1 extends ActionSupport{

    private String name;

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    private Map request;

    private Map session;

    private Map application;

    public LoginAction1() {

    request = (Map) ActionContext.getContext().get("request");

    session = ActionContext.getContext().getSession();

    application = ActionContext.getContext().getApplication();

    }

    public String execute() {

    System.out.println("調用execute方法");

    System.out.println("##############");

    System.out.println(name);

    request.put("r1", "r1");

    session.put("s1", "s1");

    application.put("a1", "a1");

    return "success";

    }

    }

    3.2LoginAction2.java

    package com.sumapay.action;

    import java.util.Map;

    import org.apache.struts2.interceptor.ApplicationAware;

    import org.apache.struts2.interceptor.RequestAware;

    import org.apache.struts2.interceptor.SessionAware;

    import com.opensymphony.xwork2.ActionSupport;

    public class LoginAction2 extends ActionSupport implements RequestAware, SessionAware, ApplicationAware{

    private Map<String, Object> request;

    private Map<String, Object> session;

    private Map<String, Object> application;

    //DI dependency injection

    //Ioc inverse of control

    public String execute() {

    request.put("r1", "r1");

    session.put("s1", "s1");

    application.put("a1", "a1");

    return "success";

    }

    @Override

    public void setApplication(Map<String, Object> application) {

    this.application = application;

    }

    @Override

    public void setSession(Map<String, Object> session) {

    this.session = session;

    }

    @Override

    public void setRequest(Map<String, Object> request) {

    this.request = request;

    }

    }

    3.3LoginAction3.java

    package com.sumapay.action;

    import javax.servlet.ServletContext;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpSession;

    import org.apache.struts2.ServletActionContext;

    import com.opensymphony.xwork2.ActionSupport;

    public class LoginAction3 extends ActionSupport {

    private HttpServletRequest request;

    private HttpSession session;

    private ServletContext application;

    public LoginAction3() {

    request = ServletActionContext.getRequest();

    session = request.getSession();

    application = session.getServletContext();

    }

    //DI dependency injection

    //Ioc inverse of control

    public String execute() {

    request.setAttribute("r1", "r1");

    session.setAttribute("s1", "s1");

    application.setAttribute("a1", "a1");

    return "success";

    }

    }

    3.4LoginAction4.java

    package com.sumapay.action;

    import javax.servlet.ServletContext;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpSession;

    import org.apache.struts2.ServletActionContext;

    import com.opensymphony.xwork2.ActionSupport;

    public class LoginAction3 extends ActionSupport {

    private HttpServletRequest request;

    private HttpSession session;

    private ServletContext application;

    public LoginAction3() {

    request = ServletActionContext.getRequest();

    session = request.getSession();

    application = session.getServletContext();

    }

    //DI dependency injection

    //Ioc inverse of control

    public String execute() {

    request.setAttribute("r1", "r1");

    session.setAttribute("s1", "s1");

    application.setAttribute("a1", "a1");

    return "success";

    }

    }

  • 相关阅读:
    ArrayList集合 、特殊集合
    二维数组 、多维数组
    一维数组
    类:String,Math,DateTime,Random
    while做法1.兔子生兔子 2.求100以内质数的和3.洗发水15元 牙膏5元 香皂2元 150元的算法
    博客迁移
    [WC2008]游览计划 「斯坦那树模板」
    [SDOI2009]HH去散步 「矩阵乘法计数」
    [HNOI2007]梦幻岛宝珠 「套路:分层 $DP$」
    多项式求逆
  • 原文地址:https://www.cnblogs.com/flyback/p/8683931.html
Copyright © 2011-2022 走看看