package com.hanqi.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;

public class TestAction {

    //解耦方式
//封装了WEB资源
//使用ActionContext
@SuppressWarnings("unchecked")
public String testweb()
{
//访问web资源
System.out.println("经过了action类");
//单例模式
//Action实例的上下文对象
ActionContext ac= ActionContext.getContext();
//1、获取application
Map<String, Object>mapApp = ac.getApplication(); System.out.println("app1="+mapApp.get("app1"));
//放入新的键值对
mapApp.put("app2", "新放入的application");
//2、获取session资源
Map<String, Object>mapSes=ac.getSession();
System.out.println("ses1="+mapSes.get("ses1"));
//放入新的值
mapSes.put("ses2","放入的新的session");
mapSes.remove("ses1");
//3、获取request资源
Map<String, Object>mapReq= (Map<String, Object>) ac.get("request");
//不能直接获取之前的request属性
System.out.println("req1="+mapReq.get("req1"));
//可以放入新的request的属性
mapReq.put("req2", "放入新的request");
//4、直接获取传递的参数
Map<String, Object>mapPar=ac.getParameters();
//参数值被封装成String数组
String[] str=(String[])mapPar.get("user");
for(String t:str)
{
System.out.println("user="+t);
}
//放入新的参数不能被获取到
mapPar.put("pw", new String[]{""});
return "success"; } }
package com.hanqi.action;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.ParameterAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware; public class TestActionAware implements ApplicationAware,SessionAware,RequestAware,ParameterAware{
private Map<String, Object>mapApp;
private Map<String, Object>mapSes;
private Map<String, Object>mapReq;
private Map<String, String[]>mapPar;
//实现ApplicationAware的方法
//提供给struts2,放入application的数据集合
@Override
public void setApplication(Map<String, Object> arg0) { //接受
mapApp=arg0; }
public String testAware()
{
//访问application
System.out.println("app1="+mapApp.get("app1")); mapApp.put("app2", "以Aware放入的application"); //访问session
System.out.println("ses1="+mapSes.get("ses1"));
mapSes.put("ses2", "以Aware放入的Session");
//访问 request
System.out.println("req="+mapReq.get("req1"));
mapReq.put("req2", "以Aware放入的request");
//访问Parameter
String[]str=mapPar.get("user");
for(String t:str)
{
System.out.println("user"+t);
}
mapPar.put("pw", new String[]{""});
return "success";
} @Override
public void setSession(Map<String, Object> arg0) { mapSes=arg0;
} @Override
public void setRequest(Map<String, Object> arg0) { mapReq=arg0;
} @Override
public void setParameters(Map<String, String[]> arg0) { mapPar=arg0;
} }
package com.hanqi.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; public class TestServletAction { public String testServletAction()
{
//访问原生的web资源
//得到ServletContext,相当于application
ServletContext sc=ServletActionContext.getServletContext();
System.out.println("app1="+sc.getAttribute("app1"));
sc.setAttribute("app2", "原生方式放入的内容");
//2、访问session
HttpServletRequest hsr=ServletActionContext.getRequest();
HttpSession hs=hsr.getSession();
System.out.println("ses1="+hs.getAttribute("ses1"));
hs.setAttribute("ses2", "原生方式放入的内容"); //3、访问request
System.out.println("req1="+hsr.getAttribute("req1")); hsr.setAttribute("req2", "原生方式放入的request");
//4、访问parameter
System.out.println("user1="+hsr.getParameter("user"));
System.out.println("user2="+hsr.getParameter("user"));
return "success";
} }
package com.hanqi.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.util.ServletContextAware; public class TestServletActionAware implements ServletRequestAware, ServletContextAware { private ServletContext sc;
private HttpServletRequest hsr;
private HttpSession hs;
@Override
public void setServletContext(ServletContext arg0) {
sc=arg0; } @Override
public void setServletRequest(HttpServletRequest arg0) {
hsr=arg0;
hs=arg0.getSession(); }
public String testServletAware()
{
System.out.println("app1= "+sc.getAttribute("app1"));
sc.setAttribute("app2", "新的app2");
System.out.println("ses1= "+hs.getAttribute("ses1"));
hs.setAttribute("ses2", "新的ses2");
System.out.println("user= "+hsr.getParameter("user")); return "success";
} }

获取session、request、parmeter的方法的更多相关文章

  1. Spring MVC 中获取session的几种方法

    Spring MVC 中使用session是一种常见的操作,但是大家上网搜索一下可以看到获取session的方式方法五花八门,最近,自己终结了一下,将获取session的方法记录下来,以便大家共同学习 ...

  2. CakePHP Model中( 获取Session)使用Component的方法

    有时候我们需要在Model中使用Session,大家知道CakePHP把操作Session的方法封装为了一个Component, 在Model中正常读取Session的方法: 在 "app_ ...

  3. views获取数据 -- request包含的方法

    request.GET request.POST request.FILES request.path_info request.xxx.getlist request.method request. ...

  4. spring的普通类中获取session和request对像

    在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口 ...

  5. spring在普通类中获取session和request

    在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2 ...

  6. 用struts2获取session、request、parmeter的方法

    package com.hanqi.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; public ...

  7. 获取Session和request方法

    action中的几种写法 //第一种很少用public class LoginAction1 extends ActionSupport {        private Map request;   ...

  8. 2.struts2访问web资源(在struts2中获取session,request等等)

    什么是web资源:web资源就是指request,response,session,servlet的api 为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问we ...

  9. Struts2获取Session方法

    Struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象. 方法1:IOC方式action类实现SessionAwar ...

随机推荐

  1. An Introduction to Stored Procedures in MySQL 5

    https://code.tutsplus.com/articles/an-introduction-to-stored-procedures-in-mysql-5--net-17843 MySQL ...

  2. lua编译出so文件

    把lua编译出so文件 http://superuser.com/questions/557884/getting-error-recompile-with-fpic http://guiquanz. ...

  3. apache tiles 页面模板的使用

    jar包maven <!-- Tiles 模板--> <dependency> <groupId>org.apache.tiles</groupId> ...

  4. Sublime搭建Python开发环境

    print ('hello world!') 1. 下载python,并设置path系统环境变量:当在命令行中输入python,出现如下界面,显示安装成功. 2. 安装最新的sublime,使用注册机 ...

  5. selector 的用法,在选择和不选择情况下的颜色

    在res/drawable文件夹新增一个文件,此文件设置了图片的触发状态,你可以设置 state_pressed,state_checked,state_pressed,state_selected, ...

  6. static的用法

    首先,看看变量的存储: int global ; int main() { int stackStore ; int heapStore* = (int *)malloc(sizeof(int)); ...

  7. 2014年物联网Internet of Things应用简介

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; }         物联网(Internet of Things,缩写I ...

  8. Monkey测试4——Monkey命令行可用的全部选项

    Monkey命令行可用的全部选项 常规 --help 列出简单的用法. -v 命令行的每一个-v将增加反馈信息的级别. Level 0(缺省值)除启动提示.测试完成和最终结果之外,提供较少信息. Le ...

  9. 小白的vue学习路程

    最近公司开发新的项目,前端框架选定vue,对于前端小白的我,需要自己学习补充能量. vue的最大特点:响应的数据绑定.组合的视图组件. vue文件里面包含三种:<template>html ...

  10. console命令详解

    Firebug是网页开发的利器,能够极大地提升工作效率. 但是,它不太容易上手.我曾经翻译过一篇<Firebug入门指南>,介绍了一些基本用法.今天,继续介绍它的高级用法. ======= ...