Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)
truts2在Action中如何访问request,session,application(即ServletContext)对象????
方式一:与Servlet API解耦的方式
可以使用struts2中提供的Map对象来访问HttpRequest,HttpSession和ServletContext对象,要获取这三个Map对象,可以使用com.opensymphony.xwork2.ActionContext类提供的静态方法
ActionContext ctx=ActionContext.getContext();
ctx.getApplication().put(“app”,”Application应用对
象”);//ServletContext放入app
ctx.getSession().put(“ses”,”session应用对象”);
ctx.put(“req”,”request对象”);
######:
上面的三个方法,仅相当与request,session,applicationsetAttribute(string,object)方法。
struts2中提供的Map对象来提供类似request,session,application内置对象的功能,这些内置对象只有内置对象的一小部分功能,它不依赖于servlet,所以是解耦合的!!!
方式二:与Servlet
API耦合的访问方式
也可以直接访问Servlet环境中的HttpRequest,HttpSession和ServletContext对象。通过ServletActionContext.类提供的静态方法直接获取:
HttpServletRequest request=ServletActionContext.getRequest();
ServletContext
context=ServletActionContext.getServletContext();
HttpSession session=request.getSession();
HttpServletResponse
response=ServletActionContext.getResponse();
方式三、实现相关接口
- public class BaseAction extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {
- private static final long serialVersionUID = 7620009925942346125L;
- ActionContext context = ActionContext.getContext();
- HttpServletRequest request;
- HttpServletResponse response;
- SessionMap session;
- //获取request,response,session方式一,非IoC方式,不用实现SessionAware, ServletRequestAware, ServletResponseAware
- //ActionContext context = ActionContext.getContext();
- //HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
- //HttpServletResponse response = (HttpServletResponse) context.get(ServletActionContext.HTTP_RESPONSE);
- //Map session = context.getSession();
- //SessionMap session = (SessionMap) context.get(ActionContext.SESSION);
- //获取request,response,session方式一,IoC方式,必须实现SessionAware, ServletRequestAware, ServletResponseAware
- public void setSession(Map map) {
- this.session = (SessionMap) map;
- }
- public void setServletRequest(HttpServletRequest request) {
- this.request = request;
- }
- public void setServletResponse(HttpServletResponse response) {
- this.response = response;
- }
- }
Struts2初学 Struts2在Action获取内置对象request,session,application(即ServletContext)的更多相关文章
- ASP内置对象—Request、Response 、Server、Application 、ObjectContent (二)
Response (应答)对象 Request 对象.用于在HTTP请求期间,訪问不论什么client浏览器传递给server的信息,包含通过URL传递的參数信息.使用GET方法或POST方法传递的H ...
- JavaWeb——JSP内置对象request,response,重定向与转发 学习总结
什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...
- JSP内置对象---request对象(用户登录页面(返回值和数组:gerParameter,getParameterValues))
创建两个jsp页面:reg.jsp 和 request.jsp reg.jsp: <%@ page language="java" import="java.uti ...
- JSP学习笔记 - 内置对象 Request
1.主要掌握以下5个内置对象及其所属类,必须学会在java docs里根据类名查找相应的方法 request javax.servlet.http.HttpServletRequest res ...
- Webform(七)——内置对象(Session、Application)和Repeater的Command操作
内置对象:用于页面之间的数据交互 为什么要使用这么内置对象?因为HTTP的无状态性. 一.内置对象 (一)Session 跟Cookies一样用来存储用户数据 1.Session.Cookies对比 ...
- JSP内置对象---request 对象
request.jsp: <%@ page language="java" import="java.util.*" contentType=" ...
- 内置对象(Session、Application、ViewState)
内置对象:为了跨页面传值和状态保持.→HTTP的无状态性 [4.]Session:每一台电脑访问服务器,都会是独立的一套session,key值都一样,但是内容都是不一样的 以上所有内容,都跟cook ...
- JSP的内置对象 request和response
文章目录 1.request对象 2.response响应对象 3.out输出对象 4.session会话对象 5.application应用对象 概述 在使用JSP内置对象的时候.不需要先定义这些对 ...
- JSP内置对象-request
JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...
随机推荐
- android 设置屏幕方向
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//通过程序改变屏幕显示的方向 1.landscape:横屏(风景 ...
- getaddrinfo详解
#include <sys/socket.h> #include <netdb.h> int getaddrinfo(const char *restrict nodename ...
- 【转】Ubuntu 18.04安装小记
我的电脑是神舟z7 kp7s1,显卡1060,尝试了Ubuntu的16.04,安装完进入界面总是卡死了,后面换18.04依然无解,和版本无关,而是因为英伟达的显卡问题. 参考了如下这篇文章:Ubunt ...
- 常见文本框提示css技巧
很多时候会碰到那个的表单 一般我们做文字提醒功能时会在value处直接写上,现在总结一个比较好的方法直接上代码: html: <dl class="login_from"&g ...
- Spark学习散点总结
使用Spark 时,通常会有两种模式.一.在交互式编程环境(REPL, a.k.a spark-shell)下实现一些代码,测试一些功能点.二.像MapReduce 那样提前编写好源代码并编译打包(仅 ...
- [转]JavaScript异步机制详解
原文: https://www.jianshu.com/p/4ea4ee713ead --------------------------------------------------------- ...
- 【转】javascript 中的很多有用的东西
原文:https://www.cnblogs.com/ys-ys/p/5158510.html ---------------------------------------------------- ...
- (转)实现AI中LOD优化技术
LOD(Level Of Detail)是3D渲染中用到的概念,按照wikipedia上的翻译,可以译为“细节层次”,它是一种根据与观察点的距离,来减低物体或者模型的复杂度来提升渲染效率的优化技术,因 ...
- (1)风色从零单排《C++ Primer》 一个简单的c++程序
从零单排<C++ Primer> --(1)一个简单的c++程序 本次学习收获 0.写在前面 风色以前上过C++的课程,然而当时并没有认真去学,基本不能使用c++来作项目开发. 这次又一次 ...
- Caused by: java.lang.NumberFormatException: For input string: ""
1.错误描写叙述 java.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatEx ...