1. 获取request,session的方法
1.1. 非IOC
public class Test extends ActionSupport{
ActionContext context;
Map request;
Map session;
Map application;
public String execute()throws Exception{
context = ActionContext.getContext();
request = (Map) context.get("request");
session = context.getSession();
application = context.getApplication();
request.put("req", "ceshi");
session.put("sess", "admin");
return "SUCCESS";
}
}
前台取值方法:
<s:property value="#request.req">
<s:property value="#session.sess">
这是OGNL写法,在后面我们将详细的学习。
1.2. IOC模式
public class Test extends ActionSupport
implements RequestAware,SessionAware,ApplicationAware{
Map request;
Map session;
Map application;
public String execute()throws Exception{
request.put("req", "ceshi");
session.put("sess", "admin");
return "SUCCESS";
}
public void setRequest(Map request) {
this.request = request;
}
public void setSession(Map session) {
this.session = session;
}
public void setApplication(Map application) {
this.application = application;
}
}
该方法区别与第一个方法的地方在于其实现了几个借口,同时实现了其自带的几个方法,这几个set方法会自动寻找类的属性,在方法体中进行赋值操作,容器自己注入。
以上两种方法,如果需要获得容器对应的作用域中固有属性,就没有用了。
1.3. 非IOC模式
public class TestScope extends ActionSupport{
HttpServletRequest request;
HttpSession session;
ServletContext application;
public String execute()throws Exception{
request = ServletActionContext.getRequest();
session = request.getSession();
application = ServletActionContext.getServletContext();
request.setAttribute("loginname", "admin");
return "SUCCESS";
}
}
如果只是单纯的传递值,那么以上两种方法均可以达到,但是如果需要用到一些servlet本身的属性时,这样的操作就很有价值了。
1.4. IOC模式
public class TestScope extends ActionSupport implements
ServletRequestAware,ServletContextAware
{
HttpServletRequest request;
HttpSession session;
ServletContext application;
public String execute()throws Exception{
session = request.getSession();
request.setAttribute("loginname", "admin");
return "SUCCESS";
}
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setServletContext(ServletContext application) {
this.application = application;
}
}
唯一需要我们关注的时,在系统注入的时候,session没有被注入,我们必须手动的通过request这个属性来获取session的值。
什么是IOC,有兴趣可以自己学习,一下,不过我相信,通过以上例子,大家应该有个模糊的印象。
<!--EndFragment-->
分享到:
相关推荐
这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅限于当前请求的生命周期内。在Struts2中,我们通常通过Action类的成员变量来访问request域...
- **方法**:通过 Action 的 getter 方法获取数据,然后将其添加到 request 或 session 中传递给视图。 - **原理**:Struts2 的拦截器会在 Action 执行完成后,调用 getter 方法并将结果存储到适当的范围对象中。 *...
Action类通常包含了业务逻辑的处理方法,这些方法会被Struts2调用以响应用户的请求。Action类可以通过返回不同的字符串来决定后续的视图显示,如返回"success"、"error"等,这些字符串与配置文件中的Result相关联。 ...
### Struts2框架学习笔记整理 #### 一、Struts2框架概述 ##### 1.1 Struts2框架定义 Struts2是一个基于MVC(Model-View-Controller)架构模式的开源Java web应用框架,它能够帮助开发者构建可扩展且易于维护的...
本学习笔记结合测试源代码深入探讨了如何在Struts2框架下获取并使用`request`、`session`、`ServletContext`以及`response`对象,这些都是在Web开发中不可或缺的基础组件。 ### request对象 `HttpServletRequest`...
Struts学习笔记之ActionForm ActionForm是Struts框架中的一种重要组件,用于封装和处理用户的表单数据。在Struts中,ActionForm是继承自JavaBeans的,主要用于处理用户的表单数据和业务逻辑。下面是ActionForm的...
- **服务器对象**:Struts2提供了一系列的方法来获取服务器端的对象,如session、application和request等。 - **装配接口**:Struts2支持自动装配机制,允许开发者通过实现特定的接口(如RequestAware、SessionAware...
赵栋的Struts2笔记主要涵盖了2013年的相关知识,以下是根据笔记内容提炼出的一些关键知识点: 1. **URL与Action方法绑定**: 在Struts2中,通过URL直接调用Action类的方法是可能的。如果在URL中附加"!"后跟方法名...
虽然笔记中没有提供源代码,但学习过程中可以通过模仿示例创建简单的Struts2应用,如用户登录注册系统,熟悉Action配置、视图展现和拦截器的使用。 总结,黑马程序员Struts2 2016版的前3Days笔记重点介绍了Struts2...
1. **使用Struts2标签库**:最简单的方法就是使用Struts2自带的标签库,如`<s:property>`标签来获取数据。例如: ```jsp <s:property value="username" /> ``` 2. **使用JSTL或其他表达式语言**:对于更高级的...
在 Struts 1.3.8 中,表单 Bean 可以是 session-based 或 request-based,根据应用场景选择合适的方式。 5. **Tiles 模块**:Struts 1.3.x 版本引入了 Tiles 框架,它允许开发者定义可重用的页面布局,增强了视图层...
### Struts 学习笔记(4):深入理解 OGNL 表达式与 Struts2 标签 #### 一、OGNL 表达式简介 **OGNL**(Object Graph Navigation Language)是一种功能强大的表达式语言,在 Struts2 框架中扮演着非常重要的角色。...
- `ServletActionContext`可用于获取`request`、`response`和`servletContext`对象,但不提供直接获取`session`的方法。 #### 三、Struts.xml中package标签的详细配置说明 **1. 基本属性**: - **name**:包的...
根据给定文件的信息,我们可以总结出关于Spring、Hibernate与...以上就是Spring、Hibernate与Struts2框架使用与整合的主要知识点,通过这些知识点的学习和实践,可以帮助开发者更好地理解和掌握这些框架的使用方法。
本篇学习笔记主要关注的是ActionForm,它是Struts框架中用于处理用户请求的核心组件之一。 ActionForm是Struts中用于接收和验证用户输入的数据的类。当用户通过表单提交数据时,这些数据会被封装到一个ActionForm...
Struts2_OGNL笔记主要关注的是如何在Struts2框架中使用OGNL(Object-Graph Navigation Language)表达式语言。OGNL作为一种强大的表达式语言,常用于Struts2的视图层,允许开发者轻松地访问和操作Java对象的属性。 ...
本篇笔记主要介绍了在Struts2中使用OGNL的一些基本用法。 首先,OGNL可以用来获取不同范围内的属性值。在Java Web开发中,有四种常见的作用域:Request、Session、Application和Page。在示例代码中,`<s:property>`...
在这篇Struts2学习笔记中,我们将重点讨论如何在Struts2中使用这些元素。 首先,`request`对象代表了HTTP请求的生命周期,它只存在于一次请求中。当用户通过浏览器发送一个请求到服务器,服务器创建一个request对象...