struts2总结五: Strut2 访问Servlet API
一、间接访问
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的更多相关文章
- Struts2学习笔记(五)——Action访问Servlet API
在Strut2中访问Servlet API有三种方式: 1.通过ActionContext访问Servlet API,推荐使用这种,但是这种方案它获取的不是真正的事Servlet API. 步骤: 1 ...
- 关于Struts2自动装配和访问Servlet API
自动装配 1.根据属性的getter和setter获取值 index.jsp <s:form action="hello" method="POST"& ...
- Struts2页面配置和访问servlet API
一.Struts2页面配置 在struts2中页面可以分为两种,全局页面和局部页面. 1.全局页面: 在一个<package></package>标签内的多个action都要跳 ...
- struts2 笔记01 登录、常用配置参数、Action访问Servlet API 和设置Action中对象的值、命名空间和乱码处理、Action中包含多个方法如何调用
Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDis ...
- struts2访问servlet API
搭建环境: 引入jar包,src下建立struts.xml文件 项目配置文件web.xml. web.xml: <?xml version="1.0" encoding=&q ...
- struts2中访问servlet API
Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等.Struts ...
- struts2的action访问servlet API的三种方法
学IT技术,就是要学习... 今天无聊看看struts2,发现struts2的action访问servlet API的三种方法: 1.Struts2提供的ActionContext类 Object g ...
- Struts2(八)访问Servlet API
一.Struts2中的Servlet API 1.1.struts2的Action实现了MVC中C层的作用 针对请求用户显示不同的信息 登录后段保存用户信息 ----session 保存当前在线人数等 ...
- 配置Struts2及Struts2访问servlet api的方式
Struts2的起源与背景 在很长的一段时间内,在所有的MVC框架中,Struts1处于绝对的统治地位,无论是从市场的普及范围,还是具体的使用者数量. 其他MVC框架都无 法与其相比,作为一一款优秀的 ...
随机推荐
- iOS开发——model类模板(过滤null和ID)
说明:model类模板已默认过滤null值,附加特殊情况的关键字ID名的冲突(需手动去掉注释代码).MyMessageModel为示例的名字.可以自己随便起. 1.自己创建一个继承与N ...
- Android 应用程序的组成部分
Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起,应用程序Manifest描述了每一个组件和它们之间的交互方式,还用于制定应用程序元数据.其硬件和平台要求.外部库以 ...
- JavaScript--面向对象与原型(15)
// ECMAScript有两种开发模式:1.函数式(过程化);2.面向对象(OOP); 一 创建对象 1.普通的创建对象 1 // 创建一个对象,然后给这个对象新的属性和方法; 2 var box ...
- VisualLeakDetector
只需要#include "vld.h"就OK -------------------------------------- 找内存泄露挺方便的,比VS自带的详细.
- C++链式继承
继承,对于学习C++的每一个人来说,都不会陌生.在Qt的开发中,如果你需要对一个无边框的界面支持move操作,那么你就得通过继承重写虚函数来实现,这并不难,但如果我还需要对一个按钮支持 ...
- linux端口与进程命令
1 lsof命令 lsof -i:portNum 查出来与该端口相关的所有程序 2 netstat命令: netstat -lnp
- [转]C#发送Email邮件 (实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用:using System.Net.Mail;using System.Text;using System.Net; 程序 ...
- CCNA第二讲笔记
网络定义:一组由介质(线缆)互联的网络设备(路由器.交换机)和终端系统(PC): 工作组:局域网范畴,范围最小的局域网,且不涉及网络设备.台式机需要有多块网卡,利用双绞线与其他台式机进行互联,扩展性差 ...
- Qt+MinGW+OpenCV开发环境在win7系统下的搭建(最新20140423)
1 搭建环境 (1)联想Y470笔记本电脑,win7操作系统 (2)Qt 5.2.1 Open Source :(Qt Online installer for Window(9MB),即下载页面最上 ...
- ORA-12838: cannot read/modify an object after modifying it in parallel
insert /*+ append */ into my_all_objects select * from my_all_objects; select * from my_all_objects ...