一、Action中获取

第一种方式:

通过ActionContext,这种方式取到的对象是Map类型

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport{ private String uid; public String login(){ Map<String , Object> request = (Map<String, Object>) ActionContext.getContext().get("request"); Map<String , Object> session = ActionContext.getContext().getSession(); Map<String , Object> application = ActionContext.getContext().getApplication(); if (uid != null) { System.out.println(uid);
session.put("uid" , uid);
} return SUCCESS;
} public String getUid() {
return uid;
} public void setUid(String uid) {
this.uid = uid;
}
}

第二种方式:

通过实现RequestAware,SessionAware,ApplicationAware接口来获取,这种方式获取到的依然是Map类型

package cn.orlion.actions;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{ private String uid; private Map<String, Object> request; private Map<String, Object> session; private Map<String, Object> application; public String login(){ if (uid != null) { System.out.println(uid);
session.put("uid" , uid);
} return SUCCESS;
} public String getUid() {
return uid;
} public void setUid(String uid) {
this.uid = uid;
} @Override
public void setSession(Map<String, Object> arg0) {
// TODO Auto-generated method stub
this.session = arg0;
} @Override
public void setRequest(Map<String, Object> arg0) {
// TODO Auto-generated method stub
this.request = arg0;
} @Override
public void setApplication(Map<String, Object> arg0) {
// TODO Auto-generated method stub
this.application = arg0;
}
}

第三种方式:

通过实现ServletRequestAware接口获取到request,然后用request去获取session和application,这种方式获取到的是HttpServletRequest ,HttpSession ,ServletContext类型。

package cn.orlion.actions;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport implements ServletRequestAware{ private String uid; private HttpServletRequest request; private HttpSession session; private ServletContext application; public String login(){ if (uid != null) { session = request.getSession(); application = session.getServletContext(); System.out.println(uid);
       // HttpSession类型,所以用setAttribute方法
session.setAttribute("uid" , uid);
} return SUCCESS;
} public String getUid() { return uid;
} public void setUid(String uid) {
this.uid = uid;
} @Override
public void setServletRequest(HttpServletRequest arg0) {
// TODO Auto-generated method stub
this.request = arg0;
}
}

第四种方式:

用ServletActionContext得到request再得到sesion和application,这种获取到的类型与第二种相同

package cn.orlion.actions;

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 UserAction extends ActionSupport{ private String uid; private HttpServletRequest request; private HttpSession session; private ServletContext application; public String login(){ if (uid != null) { request = ServletActionContext.getRequest(); session = request.getSession(); application = session.getServletContext(); System.out.println(uid);
session.setAttribute("uid" , uid);
} return SUCCESS;
} public String getUid() { return uid;
} public void setUid(String uid) {
this.uid = uid;
}
}

二、JSP中获取

通过session.setAttribute()方式设置的值不能通过<s:property value="#session.uid" />方式获取到。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>success</title>
</head>
<body>
uid为:<s:property value="#session.uid" />|||<br/>
${ sessionScope.uid } <s:debug></s:debug>
</body>
</html>

struts2获取web元素(request、session、application)的更多相关文章

  1. Struts2里如何取得request,session,application

    第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import c ...

  2. Struts2中获取Web元素request、session、application对象的四种方式

    我们在学习web编程的时候,一般都是通过requet.session.application(servletcontext)进行一系列相关的操作,request.session.和applicatio ...

  3. struts2获取web元素的方式和方法

    获取web资源的方式按是否与servlet耦合可分为两种,再细分按照依赖方式又有两种即 依赖容器 和  依赖注入 什么是依赖容器 就是依赖  ActionContext或者ServletActionC ...

  4. Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)

    truts2在Action中如何访问request,session,application(即ServletContext)对象???? 方式一:与Servlet API解耦的方式      可以使用 ...

  5. struct2访问或添加request/session/application

    访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute()  {     ActionConte ...

  6. Strut2 ognl取出存放在request,session,application和对象栈的中的值

    1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet( ...

  7. request, session, application辨析(待更新)

    作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话 ...

  8. request,session,application

    JSP 的3个内置对象request,session,application,其实都有一个作用域,这些对象内部有一个Map成员用于存放数据,比如session对象的setAttribute(key,v ...

  9. page,request,session,application四个域对象的使用及区别

    转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...

随机推荐

  1. bdb mvcc: buffer 何时可以被 看到; mvcc trans何时被移除

    # txn.h struct __db_txnregion SH_TAILQ_HEAD(__active) active_txn; SH_TAILQ_HEAD(__mvcc) mvcc_txn; # ...

  2. hdu 5104 素数打表水题

    http://acm.hdu.edu.cn/showproblem.php?pid=5104 找元组数量,满足p1<=p2<=p3且p1+p2+p3=n且都是素数 不用素数打表都能过,数据 ...

  3. 解决Win7下VC6.0插入ActiveX控件对话框为空的问题

    在Win7环境下,编写MFC应用程序,Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中Gallery文件为空,也就无法 ...

  4. 6.用CXF编写基于Spring的WebService

    首先是服务器端: //实体类 public class Weather { private String region;//区域编码 private String regionName;//区域名称 ...

  5. Autolayout(VFL)

    Autolayout(VFL) 1.NSLayoutConstraint + (NSArray *)constraintsWithVisualFormat:(NSString *)format opt ...

  6. JSON 序列化和反序列化——JavaScriptSerializer实现

    一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...

  7. WP7系统托盘和应用程序栏

    (一)系统托盘和应用程序栏系统托盘(1)显示系统级别的状态信息(2)Apps能隐藏和显示系统托盘Micosoft.Phone.Shell.SystemTray.IsVisible=true;应用程序栏 ...

  8. 使用Ivy管理项目中的依赖

    Ivy是什么 Ivy是一个跟踪管理项目直接以来关系的工具.Ivy具有良好的灵活性和可配置性,使其可以适应各种不同的依赖管理和构建过程要求:虽然Ivy作为依赖管理工具,其可以与Apache Ant进行紧 ...

  9. vc编译 curl 7.36.0

    CURL邮件列表中提到官方最新版本的windows devel包中缺少文件,而我又用不到https,所以我就自己下载源码包来编译了 下载源码包:http://curl.haxx.se/download ...

  10. array new 与 array deletedelete

    以前在看C++书和上C++课的时候可以看到 delete[] pointer; 的用法,而大多数对于这个用法没有具体的解释,多是看到: 有一个delete运算符的特殊语法,可以释放动态分配的数组内存: ...