关于struts2中获取request和response

1、访问或添加request/session/application属性

public String scope() throws Exception{

ActionContext ctx = ActionContext.getContext();

ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app

ctx.getSession().put("ses", "session范围");//往session里放入ses

ctx.put("req", "request范围");//往request里放入req

return "scope";

}

JSP:

<body>

${applicationScope.app} <br>

${sessionScope.ses}<br>

${requestScope.req}<br>

</body>

2、获取HttpServletRequest/HttpSession/ServletContext/HttpServletResponse对象

方法一、通过ServletActionContext类直接获取:

public String rsa() throws Exception{

HttpServletRequest request = ServletActionContext.getRequest();

ServletContext servletContext = ServletActionContext.getServletContext();

request.getSession();

HttpServletResponse response = ServletActionContext.getResponse();

return "scope";

}

方法二、实现指定接口,由struts框架运行时注入:

public class HelloWorldAction implements ServletRequestAware, ServletResponseAware, ServletContextAware{

private HttpServletRequest request;

private ServletContext servletContext;

private HttpServletResponse response;

public void setServletRequest(HttpServletRequest req) {

this.request=req;

}

public void setServletResponse(HttpServletResponse res) {

this.response=res;

}

public void setServletContext(ServletContext ser) {

this.servletContext=ser;

}

}

package com.ljq.action;

import java.util.Arrays;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionContext;

public class HelloWorldAction {

//在页面中采用以下el表达式输出
 //第一种
 //${applicationScope.app}
 //${sessionScope.ses}
 //${requestScope.req}
 //第二种
 //${app}
 //${ses}
 //${req}
 public String list() {
 ActionContext ctx = ActionContext.getContext();
 ctx.getApplication().put("app", "应用范围");// 往ServletContext里放入application
 ctx.getSession().put("ses", "session范围");// 往session里放入session
 ctx.put("req", "request范围");// 往request里放入request
 ctx.put("names", Arrays.asList("张三", "李四", "王五"));
 return "message";
 }

//在页面中采用以下el表达式输出
 //第一种
 //${applicationScope.app}
 //${sessionScope.ses}
 //${requestScope.req}
 //第二种
 //${app}
 //${ses}
 //${req}
 public String get() throws Exception {
 HttpServletRequest request = ServletActionContext.getRequest();
 ServletContext servletContext = ServletActionContext.getServletContext();
 request.setAttribute("req", "请求范围属性");
 request.getSession().setAttribute("ses", "会话范围属性");
 servletContext.setAttribute("app", "应用范围属性");
 // HttpServletResponse response = ServletActionContext.getResponse();
 return "message";
}
}

jsp代码
${applicationScope.app} <br>
${sessionScope.ses}<br>
${requestScope.req}<br>
===========<br/>
${app} <br>
${ses}<br>
${req}<br>
===========<br/>
<c:forEach items="${names}" var="name">
${name }<br/>
</c:forEach>

时间: 2024-08-27 23:38:09

关于struts2中获取request和response的相关文章

struts2中获取request、response,与android客户端进行交互(文件传递给客户端)

用struts2作为服务器框架,与android客户端进行交互需要得到request.response对象. struts2中获取request.response有两种方法. 第一种:利用ServletActionContext的静态方法 Struts2 利用ServletActionContext类来维护Servlet对象,ServletActionContext利用ThreadLocal来维护 不同线程的Servlet对象,因此可以使用ServletActionContext类获取,这种方法

Struts学习笔记(三)struts2中获得request、response和session的三种方法

struts2中获得request.response和session的三种方法   (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext()获取当前Action的上下文对象. ActionContext ctx = ActionContext.getContext(); ctx.put("liuwei", "andy"); //request.setAttribute("l

在springMVC的controller中获取request,response对象的一个方法

使用springMVC的时候,有些时候会需要获取请求或者响应对象,例如在身份验证的时候,需要获取请求头中的token,在做登录系统的时候需要使用response对象向客户端添加cookie,一个有效的做法是在controller的方法中添加对应参数如下所示: @RestController public class Test2Contrller { @RequestMapping("/test") public void test(HttpServletRequest req, Htt

Struts2,springMVC获取request和response

springMVC获取request和response1:在BaseController中加入: protected HttpServletRequest request;   protected HttpServletResponse response;   protected HttpSession session; @ModelAttribute   public void setReqAndRes(HttpServletRequest request, HttpServletRespon

在java中如何在非servlet的普通类中获取request、response、session

原文:http://blog.csdn.net/u012255097/article/details/53092628 在spring的普通类中: HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); request.getSession(); 在Struts的普通类中: HttpServletRequest reques

ssm框架中获取request和response

有时候需要在Controller.service中使用HttpServletRequest或HttpServletResponse对象,这里记下3种方法 1.直接在Controller接收参数HttpServletRequest或HttpServletResponse,再传到service类中 2.在service类中需要使用req和res对象的方法上加@ModelAttribute注解,并且在方法参数列表里接收这两个对象即可在方法里使用 3.在web.xml中配置监听器(专门监听http对象)

在SpringMVC中获取request对象的几种方式

1.最简单的方式(注解法) 1 2 @Autowired private  HttpServletRequest request; 2.最麻烦的方法 a. 在web.xml中配置一个监听 <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> b.之后在程序里可以用 Http

在SpringMVC中获取request对象

1.注解法 Java代码   @Autowired private  HttpServletRequest request; 2. 在web.xml中配置一个监听 Xml代码   <listener> <listener-class> org.springframework.web.context.request.RequestContextListener </listener-class> </listener> 之后在程序里可以用 Java代码   H

如何在SpringMVC中获取request对象

1.注解法 @Autowired private HttpServletRequest request; 2. 在web.xml中配置一个监听 HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); 3.直接在参数中引入 public String hello(HttpServletRequest request,HttpS