Struts2之Action获取request、session、application对象

需要分别实现对应的接口:RequestAware, SessionAware, ApplicationAware

首先,当浏览器拿着地址去访问服务器时,服务器解析出地址的后缀并传给web.xml配置好的前端控制器,这个时候struts2的前端控制器拿到这个字符串后,就会开始判断它是否跟配置文件里的某个Action对象匹配上。

匹配上之后,前端控制器就会放行,执行相应Action。由于Action代替原有的Servlet做控制,但问题是它本身并不是Servlet类,并没有request这些属于Servlet的对象,那么这些对象就需要前端控制器传给Action。那么问题就来了,它怎么传给我的Action啊,一般来说调用我提供给它的set方法就ok了,问题又来了,它怎么知道我写的方法叫什么名字啊,所以它才提供了接口出来,这样名字是它定的,自然就懂得调用那个方法将属于servlet的一些对象传给我的Action了。

原文地址:https://www.cnblogs.com/suned-dog/p/11186497.html

时间: 2024-10-19 13:42:18

Struts2之Action获取request、session、application对象的相关文章

Struts2里如何取得request,session,application

第一种:取得MAP类型的request,session,application在java文件里写 package com.xjtu.st; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private Map reques

struts2 action中获取request session application的方法

共四种方式: 其中前两种得到的是Map<String,Object>  后两种得到的才是真正的request对象 而Map就是把request对象中的属性取出做成了键值对而已. [方法一] public class LoginAction { private Map request; private Map session; private Map application; public String execute() { request = (Map)ActionContext.getCo

struts2 访问或添加request/session/application属性

第一种方法: ActionContext ctx = ActionContext.getContext(); ctx.put("r1", list);//向request中添加属性 ctx.getSession().put("s1",list);//向session中添加属性 ctx.getApplication().put("a1", list);//向application中添加属性 HttpSession session =null; se

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

1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet(){ ServletActionContext.getRequest().setAttribute("request_username", "username"); ActionContext.getContext().getSession().put("se

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

转自:page,request,session,application四个域对象的使用及区别 1.page指当前页面.只在一个jsp页面里有效 .2.request 指从http请求到服务器处理结束,返回响应的整个过程.在这个过程中使用forward方式跳转多个jsp.在这些页面里你都可以使用这个变量. 3.Session 有效范围当前会话,从浏览器打开到浏览器关闭这个过程. 4.application它的有效范围是整个应用. 作用域里的变量,它们的存活时间是最长的,如果不进行手工删除,它们就一

暑期项目经验(九) -- request session application

request.session.application 一.基础知识 可以看看  浅谈:request,session,application(http://blog.csdn.net/hzc543806053/article/details/7416007) 要点: 作用域: request<session<application 共同方法:都可以使用 setAttribute(String name , Object o ) ,getAttribute(String name) 二.在ja

struct2访问或添加request/session/application

访问或添加request/session/application1 通过ActionContext//这样放置public String execute(){ActionContext ctx = ActionContext.getContext();ctx.getApplication().put("app","lll");ctx.getSession().put("ses","session范围");ctx.put(&qu

【JAVA学习】struts2的action中使用session的方法

尊重版权:http://hi.baidu.com/dillisbest/item/0bdc35c0b477b853ad00efac 在Struts2里,如果需要在Action中使用session,可以通过下面两种方式得到1.通过ActionContext class中的方法getSession得到2.Action实现org.apache.struts2.interceptor.SessionAware接口的方式来对session进行操作 下面先看一个采用第一种方式,在action中得到sessi

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

作用域 request < session < application 分析 1. request 只在一次请求中有效,当请求发送变化时,信息将失效. 2. session 在当前一次会话中有效,即当同一个浏览器多次访问时,在这多次访问中传递信息,就是session的作用. session失效: session过期 服务器调用invalidate() 通过<%@ page session="false" %>(不推荐使用) 3. application 在一次服