java actioncontext_Action访问ActionContext | 学步园
在Struts2.0中,Action已经与Servlet API完全分离,这使得Struts2.0的Action具有了更加灵活和低耦合的特性,与Struts1.0相比较而言是个巨大的进步。虽然Struts2.0的Action已经与Servlet API完全分离,但我们在实现业务逻辑处理时经常需要访问Servlet中的对象,如Session、Application等。Struts2.0 提供了一个名字为ActionContext的类,在Action中可以通过该类获得Servlet API。
ActionContext是一个Action的上下文对象,Action运行期间所用到的数据都保存在ActionContext中(如Session,客户端提交的参数等信息)。
在Action中可以通过下面的代码来创建和使用ActionContext类,关于该类的方法介绍如下所示:
ActionContext ac=ActionContext.getContext();
以下是ActionContext类的常用方法
1.Object get(Object key) :通过参数key来查找当前ActionContext中的值
2.Map getApplication() :返回一个Application级的Map对象
3.Static ActionContext getContext() :获得当前线程的ActionContext对象
4.Map getParameters() :返回一个包含所有HttpServletRequest参数信息的Map对象
5.Map getSession() :返回一个Map类型的HttpSession对象
6.Void put(Object key,Object value) :向当前ActionContext对象中存入名值对信息
7.Void setApplication(Map application) :设置Application上下文
8.Void setSession(Map session) :设置一个Map类型的Session值
下面通过一个实例来演示Struts2.0中Action是如何通过ActionContext来访问Servlet API。本实例模仿了登录业务,分别把进行登录的用户名称保存在Application和Session中,然后在JSP页面中读取信息。
首先实现Action,新建一个名字为LoginAction.java的文件,代码如下所示:package com;
import java.util.Map;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionContext;
public class loginAction extends ActionSupport {
private String name;
private String pwd;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getPwd(){
return pwd;
}
public void setPwd(String pwd){
this.pwd=pwd;
}
public String checkLogin(){
ActionContext ac=ActionContext.getContext();//获得ActionContext
Map app=ac.getApplication();
ac.getSession().put("login",this.name);//把登录名称放入session中
ac.getApplication().put("login",this.name);//把登录名称放入application中 return SUCCESS;
}
}
loginAction比较简单,只有name和pwd两个属性,这里我们没有实现登录验证,只是简单地把登录名称存放到了session和application中。
下面在struts.xml 文件中对loginAction属性进行配置,代码如下所示:
/p>
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
/index.jsp
下面我们看登录页面login.jsp,代码如下所示:
用户登录
下面介绍显示登录信息的页面,新建一个名字为index.jsp的文件,代码如下所示:
读取session中的信息:欢迎!
读取application中的信息:欢迎!
该页面使用OGNL把存储在session和application中的信息读取了出来
读取session中的信息:欢迎!
读取application中的信息:欢迎!
java actioncontext_Action访问ActionContext | 学步园相关推荐
- java jce 安装_BouncyCastle JCE 的安装配置及在java中的使用 | 学步园
安装BouncyCastle JCE应该按照如下步骤: 1)下载提供者 BouncyCastle可以从www.bouncycastle.org下载,下载后请将它解压缩. 2)将JAR文件拷贝到适当位置 ...
- php使用jasperreport,用PHP访问JasperReport | 学步园
参考文档 把里面的.war文件,拷贝到Tomcat的webapps目录下,如果不用tomcat,可以用java来启动它 重启tomcat后,可以用 看看是否正常运行.端口号可以查看tomcat的日志, ...
- java longlong_java Long long | 学步园
在Java中执行如下的代码: long number = 26012402244; 编译的时候会出现一个错误,提示"过大的整数: 32322355744",如果在Eclipse中书 ...
- lotus notes java_Lotus Notes邮件开发——JAVA(2) | 学步园
利用Notes的JAVA api发送邮件(代码片段) 最近要编写一个利用Notes自动发送邮件的程序,研究一天终于OK了``在这里跟大家分享代码 import lotus.domino.AgentBa ...
- java image功能_使用JAI扩展Java Image的功能 | 学步园
Java Image功能一直都在增强,但是向磁盘写一个图像文件或者返回一个PNG或JPEG依然比较难实现.但是我们可以使用Java Advanced Imaging(JAI)API来解决这个问题.JA ...
- java 蚂蚁怕杆_百度面试题–5只蚂蚁走木棍问题的非递归解法(Java调试通过) | 学步园...
致歉:之前贴的代码有bug. 题目描述: 有一根27厘米的细木杆,在第3厘米.7厘米.11厘米.17厘米.23厘米这五个位置上各有一只蚂蚁.木杆很细,不能同时通过一只蚂蚁.开始时,蚂蚁的头朝左还是朝右 ...
- java atomiclong 使用_每天一个Java类之AtomicLong | 学步园
多线程是面试必被问,而且问的很深的东西啊 关于原子类,也会问到. Random中的seed是用的原子类,因此是线程安全的.但是效率不高. 来看看AtomicLong的实现 因为java的slot只有3 ...
- activitythread.java,ActivityThread and ApplicationThread | 学步园
1. 入口. 以前一直都说Activity的人口是onCreate方法.其实android上一个应用的入口,应该是ActivityThread.和普通的java类一样,入口是一个main方法. pub ...
- java 单纯形法_单纯形法 | 学步园
数学最优化中,由George Dantzig发明的单纯形法(simplex algorithm)是线性规划问题的数值求解的流行技术.有一个Nelder-Mead法或称下山单纯形法,由Nelder和Me ...
最新文章
- linux nginx 安装stream,Centos7下Nginx简单搭建与stream模块简单配置
- Linux下的/bin、/sbin、/usr/bin、/usr/sbin目录
- vSphere Data Protection 6.1.2部署与配置
- 静物摄影用光技巧_详解摄影用光技巧,用好光线,拍出好照片。
- Android之Launcher分析和修改1——Launcher默认界面配置(default_workspace)
- baidu patchrom项目开发详细教程(Being updated)
- 镇江 linux技术支持,东云镇江服务器
- 静态生成html的原理
- php属于复合型人才,【PHP】我国薪水上涨最快的行业
- TCP/IP研究(2)-TCB
- java多态/重载方法——一个疑难代码引发的讨论
- Android UI设计中一些不错的示例及第三方控件
- 华为企业网络常用图标大全(附PPT下载)
- [笔记]Windows核心编程《二十二》注入DLL和拦截API
- Android 如何屏蔽返回键和Home键
- xss.haozi练习通关详解
- JS中的函数概念和C语言的概念是类似的,c语言和JavaScript的区别有哪些?
- StudyJams-第01课_初识Android的View(TextView、ImageView、Button)
- 前端工程师的摸鱼日常(3)
- 3.3 自动驾驶的安全结构(第三章 自动驾驶汽车的安全保障)