`
vvnet
  • 浏览: 116482 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

Struts2取得Servlet API中的一些对象

    博客分类:
  • JAVA
阅读更多
Strutx 2.0你可以有两种方式获得这些对象:非IoC(控制反转Inversion of Control)方式和IoC方式。

非IoC方式

要获得上述对象,关键Struts 2.0中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。 另外,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)的对象。

IoC方式

要使用IoC方式,我们首先要告诉IoC容器(Container)想取得某个对象的意愿,通过实现相应的接口做到这点。具体实现,请参考例6 IocServlet.java。
package tutorial;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

publicclass NonIoCServlet extends ActionSupport {
    private String message;
   
    public String getMessage() {
        return message;       
    }
   
    @Override
    public String execute() {   
        ActionContext.getContext().getSession().put("msg", "Hello World from Session!");
       
        HttpServletRequest request = ServletActionContext.getRequest();
        HttpServletResponse response = ServletActionContext.getResponse();       
        HttpSession session = request.getSession();
       
        StringBuffer sb =new StringBuffer("Message from request: ");
        sb.append(request.getParameter("msg"));
        sb.append("<br>Response Buffer Size: ");
        sb.append(response.getBufferSize());
        sb.append("<br>Session ID: ");
        sb.append(session.getId());
       
        message = sb.toString();
        return SUCCESS;
    }
}例6 classes/tutorial/NonIoCServlet.java

package tutorial;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

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("<br>Response Buffer Size: ");
        sb.append(response.getBufferSize());
        sb.append("<br>Session ID: ");
        sb.append(session.getId());
       
        message = sb.toString();
        return SUCCESS;
    }
}


http://www.blogjava.net/max/archive/2006/10/18/75857.html
常用的Struts2.0的标志
分享到:
评论

相关推荐

    struts2之Action访问Servlet API

    在本文中,我们将详细介绍 Struts2 访问 Servlet API 的几种方法。 一、使用 ActionContext 类 ActionContext 类是 Struts2 框架中一个重要的类,它提供了多种方法来访问 Servlet API。该类可以模拟获取 request、...

    Struts2获取request的四种方式

    在Struts2中,经常需要从Action类中获取请求(Request)和响应(Response)对象来处理用户请求和传递数据。本文将详细解释Struts2中获取Request对象的四种不同方式。 1. **Servlet不相关的非IoC取得Request等对象的...

    Struts2 如何使Action取得属性范围 通配符 国际化等内容

    Struts2提供了一系列方便的方式来访问这些对象,包括但不限于非IoC和IoC两种不同的模式,以及是否与Servlet容器相关联。 #### 二、Struts2 Action获取属性范围的四种方式 根据给定文件的内容,我们将逐一介绍...

    struts架构的指导

    这通常包括Struts的JAR文件,以及相关的依赖库,如Servlet和JSP API。你可以从Apache官方网站获取最新的Struts版本,然后将其添加到你的项目类路径中。如果你使用的是Maven或Gradle,可以通过配置管理依赖来简化这个...

    struts教程指南

    Struts是Apache软件基金会旗下一个开源的Java web应用程序框架,主要用于构建基于Model-View-Controller (MVC)架构的Web应用。本教程指南旨在帮助初学者深入理解和掌握Struts框架...祝你在Struts的学习之旅中取得成功!

    Java高级工程师面试题SSH2

    综上所述,Java高级工程师面试题中的SSH2涵盖了Spring、Struts和Hibernate这三个框架的基本概念、工作原理以及应用场景。对于希望在Java领域取得更好发展的人来说,熟练掌握这些技术是非常重要的。

    java面试宝典

    174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话...

    java多种帮助

    它包含了一系列的API和服务,如Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,用于处理并发、事务、安全和分布式计算。 3. **Spring**:这是一个全面的企业级应用开发框架,它支持...

    java面试题

    答:Struts1和Struts2是两个完全不同的框架,Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。 ...

    Java面试题.docx

    以上内容涵盖了Java面试中常见的基础知识点,包括JDBC的基本概念、Servlet与Filter的生命周期管理、Session的工作机制、面向对象编程中的关键字区别、转发与重定向的使用场景差异、Hashtable与HashMap的特点对比、...

    学习Java的步骤 Java入门指导

    同时,熟悉Java API中的常用类和接口,特别是集合框架,如ArrayList、LinkedList、HashMap等,它们在实际开发中广泛应用。 在界面编程方面,可以了解AWT和Swing,虽然现在更多地转向了JavaFX,但AWT和Swing仍然是...

    j2ee考试必备

    在实际开发中,Struts、Spring MVC或JSF等框架都是基于这一模式的实现,它们帮助开发者更有效地组织代码,提高可维护性和可扩展性。 JNDI(Java Naming and Directory Interface)是J2EE中的服务,用于查找和绑定...

    javaee简答

    #### 六、Struts2中控制器的特征及标签库使用方法 - **控制器特征**: - Action类通常继承自`ActionSupport`类。 - 方法签名通常为`public String execute()`或带有注解的方法。 - **标签库使用方法**: - ...

    认识j2ee规范 认识j2ee的规范是每个j2ee爱好者都应了解的东西

    9. **JPA(Java Persistence API)**:提供了ORM(对象关系映射)的标准,用于处理Java对象和数据库之间的映射。 10. **JAX-RS(Java API for RESTful Web Services)**:定义了创建RESTful服务的API,使得开发Web...

    asp.net及java方向考试题

    ASP.NET和Java是两种广泛应用的Web开发技术,SSH和JSP分别是Java领域的框架和技术。...理解并掌握这些核心技术,将有助于在考试中取得优异成绩。在实际工作中,这些技能也是开发高质量Web应用的基础。

    Java 最新面试题 j2SE j2ee 大型公司面试集

    Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域,Java J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)扮演着至...不断更新知识,跟踪Java的发展,对于在大型公司中取得成功至关重要。

    J2EE面试题

    在J2EE面试中,求职者需要具备扎实的理论基础和实践经验,以便成功应对各种问题。J2EE(Java 2 Platform, Enterprise Edition)是一种由Oracle...以上就是J2EE面试题中可能涉及的关键知识点,祝你在面试中取得好成绩!

    java和javaEE面试题大全打包

    9. **Struts和Struts2**:MVC框架,Action类,拦截器,配置文件。 10. **Web服务**:SOAP(简单对象访问协议)和RESTful服务,JAX-WS和JAX-RS。 11. **JSF(JavaServer Faces)**:UI组件,EL,FacesContext,导航...

    java课程纲目.pdf

    4. 第四阶段:Struts MVC架构,学习Struts配置、ActionServlet、ActionForm、Struts标签库和验证框架。 5. 第五阶段:XML技术,包括XML语法、DOM和SAX解析、XSL、XSLT、JDOM和JAXP的实践。 6. 第六阶段:Linux基础...

    Java Web 最新认证

    这个认证通常涵盖了Java语言基础、Servlets、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)、过滤器、监听器、MVC设计模式、JPA(Java Persistence API)以及相关框架如Spring MVC或...

Global site tag (gtag.js) - Google Analytics