Struts2提供了了AcitonContext类,访问ServletAPI
1.Object get(Object key) :类似于调用HttpServletRequest的getAtrrribute(String name)方法。
2.Map getApplication() 返回一个Map对象,该对象模拟了ServletContext 实例。
3.static AcitonContext getContext() 静态方法、获取系的ActionContext实例。
4.Map getParameter() 获取所有的请求参数,类似于HttpServletRequest的getParameter()。
5.Map getSession() 返回已个Map对象,模拟了HttpSession实例。
6.void setApplication(Map application) 设置application范围属性
7.void setSession() 设置seesion范围属性
8.void put() 设置request范围属性
package snut;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport {
// 定义封装请求参数的username和password成员变量
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
// 定义处理用户请求的execute方法
public String execute() throws Exception {
ActionContext ctx = ActionContext.getContext();
//通过ActionContext访问application范围的属性值
Integer counter = (Integer) ctx.getApplication().get("counter");//类似Request中的getAttribute
if (counter == null) {
counter = 1;
} else {
counter += 1;
}
//通过Application设置application范围的属性
ctx.getApplication().put("counter", counter);
//通过ActionContext设置奇偶session范围的属性
ctx.getSession().put("user", getUsername());
// 当username为crazyit.org,password为leegang时即登录成功
if (getUsername().equals("zpf")
&& getPassword().equals("1234")) {
//通过ActionContext 谁之request范围的属性
ctx.put("tip", "服务器提示:您已成功登陆");
return SUCCESS;
}
ctx.put("tip", "服务器提示:登录失败");
return ERROR;
}
}