获取session、request、parmeter的方法
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的方法的更多相关文章
- Spring MVC 中获取session的几种方法
Spring MVC 中使用session是一种常见的操作,但是大家上网搜索一下可以看到获取session的方式方法五花八门,最近,自己终结了一下,将获取session的方法记录下来,以便大家共同学习 ...
- CakePHP Model中( 获取Session)使用Component的方法
有时候我们需要在Model中使用Session,大家知道CakePHP把操作Session的方法封装为了一个Component, 在Model中正常读取Session的方法: 在 "app_ ...
- views获取数据 -- request包含的方法
request.GET request.POST request.FILES request.path_info request.xxx.getlist request.method request. ...
- spring的普通类中获取session和request对像
在使用spring时,经常需要在普通类中获取session,request等对像. 1.第一钟方式,针对Spring和Struts2集成的项目: 在有使用struts2时,因为struts2有一个接口 ...
- spring在普通类中获取session和request
在使用spring时,经常需要在普通类中获取session,request等对像.比如一些AOP拦截器类,在有使用struts2时,因为struts2有一个接口使用org.apache.struts2 ...
- 用struts2获取session、request、parmeter的方法
package com.hanqi.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; public ...
- 获取Session和request方法
action中的几种写法 //第一种很少用public class LoginAction1 extends ActionSupport { private Map request; ...
- 2.struts2访问web资源(在struts2中获取session,request等等)
什么是web资源:web资源就是指request,response,session,servlet的api 为什么需要访问web资源:因为图片上传,需要获取图片的目录,就需要通过action来访问we ...
- Struts2获取Session方法
Struts2里面有三种方法可以获取request,最好使用ServletRequestAware接口通过IOC机制注入Request对象. 方法1:IOC方式action类实现SessionAwar ...
随机推荐
- 孙鑫MFC学习笔记18:ActiveX
18 1.容器和服务器程序 2.InvalidateControl重绘控件 3. 4.GetBackColor获取背景色 5.GetForeColor获取前景色 6.TranslateColor进行颜 ...
- Redis配置集群二(window)
第一篇那redis的基础命令都差不多讲了一遍了,这篇就将怎么配置集群了,最后要达到的效果是一台主redis,还有几台从的redis,每次数据都是同步的,当主redis挂掉了,那么就会从几台从redis ...
- HDU 5792---2016暑假多校联合---World is Exploding
2016暑假多校联合---World is Exploding Problem Description Given a sequence A with length n,count how many ...
- quickstart.sh
#!/bin/bashjava_pid=`ps -ef | grep java | grep 'com.kzhong.huamu.sisyphus.QuickStartServer' | awk '{ ...
- HR人力资源战略流程制定
HR人力资源战略 是指根据企业总体战略的要求,为适应企业生存和发展的需要,对企业人力资源进行开发,提高职工队伍的整体素质,从中发现和培养出一大批优秀人才,所进行的长远性的人力资源管理方面的专业谋划和方 ...
- DataSet的灵活,实体类的方便,DTO的效率:SOD框架的数据容器,打造最适合DDD的ORM框架
引言:DDD的困惑 最近,我看到园子里面有位朋友的一篇博客 <领域驱动设计系列(一):为何要领域驱动设计? >文章中有下面一段话,对DDD使用产生的疑问: •没有正确的使用ORM, 导致数 ...
- 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记
[本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 目录 一.ORM的"三国志" 2 1,PDF.NET诞生历程 2 2,Linq2 ...
- 控制器层(Controllers)
本章译者:@freewind 业务逻辑代码通常位于模型(model)层.客户端(比如浏览器)无法直接调用其中的代码,所以模型对象提供的功能,必须作为资源以URI方式暴露给外部. 客户端使用HTTP协议 ...
- fontIconPicker – 优雅的 jQuery 字体图标选择
jQuery fontIconPicker 是一个小的 jQuery 插件,它可以让你实现一个优雅的带有分类.搜索和分页功能的图标选择器.图标列表可手动从下拉列表框,图标数组或对象,或者从 Fonte ...
- CSS中兼容的一面-----Hack
国庆了,出去玩耍,也有好长时间没有更新博客了.. 今天就和大家共享一篇技术博文吧.. CSS中兼容的一面-----Hack技术大全 兼容范围: IE:6.0+,FireFox:2.0+,Opera 1 ...