刚刚写了一个小例子,可是发现页面的属性值都是通过setter getter方法赋值的,(这里感觉有些类似一些面向组建的框架如:tapestry,同样使用了功能强大的ognl表达式)如果我们想要通过request 得到某个值 那么struts2中是如何得到的呢
众所周知在struts1中 public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { } 就有request ,respongse对象
那么在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("<br>Response Buffer Size: ");
sb.append(response.getBufferSize());
sb.append("<br>Session ID: ");
sb.append(session.getId());
message = sb.toString();
return SUCCESS;
}
}
分享到:
相关推荐
通过`ActionContext`的`getContext()`方法可以得到当前的`ActionContext`实例,然后通过这个实例进一步获取到request、response和session。 #### 示例代码: ```java import ...
在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...
标题中的“访问或添加三个范围的属性与获取Request-Session-ServletContext-Response对象”指的是在Java Web开发中,如何操作四个重要的请求处理对象:HttpServletRequest(Request)、HttpSession(Session)、...
在 JSP 页面中可以直接使用 Session 对象,也可以通过 pageContext.getSession() 或 request.getSession() 方法重新获取 Session 对象。Session 对象可以保存用户的登录信息,实现购物车功能等。 HTTP 协议是一种无...
目前的 ASP 版本总共提供了六个内建对象,分别是Request对象、Response对象、Server对象、Session对象、Application对象及ObjectContext对象,其各自功能简述如下: Request对象:负责从客户机接收信息; Response ...
【Java Web程序设计】在开发Web应用程序时,理解并熟练运用`Request`、`Response`以及`Session`对象是至关重要的。这三个对象是Java Servlet API的核心组成部分,它们在处理HTTP请求和响应时扮演着关键角色。 `...
在Java Web程序设计中,Request和Response对象以及Session对象是核心概念,它们在处理客户端请求和响应时起着至关重要的作用。在这个文档中,我们通过两个课堂案例来深入理解这些概念。 首先,我们来看第一个案例,...
什么是JSP的内置对象 JSP的内置对象有哪些? request对象 与 response对象 session对象 application对象 out对象
总结来说,理解request和response对象的使用,掌握session数据的管理,以及熟悉MongoDB与Node.js的结合,是构建高效、稳定的Web系统的基础。在实际项目中,这些知识点可以帮助开发者构建出具有用户认证、状态追踪等...
相较于Struts1,Struts2对request、response、session等核心对象的处理方式有所不同。在Struts1中,可以直接访问这些对象;而在Struts2中,为了更好地实现解耦,这些对象被封装了起来,开发者需要通过特定的方式才能...
在ASP.NET编程中,了解和熟练使用六大对象——Response,Request,Server,Application,Session,Cookie至关重要。这些对象是ASP.NET框架中用于处理客户端请求和服务器响应的核心组件,它们提供了丰富的功能来帮助...
在Struts2中,ActionContext类扮演着重要的角色,它提供了与请求(Request)和响应(Response)对象交互的能力。了解如何通过ActionContext类获取和操作这些对象是开发Struts2应用的基础。 ActionContext类位于`org...
在ASP中,Request和Response是两个非常重要的内置对象,它们分别用于处理客户端发送的请求和向客户端发送响应。 Request对象主要用于获取客户端发送到服务器的数据。在ASP程序中,数据可以通过多种方式传递,如GET...
在 Struts2 中,处理用户请求时经常需要使用到 Servlet 的内置对象,比如 Request、Session 和 Application,这些对象可以帮助开发者存储和获取数据。然而,在实际应用中,为了避免代码与 Servlet API 过度耦合,...
在处理用户操作时,我们常常需要对页面进行跳转或重定向,这通常通过`request`和`response`对象来实现。这两者在实现页面跳转时有明显的区别,下面将详细阐述它们的不同之处。 首先,我们了解`request`和`response`...
可以通过`Request`对象的`session()`方法,`session()`全局辅助函数,或者`Session` Facade。例如,`$request->session()->put('key1','value1')`。 2. **获取值**:获取Session数据通常使用`get`方法,如`session...
response 响应对象 session 会话对象 request 请求对象 pageContext 页面上下文对象 application 应用程序对象 exception 异常对象 说明:有几种对象看起来和ASP的内置对象差不多,功能也类似,这是因为这些内置对象...
**JSP内置对象Request与Response详解** 在JavaServer Pages (JSP) 技术中,Request和Response是两个非常重要的内置对象,它们分别代表了HTTP请求和响应的生命周期中的关键部分。了解并熟练掌握这两个对象的使用对于...