在servlet中,經過request.getparameter與setparameter來實現後端與前端jsp頁面的數據交互,那麼在struts中,也有幾種方式來操做request,session實現後端與前端的交互。前端
方法1、利用ActionContext.getContext().get("request");後端
Map<String,Object> request = (Map<String,Object>)ActionContext.getContext().get("request"); request.put(key, value); request.get("key"); Map<String,Object> session = ActionContext.getContext().getSession(); session.put(key, value); session.get(key);
方法2、使用ServletActionContext.getRequest();session
HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute(arg0, arg1); request.getAttribute(arg0) HttpServletRequest req = ServletActionContext.getRequest(); HttpSession session = req.getSession(); session.setAttribute(arg0, arg1); session.getAttribute(arg0);
方法3、使用RequestAware,SessionAware接口jsp
1.實現這兩個接口ide
public class NewsAction extends ActionSupport implements RequestAware,SessionAware {}
2.定義兩個成員變量this
private Map<String,Object> session; private Map<String,Object> request;
3.重寫接口中的方法spa
@Override public void setRequest(Map<String, Object> arg0) { this.request = arg0; } @Override public void setSession(Map<String, Object> arg0) { // TODO Auto-generated method stub this.session = arg0; }
4.使用session.put(),session.get(),request.put(),request.get()方法實現code
public class NewsAction extends ActionSupport implements RequestAware,SessionAware { private Map<String,Object> session; private Map<String,Object> request; @Override public void setRequest(Map<String, Object> arg0) { this.request = arg0; } @Override public void setSession(Map<String, Object> arg0) { // TODO Auto-generated method stub this.session = arg0; } }