在struts2中有两种方式可以得到这些对象
1、非IoC方式
要获得上述对象,关键Struts 2中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。有了这个对象我们想获得其他几个对象就好办了
ActionContext ctx = ActionContext.getContext();
Map session = ctx.getSession();
细心的朋友可以发现这里的session是个map对象在Struts2中底层的session都被封装成了Map类型我们可以直接操作这个map 进行对session的写入和读取操作而不用去直接操作HttpSession对象
另外,org.apache.struts2.ServletActionContext作为辅助类(Helper Class),可以帮助您快捷地获得这几个对象。
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
HttpSession session = request.getSession();
如果你只是想访问session的属性(Attribute),你也可以通过ActionContext.getContext().getSession()获取或添加session范围(Scoped)的对象。
2、IoC方式(这种方式在tapestry中也是这样实现的)
要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。具体实现
publicclass IoCServlet extends ActionSupport implements SessionAware, ServletRequestAware, ServletResponseAware {
private String message;
private Map att;
private HttpServletRequest request;
private HttpServletResponse response;
public String getMessage() {
return message;
}
publicvoid setSession(Map att) {
this.att = att;
}
publicvoid setServletRequest(HttpServletRequest request) {
this.request = request;
}
publicvoid setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public String execute() {
att.put("msg", "Hello World from Session!");
HttpSession session = request.getSession();
StringBuffer sb =new StringBuffer("Message from request: ");
sb.append(request.getParameter("msg"));
sb.append("
Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append("
Session ID: ");
sb.append(session.getId());
message = sb.toString();
return SUCCESS;
}
}
在struts.xml的action中配置拦截器
<interceptor-ref name="servletConfig"></interceptor-ref>
文章转载自网管之家:http://www.bitscn.com/pdb/java/200805/141781.html
分享到:
相关推荐
本文将深入探讨Struts2中如何获取request和session,以及这两种对象的作用和应用场景。 ### Struts2框架简介 Struts2是基于Java Servlet API的一个开源MVC(Model-View-Controller)框架,它提供了强大的功能来...
Struts2和Hibernate是两种非常重要的Java Web开发框架,它们在构建动态网站应用程序时起着核心作用。Struts2作为MVC(Model-View-Controller)框架,主要负责控制应用程序的流程,而Hibernate则是一个对象关系映射...
- **配置方式**:Struts2支持XML和注解两种配置方式,而Struts1主要通过XML配置。 - **拦截器机制**:Struts2具有更加强大的拦截器机制,能够更好地控制业务流程。 - **类型转换与验证**:Struts2提供了更加强大...
在Struts2中,`radio`标签是用于处理单选按钮的,它提供了一种优雅的方式来呈现和处理用户界面中的选择项。这篇博客文章可能是关于如何在Struts2框架中使用`radio`标签的深入讲解。 在Web开发中,单选按钮通常用于...
最近,Struts 2框架被曝光了两个高危漏洞:S2-045和S2-046,这两个漏洞对使用较旧版本Struts 2的系统构成了严重威胁。 S2-045漏洞,全称为"Struts 2 OGNL注入漏洞",主要源于Struts 2框架在处理OGNL表达式时的安全...
Struts2和Hibernate是两种非常重要的Java Web开发框架,它们在构建高效、可维护的Web应用程序中发挥着关键作用。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于简化Java Servlets和JSP的...
Struts2支持XML配置和注解配置两种方式。XML配置文件通常是`struts.xml`,在这里定义Action、Result以及Interceptor的配置。注解配置则可以直接在Action类或方法上添加注解,简化配置工作。 4. **模板技术** ...
本文将详细介绍这两种框架,并探讨如何利用它们来构建高效、低耦合性的J2EE应用。 #### 二、Hibernate简介及应用场景 Hibernate是一个开放源代码的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的...
3. **配置方式**:Struts2支持XML和注解两种配置方式。XML配置文件(struts.xml)用于定义Action、结果类型、拦截器等,注解则可以直接在Action类上标注,简化了配置过程。 4. **Action与结果**:Action是业务逻辑...
Struts2支持两种主要的验证方式:基于XML的配置和基于注解的验证。基于XML的验证方式将验证规则定义在struts.xml或类似的配置文件中,而基于注解的验证则允许我们在Action类的方法参数上直接添加注解来定义验证规则...
总结,Struts2提供了一种更灵活、更强大的Web应用开发方式,其配置更为简洁,Action类的设计更加面向对象,而且提供了丰富的插件和标签库,使得开发效率得到提升。通过这个入门实例,我们可以了解到Struts2的基本...
在STRUTS2框架中,有多种方式可以访问`session`和`request`对象。下面我们将详细介绍其中的两种主要方法:实现接口法和使用ActionContext。 #### 实现接口法 STRUTS2允许Action类通过实现特定的接口来访问`session...
在Struts2中,表单数据的校验是一个关键环节,用于确保用户提交的数据符合预期的格式和规则。本篇笔记将详细讲解Struts2中服务器端与客户端对表单数据的校验方式。 首先,Struts2提供了一系列内置的校验器,包括: ...
在Struts 2中,文件上传功能得到了增强,支持了多文件上传和更灵活的配置。 1. **Struts 1.x 文件上传** - 使用`multipart/form-data`编码类型来创建表单。 - 在ActionForm中定义一个FormFile类型的属性,用于...
4. **创建ActionForm**:如果请求中有表单数据,则创建一个对应的ActionForm实例来封装这些数据。 5. **调用Action**:ActionServlet根据配置信息调用具体的Action对象,执行相应的业务逻辑。 6. **返回结果**:...
### Struts2中的OGNL表达式相关简介 #### OGNL概述 OGNL(Object-Graph Navigation Language,对象图导航语言)是Struts 2框架的默认表达式语言,它极大地增强了Struts 2的数据访问能力和代码简洁性。OGNL不仅能够...
Struts2和Struts1.x是两种非常流行的Java Web应用程序框架,它们都源自Apache软件基金会,主要用于构建MVC(Model-View-Controller)架构的Web应用。然而,随着时间的推移,Struts2逐渐取代了Struts1.x,因为其在...
在Struts2框架中,Action类可以返回JSON响应。首先,需要在Action类上添加`@Result`注解,指定结果类型为JSON: ```java public class MyAction extends ActionSupport { @Override public String execute() ...
Struts和Hibernate是Java开发中两个非常重要的框架,它们在构建高效、可维护的企业级应用程序中发挥着关键作用。Struts是一种MVC(Model-View-Controller)框架,主要用于处理前端展示逻辑,而Hibernate则是一个ORM...