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框架都无 法与其相比,作为一一款优秀的 ...
随机推荐
- 找不到System.Runtime.Serialization.Json的解决方案
System.ServiceModel System.ServiceModel.Web System.Runtime.Serialization 三者均要添加引用
- (转)理想化的 Redis 集群
一个豁达的关键是正确乐观的面对失败的系统.不需要过多的担心,需要一种去说那又怎样的能力.因此架构的设计是如此的重要.许多优秀的系统没有进一步成长的能力,我们应该做的是去使用其他的系统去共同分担工作. ...
- OOP—还原被遮掩的继承名称
1.public继承——using 声明式 class Base { private: int x; public: ; virtual void mf1(int) ; virtual void mf ...
- C++编译期判断是否能够转型
#include <iostream> #include <vector> using namespace std; template<class T,class U&g ...
- htmlcleaner
String xpath = "//div"; Object[] myNodes = node.evaluateXPath(xpath); for (Object obj : my ...
- 淘宝IP地址库采集器c#代码
这篇文章主要介绍了淘宝IP地址库采集器c#代码,有需要的朋友可以参考一下. 最近做一个项目,功能类似于CNZZ站长统计功能,要求显示Ip所在的省份市区/提供商等信息.网上的Ip纯真数据库,下载下来一看 ...
- js判断屏幕分辨率的代码
通过下面的代码判断分辨率 <script language="JavaScript"> <!-- Begin function redirectPage() { ...
- 源码编译安装LAMP环境及配置基于域名访问的多虚拟主机
实验环境及软件版本: CentOS版本: 6.6(2.6.32.-504.el6.x86_64) apache版本: apache2.2.27 mysql版本: Mysql-5.6.23 php版本 ...
- 【转】perl 变量 $/ 的用法解析 上下文为行模式时,$/ 定义以什么来区分行
默认状态下,很显然都是用\n来区分行,\n也被我们称作为换行符. 当读取序列时,按行来读取时,就是以换行符为标准. 读取的strawberry1.gb的文件内容如下: LOCUS JX118024 4 ...
- cron服务 ubuntu
linux 定时执行crontab crontab -e 进入一个vi 编辑界面 在最后一行加上 */30 * * * * netstat > /tmp/net.log 表示每隔30分就执行n ...