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类型request、session、application,真实类型HttpServletRequest、HttpServletSession、ServletContext的引用

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

}

}

01_12_Struts2_访问Web元素的更多相关文章

  1. Struts2 访问web元素

    访问web元素的四种方法(耦合,依赖注入).(耦合,非依赖注入).(非耦合,依赖注入).(非耦合,非依赖注入) 耦合:可以得到HttpServletResponse,HttpServletReques ...

  2. Struts2学习---简单的数据校验、访问Web元素

    1.简单的数据校验 在action里面我们已经给出了一个数据校验: public String execute() { if(user.getUsername().equals("usern ...

  3. Struts2中访问web元素的四种方式

    Struts2中访问web元素的四种方式如下: 通过ActionContext来访问Map类型的request.session.application对象. 通过实现RequestAware.Sess ...

  4. struts2 访问Web元素的4种方法

    完整代码 :Struts12AccessWebElement.rar 第一种也是最常用的一种方法实现这几个接口 RequestAware,SessionAware,ApplicationAware s ...

  5. sessionapplicationStruts2中访问web元素

    本文是一篇关于sessionapplication的帖子 取得Map类型request,session,application,实在类型 HttpServletRequest, HttpSession ...

  6. Struts2访问web元素的各种方法

    1.通过RequestAware,SessionAware,ApplicationAware获取: 在Struts2中不能直接访问Request,Session,Application元素,但是可以使 ...

  7. Structs复习 访问web元素

    Structs帮我们在action和http里建立了联系 主要有四种方式 我们主要用第二种(IOC 依赖容器注入 ) Jar包 web.XML <?xml version="1.0&q ...

  8. Struts2 学习笔记 09 访问Web元素

    我们想要访问Map类型request,session,application.真实类型HttpServletRequest,HttpSession,ServletContext的引用,并对它们进行操作 ...

  9. Struts2_访问Web元素

    取得Map 类型的 request,session,application, HttpServletRequest,HttpSession,ServletContext的引用. 分访问 Map 类型和 ...

随机推荐

  1. [转] 深度探索Hyperledger技术与应用之超级账本的典型交易流程

    转自: https://blog.csdn.net/HiBlock/article/details/80212499 个人感觉对交易流程描述的比较清楚,转载以备查看. 1 典型交易流程 下图所示为Hy ...

  2. vector详解

    /*vector向量容器*/ //用数组方式访问vector元素 #include<iostream> #include<vector> #include<cstdio& ...

  3. express使用post方法

    express有get.post和在路由后面跟参数,这三种接参方式,这篇文章我主要记录post使用方法 1.json解析中间件(body-parser) cnpm install body-parse ...

  4. SpringBoot2.0 基础案例(07):集成Druid连接池,配置监控界面

    一.Druid连接池 1.druid简介 Druid连接池是阿里巴巴开源的数据库连接池项目.Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能.功能强大,能防SQL注入,内置Login ...

  5. 13.Python略有小成(装饰器,递归函数)

    Python(装饰器,递归函数) 一.开放封闭原则 ​ 软件面世时,不可能把所有的功能都设计好,再未来的一两年功能会陆续上线,定期更新迭代,软件之前所用的源代码,函数里面的代码以及函数的调用方式一般不 ...

  6. EOS帐户交易的构建命令

    EOS版本:4.0   系统:Ubuntu 16.04 LTS   1.创建两对密匙   cleos create key   Private key:5JeTwSwKfpVRHGLqysakTXfk ...

  7. Ubuntu 下修改Tomcat和Jetty默认的JDK和初始内存

    修改/etc/default/tomcat  或者  /etc/default/jetty   文件 中的 JAVA_HOME 和 JAVA_OPTS

  8. ssas 为绑定指定的大小太小,导致一个或多个列值被截断

    错误信息:ssas 为绑定指定的大小太小,导致一个或多个列值被截断 如果更改了某个维度或是事实表的字段长度,在处理CUBE时提示此错误,我们要做以下更新: 1.刷新数据源视图. 2.打开多维数据集,查 ...

  9. Spring连接数据库

    public class Book { private int bookid; private String bookname; private String bookauthor; private ...

  10. sqlserver 删除两种方法比较

    delete from tb where id=1    删除数据 truncate table  tb where id=1  第一种 自增长id不会删除,第二种会删除