欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Struts的数据处理方式

程序员文章站 2022-06-02 12:33:42
...

第一种:通过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;
	}

}

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






相关标签: 数据 struts