Struts的数据处理方式

第一种:通过ServletApi执行操作

这种方式需要用到Servlet的jar包

HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
ServletContext application = ServletActionContext.getServletContext();
// 操作
request.setAttribute("request_data", "request_data1");
session.setAttribute("session_data", "session_data1");
application.setAttribute("application_data", "application_data1");

第二种通过ActionContext类获取数据

这种方式不需要引入Servlet包,降低了耦合性,所以一般推荐使用这种方式处理数据

ActionContext ac = ActionContext.getContext();
// 得到Struts对HttpServletRequest对象进行了封装,封装为一个map
// 拿到表示request对象的map
Map<String,Object> request =  ac.getContextMap(); //ac.get("request");
// 拿到表示session对象的map
Map<String, Object> session = ac.getSession();
// 拿到表示servletContext对象的map
Map<String, Object> application = ac.getApplication();

// 数据
request.put("request_data", "request_data1_actionContext");
session.put("session_data", "session_data1_actionContext");
application.put("application_data", "application_data1_actionContext");

第三种:通过实现接口的方式处理数据

public class DataAction extends ActionSupport implements RequestAware, SessionAware, ApplicationAware{
	
	private Map<String, Object> request;
	private Map<String, Object> session;
	private Map<String, Object> application;
	
	// struts运行时候,会把代表request的map对象注入
	@Override
	public void setRequest(Map<String, Object> request) {
		this.request = request;
	}
	// 注入session
	@Override
	public void setSession(Map<String, Object> session) {
		this.session = session;
	}
	// 注入application
	@Override
	public void setApplication(Map<String, Object> application) {
		this.application = application;
	}
	@Override
	public String execute() throws Exception {
		
	 	// 数据
	 	request.put("request_data", "request_data1_actionAware");
		session.put("session_data", "session_data1_actionAware");
		application.put("application_data", "application_data1_actionAware");		
		return SUCCESS;
	}

}

当处理数据的方法使用的次数比较多时使用第三种方式。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值