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上下文中的数据。这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件...
### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...
在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...
在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...
在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...
总结来说,Struts2提供了多种途径来让Action访问request、response和session,开发者可以根据实际需求和偏好选择合适的方法。无论是通过ActionContext、依赖注入还是拦截器,都能够在Action中灵活地操作这些关键的...
本文总结了Struts2的常用方法和经验,涵盖了配置问题、EL表达式、Struts2的架构和Namespace等方面的知识点。 一、配置问题 Struts2的最新版本为GA 2.2.1,需要以下几个类库: 1.commons-fileupload-1.2.1.jar 2....
`AttributeMap`是一个特殊的类,它可以用来获取所有作用域内的值,包括`request`、`session`和`application`范围内的数据。 #### 三、接口实现 为了能够访问这些作用域,Struts2提供了几个接口,开发者可以根据...
2.修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,而“用户是否已经注册的判定信息”保存在application中,并在显示页面中,分别从request、session和application中获取数据并...
它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...
在Struts2中,ActionContext不仅仅是获取request和response的工具,它还包含了其他有用的上下文信息,如session、application等。例如,你可以通过ActionContext获取session中的数据: ```java Map, Object> ...
Struts2 标签可以访问不同的作用域的类,例如 request、session、application 等。 标签的优点 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展...
- 访问不同范围内的属性:如`#attr.userName`会按照`request > session > application`的顺序查找`userName`属性。 - **条件筛选**:在集合中使用OGNL进行条件筛选,例如`books.{?#this.price>35}`表示筛选价格...
4. 命名对象:包括在Servlet作用范围内的对象信息,如Request、Session、Application等。 在实际开发中,开发者可以通过OGNL表达式访问值栈中的Action属性、对象和其他信息。例如,使用标签可以输出Action中的属性...
2. **ServletActionContext类**:这是ActionContext的一个扩展,提供了更方便的访问Servlet相关对象的方法,如`ServletActionContext.getRequest()`和`ServletActionContext.getResponse()`分别用于获取...
ValueStack是Struts2框架中的核心概念,它是一个对象栈,包含了Action对象、模型对象以及不同作用域的固定名称对象(如#application、#session、#request等)。值栈使得标签库可以直接访问对象,而不需要在视图层和...
在搭建单元测试环境时,需要使用的 Jar 包有 junit4.jar 和 struts2-junit-plugin-2.1.8.jar。junit4.jar 是 Eclipse 自带的,可以在项目路径中导入。struts2-junit-plugin-2.1.8.jar 是 Struts2 提供的测试插件,...
ActionContext是Struts2框架的核心组件之一,它维护着当前请求的环境信息,包括请求参数、session、application等数据。在每次HTTP请求处理时,Struts2都会创建一个ActionContext实例,并将其设置为线程局部变量,...
- EL表达式默认会先查找page范围内的变量,然后依次是request、session和application范围。 **示例代码:** ```jsp ... <h1>Welcome, ${user.name}! <p>Your book ID is: ${user.book.id} ``` **JSTL:** JSTL...