一、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. ASP.NET Web服务调用发生错误,错误代码404

    现象: iOS端使用ASIHTTP连接Web服务时,得到的数据是一个错误代码为404的页面,错误信息(web.config添加<customErrors mode="Off" ...

  2. PROC SORT

    PROC SORT DATA=输入数据集 <OUT=输出数据集><选项>; BY 关键变量; RUN; PROC SORT 语法如上,其中在尖括号中的可以不出现,也不会报错. ...

  3. 最小和(min)

    题目描述: N 个数排成一排,你可以任意选择连续的若干个数,算出它们的和.问该如何选择才能 使得和的绝对值最小. 如:N=8 时,8个数如下: 1    2    3     4    5    6 ...

  4. jquery操作dom

    1访问元素(属性,内容,值,css) 1元素属性(获取,设置,删除) .attr(name) .attr(key, value)  || .attr({key0:value0, key1:value1 ...

  5. Erlang在Windows上开发环境搭建全过程讲解目录

    我会按照下面的列表来一步一步讲解,在windows来开发Erlang所用到的一些工具,和知识.我会不停的添加和修正. Erlang运行时环境 Erlang开发工具选择 Rebar来构建,编译,测试,发 ...

  6. 【C-数组】

    一.一维数组 ①.定义方式 类型说明符 数组名 [常量表达式]; 如:int array[10]; 注意: 1) 数组的类型实际上是指数组元素的类型.对于同一个数组,其所有元素的数据类型都是相同的. ...

  7. KMP 算法

    KMP 是一个字符串匹配算法.之所以称之为KMP 是因为这个算法是由Knuth.Morris.Pratt三个提出来的. 这个算法能干什么呢 ? 我想到的有三个: 1. 告诉你一个串是否是另外一个串的子 ...

  8. c#判断是否为合法的email地址

    题目要求: class Program { static void Main(string[] args) { Console.WriteLine("请输入正确的邮箱地址,以 @sina.c ...

  9. halcon车牌的识别

    read_image (Audi2, 'audi2') fill_interlace (Audi2, ImageFilled, 'odd') dev_set_color('green') thresh ...

  10. 直接代码POST数据调用WebService

    ps:使用过webservice的童鞋大概都明白它是基于Soap协议交换数据的,同时Soap协议是对HTTP协议的扩展,其实我们就可以认为调用一个WEB服务就是通过http协议GET或POST数据的过 ...