struts2获取web元素(request、session、application)
一、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)的更多相关文章
- Struts2里如何取得request,session,application
第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import c ...
- Struts2中获取Web元素request、session、application对象的四种方式
我们在学习web编程的时候,一般都是通过requet.session.application(servletcontext)进行一系列相关的操作,request.session.和applicatio ...
- struts2获取web元素的方式和方法
获取web资源的方式按是否与servlet耦合可分为两种,再细分按照依赖方式又有两种即 依赖容器 和 依赖注入 什么是依赖容器 就是依赖 ActionContext或者ServletActionC ...
- Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)
truts2在Action中如何访问request,session,application(即ServletContext)对象???? 方式一:与Servlet API解耦的方式 可以使用 ...
- struct2访问或添加request/session/application
访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute() { ActionConte ...
- Strut2 ognl取出存放在request,session,application和对象栈的中的值
1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet( ...
- request, session, application辨析(待更新)
作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话 ...
- request,session,application
JSP 的3个内置对象request,session,application,其实都有一个作用域,这些对象内部有一个Map成员用于存放数据,比如session对象的setAttribute(key,v ...
- page,request,session,application四个域对象的使用及区别
转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束, ...
随机推荐
- IntelliJ IDEA 发布最新版本13.0.1
难闻转自:慧都控件网 值得高兴的消息,IntelliJ IDEA v13.0.1目前已经发布,相对于IntelliJ IDEA v13而言,此次更新内容,是略微改进和提高了性能,如代码输入变化,及完善 ...
- 原生javaScript中使用Ajax实现异步通信
AJAX本质就是在HTTP协议的基础上以异步的方式与服务器进行通信,所谓异步,就是指某段程序执行时不会阻塞其它程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序,相反则为同步. 以下开始简单 ...
- 数据库、数据表的创建SP2
本人前一个版本的数据库.数据表的创建由于不是很详细,于是通过细心的修订,已经修复了很多Bug,希望这篇文章能够给大家一些帮助 --代表注释,相当于C#里的// --切换到master数据库,目的是 ...
- H5 canvas填充文字自动换行
canvas是H5中非常重要,非常常用,也是非常强大的一个新标签,美中不足的事,canvas中没没有自动换行的属性,我的第一反应是,字符串截取,然后计算每行的距离来实现自动换行.. 然后百度了一下,已 ...
- step by step设置postgresql用户密码并配置远程连接
设置pgsql默认用户posgres的密码 1.确认pgsql是开启的 /etc/init.d/postgresql status 2.使用默认用户登录 sudo su postgres 3.进入ps ...
- Swift-ImageView响应点击事件
随着Swift语言的不断更新迭代,纯Swift语言编写的代码更加紧凑简单,结合StoryBorad的使用,使开发苹果APP的门槛降低了不少.个人也是比较推荐使用Interface Builder去生成 ...
- CoreCLR 在 Linux 下编译成功
https://github.com/dotnet/coreclr/wiki/Building-and-Running-CoreCLR-on-Linux ubuntu-14.10 clang --ve ...
- libQtCassandra 0.5.0 发布
libQtCassandra 0.5.0 修复了 QCassandraRow::exists() 函数的问题,更新了 Thrift 库. libQtCassandra 是一个高级的 C++ 库用来访问 ...
- android 退出机制
android sdk 退出机制的研究 有多种, 方法一.用list保存activity实例,然后逐一干掉 上代码: import java.util.LinkedList; import java. ...
- Asp.Net Web API 2第十课——使用OWIN自承载Web API
详情请查看http://aehyok.com/Blog/Detail/71.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...