struts2总结五: Strut2 访问Servlet API

时间:2023-01-05 23:21:35

一、间接访问

public String execute() throws Exception {
this.message="hello,this is put into application!";
this.message2="hello,this is put into session!";
this.message3="hello,this is put into request!";
ActionContext ac=ActionContext.getContext();
//获取request级别的Map对象,把相关数据写入该对象中。
((Map<String ,Object>)ac.get("request")).put("message3", message3);
//获取Application级别的Map对象,把相关数据写入该对象中。
ac.getApplication().put("message", message);
//获取sessiont级别的Map对象,把相关数据写入该对象中。
ac.getSession().put("message2", message2);
return SUCCESS;
}

二、直接访问(Ioc方式)

package com.bochy.struts2.action;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.ServletRequestAware;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Hello extends ActionSupport implements ServletRequestAware{
/**
*
*/
private static final long serialVersionUID = 1L;
private HttpServletRequest request;
private HttpSession session;
private ServletContext application;
private String message;
private String message3;
public String getMessage3() {
return message3;
} public void setMessage3(String message3) {
this.message3 = message3;
} public String getMessage2() {
return message2;
} public void setMessage2(String message2) {
this.message2 = message2;
} private String message2;
public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
} @Override
public String execute() throws Exception {
this.message="hello,this is put into application!";
this.message2="hello,this is put into session!";
this.message3="hello,this is put into request!";
this.request.setAttribute("message3", message3);
this.session.setAttribute("message2", message2);
this.application.setAttribute("message", message);
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request=request;
this.session=this.request.getSession();
this.application=this.session.getServletContext();
} }

三、 直接访问

package com.bochy.struts2.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 Hello extends ActionSupport {
private static final long serialVersionUID = 1L;
private String message;
private String message3;
public String getMessage3() {
return message3;
} public void setMessage3(String message3) {
this.message3 = message3;
} public String getMessage2() {
return message2;
} public void setMessage2(String message2) {
this.message2 = message2;
} private String message2;
public String getMessage() {
return message;
} public void setMessage(String message) {
this.message = message;
}
@Override
public String execute() throws Exception {
this.message="hello,this is put into application!";
this.message2="hello,this is put into session!";
this.message3="hello,this is put into request!";
//调用ServletActionContext的getServletContext()获取Application对象
ServletContext application=ServletActionContext.getServletContext();
//调用ServletActionContext的getRequest()获取request对象
HttpServletRequest request=ServletActionContext.getRequest();
//调用ServletActionContext.getPageContext().getSession()获取session对象
HttpSession session=ServletActionContext.getPageContext().getSession();
// HttpSession session=request.getSession();
request.setAttribute("message3", message3);
session.setAttribute("message2", message2);
application.setAttribute("message", message);
return SUCCESS;
}
}

struts2总结五: Strut2 访问Servlet API的更多相关文章

  1. Struts2学习笔记&lpar;五&rpar;——Action访问Servlet API

    在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...

  2. 关于Struts2自动装配和访问Servlet API

    自动装配 1.根据属性的getter和setter获取值  index.jsp <s:form action="hello" method="POST"& ...

  3. Struts2页面配置和访问servlet API

    一.Struts2页面配置 在struts2中页面可以分为两种,全局页面和局部页面. 1.全局页面: 在一个<package></package>标签内的多个action都要跳 ...

  4. struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用

    Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...

  5. struts2访问servlet API

    搭建环境: 引入jar包,src下建立struts.xml文件 项目配置文件web.xml. web.xml: <?xml version="1.0" encoding=&q ...

  6. struts2中访问servlet API

    Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等.Struts ...

  7. struts2的action访问servlet API的三种方法

    学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...

  8. Struts2&lpar;八&rpar;访问Servlet API

    一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等 ...

  9. 配置Struts2及Struts2访问servlet api的方式

    Struts2的起源与背景 在很长的一段时间内,在所有的MVC框架中,Struts1处于绝对的统治地位,无论是从市场的普及范围,还是具体的使用者数量. 其他MVC框架都无 法与其相比,作为一一款优秀的 ...

随机推荐

  1. log4j&colon;ERROR Failed to rename &lbrack;&sol;log&sol;xxx&period;log&rsqb; to &lbrack;&sol;log&sol;xxx&period;log&period;2016-11-23&period;log&rsqb;

    Log4j报错: log4j:ERROR Failed to rename [/log/xxx.log] to [/log/xxx.log.2016-11-23.log] google了一下发现是个b ...

  2. META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗

    今天有人问到 META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗,还有项目的META-INF下面一般会有个MANIFEST.MF 文件,都是干啥的. 百度搜了 ...

  3. JSON 数据使用方法

    当同一个模板需要替换不同的数据显示的时候,如果数据量大点,用json很方便. json对象: var JSONObject= { "name":"Bill Gates&q ...

  4. 用Sublime Text搭建简易IDE编写Verilog代码

    前言 Verilog是一种硬件描述语言(HDL),该语言在Windows上有集成开发环境可以使用,如ModelSim,但ModelSim的编辑器不太好用因此笔者萌生了用Sublime Text3来编写 ...

  5. Android EditText setOnClickListener事件 只有获取焦点才能响应 采用setOnTouchListener解决

    最近在学习Android开发,在编写程序的过程中,发现EditText setOnClickListener事件响应中,只有获取焦点的时候才会响应, 如当焦点在别的控件上时,只能先点击获取焦点,第二次 ...

  6. Intellj IDEA常用快捷键

    1.生成Getter.Setter方法:Alt + Insert

  7. vue-textarea 自适应高度

    需求简介 一个搜索页面,上面输入框,下面列表展示搜索到的结果. 重点是:产品要求搜索框默认显示一行,当输入的文字超过一行时,输入框的高度会随着改变,直到输入完毕. 解决思路设想 本想利用textare ...

  8. 理解java的三种代理模式

    代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下,实现对目标对象的功能扩展. 比如有个歌手对象叫Singer,这个对象有一个唱歌方法叫sing(). 1 public class ...

  9. linux-kernel-4&period;4 移植 (3) 网卡移植

    开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-g ...

  10. 上传文件,经过Zuul,中文文件名乱码

    问题描述: 在学习<SpingCloud与Docker微服务架构实战>8.7节 使用Zuul上传文件,测试通过Zuul上传中文文件时出现,文件名.目录名或卷标语法不正确异常:但是直接通过上 ...