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 访问 Servlet API 的几种方法。 一、使用 ActionContext 类 ActionContext 类是 Struts2 框架中一个重要的类,它提供了多种方法来访问 Servlet API。该类可以模拟获取 request、...
在Struts2中,经常需要从Action类中获取请求(Request)和响应(Response)对象来处理用户请求和传递数据。本文将详细解释Struts2中获取Request对象的四种不同方式。 1. **Servlet不相关的非IoC取得Request等对象的...
Struts2提供了一系列方便的方式来访问这些对象,包括但不限于非IoC和IoC两种不同的模式,以及是否与Servlet容器相关联。 #### 二、Struts2 Action获取属性范围的四种方式 根据给定文件的内容,我们将逐一介绍...
这通常包括Struts的JAR文件,以及相关的依赖库,如Servlet和JSP API。你可以从Apache官方网站获取最新的Struts版本,然后将其添加到你的项目类路径中。如果你使用的是Maven或Gradle,可以通过配置管理依赖来简化这个...
Struts是Apache软件基金会旗下一个开源的Java web应用程序框架,主要用于构建基于Model-View-Controller (MVC)架构的Web应用。本教程指南旨在帮助初学者深入理解和掌握Struts框架...祝你在Struts的学习之旅中取得成功!
综上所述,Java高级工程师面试题中的SSH2涵盖了Spring、Struts和Hibernate这三个框架的基本概念、工作原理以及应用场景。对于希望在Java领域取得更好发展的人来说,熟练掌握这些技术是非常重要的。
174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话...
它包含了一系列的API和服务,如Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java Message Service)等,用于处理并发、事务、安全和分布式计算。 3. **Spring**:这是一个全面的企业级应用开发框架,它支持...
答:Struts1和Struts2是两个完全不同的框架,Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的所有请求。Struts2以核心控制器FilterDispatcher为基础,包含了框架内部的控制流程和处理机制。 ...
以上内容涵盖了Java面试中常见的基础知识点,包括JDBC的基本概念、Servlet与Filter的生命周期管理、Session的工作机制、面向对象编程中的关键字区别、转发与重定向的使用场景差异、Hashtable与HashMap的特点对比、...
同时,熟悉Java API中的常用类和接口,特别是集合框架,如ArrayList、LinkedList、HashMap等,它们在实际开发中广泛应用。 在界面编程方面,可以了解AWT和Swing,虽然现在更多地转向了JavaFX,但AWT和Swing仍然是...
在实际开发中,Struts、Spring MVC或JSF等框架都是基于这一模式的实现,它们帮助开发者更有效地组织代码,提高可维护性和可扩展性。 JNDI(Java Naming and Directory Interface)是J2EE中的服务,用于查找和绑定...
#### 六、Struts2中控制器的特征及标签库使用方法 - **控制器特征**: - Action类通常继承自`ActionSupport`类。 - 方法签名通常为`public String execute()`或带有注解的方法。 - **标签库使用方法**: - ...
9. **JPA(Java Persistence API)**:提供了ORM(对象关系映射)的标准,用于处理Java对象和数据库之间的映射。 10. **JAX-RS(Java API for RESTful Web Services)**:定义了创建RESTful服务的API,使得开发Web...
ASP.NET和Java是两种广泛应用的Web开发技术,SSH和JSP分别是Java领域的框架和技术。...理解并掌握这些核心技术,将有助于在考试中取得优异成绩。在实际工作中,这些技能也是开发高质量Web应用的基础。
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域,Java J2SE(Java Standard Edition)和J2EE(Java Enterprise Edition)扮演着至...不断更新知识,跟踪Java的发展,对于在大型公司中取得成功至关重要。
在J2EE面试中,求职者需要具备扎实的理论基础和实践经验,以便成功应对各种问题。J2EE(Java 2 Platform, Enterprise Edition)是一种由Oracle...以上就是J2EE面试题中可能涉及的关键知识点,祝你在面试中取得好成绩!
9. **Struts和Struts2**:MVC框架,Action类,拦截器,配置文件。 10. **Web服务**:SOAP(简单对象访问协议)和RESTful服务,JAX-WS和JAX-RS。 11. **JSF(JavaServer Faces)**:UI组件,EL,FacesContext,导航...
4. 第四阶段:Struts MVC架构,学习Struts配置、ActionServlet、ActionForm、Struts标签库和验证框架。 5. 第五阶段:XML技术,包括XML语法、DOM和SAX解析、XSL、XSLT、JDOM和JAXP的实践。 6. 第六阶段:Linux基础...
这个认证通常涵盖了Java语言基础、Servlets、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)、过滤器、监听器、MVC设计模式、JPA(Java Persistence API)以及相关框架如Spring MVC或...