`

struts2关于request、session和application

阅读更多

   1、访问或添加request/session/application属性(此种方式适合仅仅是往3个范围放入属性)

public String execute() {
		//此种方式适合仅仅是往3个范围放入属性
		ActionContext act = ActionContext.getContext();
		act.getApplication().put("app", "application范围");//往ServletContext里放入app
		act.getSession().put("ses", "session范围");//往session里放入ses
		act.put("req", "request范围");//往request里放入req
		act.put("names", Arrays.asList("老张","老王","老于"));//将集合放入
		
		return "success";
	}

 

    引入jstl.jar和standard.jar

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 ${applicationScope.app }<br>
 ${sessionScope.ses }<br>
 ${requestScope.req }<br>
 ==========================================<br>
 <c:forEach items="${names}" var="name">
 ${name } <br>
 </c:forEach>

 

2、获取HttpServletRequest/HttpSession/ServletContext/HttpServletResponse对象

   

    方法一:通过ServletActionContext类直接获取(适用获取站点目录下某文件的绝对路径) 

public String rsa() {
		//此种方式适合获取站点目录下某文件的绝对路径
		HttpServletRequest request = ServletActionContext.getRequest();
		ServletContext servletContent = ServletActionContext.getServletContext();
		request.setAttribute("req", "请求范围属性");
		request.getSession().setAttribute("ses", "会话范围属性");
		servletContent.setAttribute("app", "应用范围属性");
		System.out.println(servletContent.getRealPath("HelloWorld.java"));//HelloWorld.java的绝对路径
//		HttpServletResponse response = ServletActionContext.getResponse();
		return "success";
	}

  

   方法二:实现指定接口,由struts运行时注入

public class HelloWorldAction implements ServletRequestAware,ServletResponseAware,ServletContextAware {
	private HttpServletRequest request;
	private ServletContext servletContext;
	private HttpServletResponse response;
	@Override
	public void setServletContext(ServletContext ser) {
		this.servletContext = ser;
			
	}
	@Override
	public void setServletResponse(HttpServletResponse rpo) {
		this.response = rpo;
			
	}
	@Override
	public void setServletRequest(HttpServletRequest req) {
		this.request = req;
			
	}
		
	public String rsa() {
		request.setAttribute("req", "请求范围属性");
		request.getSession().setAttribute("ses", "会话范围属性");
		servletContext.setAttribute("app", "应用范围属性");
		return "success";
	}
}

 

   

 

分享到:
评论

相关推荐

    Struts2访问request,session,application的四种方式

    在Struts2中,有四种主要的方式可以用来操作request、session和application上下文中的数据。这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件...

    struts2访问request,session,application作用域

    ### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...

    struts2创建 request response session application

    在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...

    Struts2学习笔记(三) Struts2中访问request,session,和application对象

    在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...

    struts2访问application、session以及request等web资源的示例代码

    在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...

    Struts2的Action中获得request response session几种方法

    总结来说,Struts2提供了多种途径来让Action访问request、response和session,开发者可以根据实际需求和偏好选择合适的方法。无论是通过ActionContext、依赖注入还是拦截器,都能够在Action中灵活地操作这些关键的...

    struts2学习心得

    本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-fileupload-1.2.1.jar 2....

    STRUTS2获得作用域、参数响应对象及三种符号说明

    `AttributeMap`是一个特殊的类,它可以用来获取所有作用域内的值,包括`request`、`session`和`application`范围内的数据。 #### 三、接口实现 为了能够访问这些作用域,Struts2提供了几个接口,开发者可以根据...

    修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,

    2.修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,而“用户是否已经注册的判定信息”保存在application中,并在显示页面中,分别从request、session和application中获取数据并...

    struts2简单案例

    它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...

    Struts2通过使用ActionContext类获取request和response对象

    在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object&gt; ...

    struts2标签使用方法

    Struts2 标签可以访问不同的作用域的类,例如 request、session、application 等。 标签的优点 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展...

    struts2 ognl的用法

    - 访问不同范围内的属性:如`#attr.userName`会按照`request &gt; session &gt; application`的顺序查找`userName`属性。 - **条件筛选**:在集合中使用OGNL进行条件筛选,例如`books.{?#this.price&gt;35}`表示筛选价格...

    Struts2_OGNL

    4. 命名对象:包括在Servlet作用范围内的对象信息,如Request、Session、Application等。 在实际开发中,开发者可以通过OGNL表达式访问值栈中的Action属性、对象和其他信息。例如,使用标签可以输出Action中的属性...

    struts2的API耦合与动态方法调用

    2. **ServletActionContext类**:这是ActionContext的一个扩展,提供了更方便的访问Servlet相关对象的方法,如`ServletActionContext.getRequest()`和`ServletActionContext.getResponse()`分别用于获取...

    struts2标签库

    ValueStack是Struts2框架中的核心概念,它是一个对象栈,包含了Action对象、模型对象以及不同作用域的固定名称对象(如#application、#session、#request等)。值栈使得标签库可以直接访问对象,而不需要在视图层和...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    在搭建单元测试环境时,需要使用的 Jar 包有 junit4.jar 和 struts2-junit-plugin-2.1.8.jar。junit4.jar 是 Eclipse 自带的,可以在项目路径中导入。struts2-junit-plugin-2.1.8.jar 是 Struts2 提供的测试插件,...

    struts2中的ActionContext与ognl

    ActionContext是Struts2框架的核心组件之一,它维护着当前请求的环境信息,包括请求参数、session、application等数据。在每次HTTP请求处理时,Struts2都会创建一个ActionContext实例,并将其设置为线程局部变量,...

    struts2配置文件以及代码示例

    - EL表达式默认会先查找page范围内的变量,然后依次是request、session和application范围。 **示例代码:** ```jsp ... &lt;h1&gt;Welcome, ${user.name}! &lt;p&gt;Your book ID is: ${user.book.id} ``` **JSTL:** JSTL...

Global site tag (gtag.js) - Google Analytics