1、完全解耦合的方式实现Servlet的API的访问
public class RequestDemo1Action extends ActionSupport{
@Override
public String execute() throws Exception {
// 接收参数:
/**
* 解耦合的方式通过ActionContext中的方法实现:
* * Map<String,Object> getParameters();
* * Map<String,Object> get(String key);
* * Map<String,Object> getSession();
* * Map<String,Object> getApplication();
* * void put(Stirng name,Object value);
* * void setSession(Map<String,Object> session);
* * void setApplication(Map<String,Object> application)
*/
// 接收参数:
ActionContext actionContext = ActionContext.getContext();
// 接收:
Map<String, Object> map = actionContext.getParameters();
for (String key : map.keySet()) {
String[] arrs = (String[]) map.get(key);
System.out.println(key+" "+Arrays.toString(arrs));
}
// 向域对象中存数据:
// 向request域中存入数据:
actionContext.put("reqName", "r郝宝强");// 相当于request.setAttribute("","")
// 向session域中存入数据:
actionContext.getSession().put("sessName", "s郝蓉");
// 向application域中存入数据:
actionContext.getApplication().put("appName", "a郝喆");
return SUCCESS;
}
}
l 接收参数:通过ActionContext中的方法实现:
n 创建ActionContext对象:
ActionContext actionContext= ActionContext.getContext();
n 获取表单中的所有数据:
actionContext.getParameters();
n 向request域中存入数据:
actionContext.put(“reqName” , “小张”);
n 向Session域中存入数据:
actionContext.getSession().put(“sessName” , “小王”);
n 向application域中存入数据:
actionContext.getApplication().put(“appName” , “小三”);
2、通过实现特定接口的方式完成Servlet的API的访问
public class RequestDemo2Action extends ActionSupport implements ServletRequestware{
private HttpServletRequest request ;
private ServletContext application;
@Override
public String execute() throws Exception {
// 接收参数:需要使用request对象。
Map<String, String[]> parameterMap = request.getParameterMap();
for (String key : parameterMap.keySet()) {
String[] value = parameterMap.get(key);
System.out.println(key+" "+Arrays.toString(value));
}
// 向request域中存值:
request.setAttribute("reqName", "r郝天一");
// 向session域中存值:
request.getSession().setAttribute("sessName", "s郝思聪");
// 向application域中存值:
application.setAttribute("appName", "a郝冠希");
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletContext(ServletContext application) {
this.application = application;
}
}
3、通过ServletActionContext方法实现Servlet的API的访问
public class RequestDemo3Action extends ActionSupport{
@Override
public String execute() throws Exception {
// 接收参数:
HttpServletRequest request = ServletActionContext.getRequest();
Map<String, String[]> parameterMap = request.getParameterMap();
for (String key : parameterMap.keySet()) {
String[] value = parameterMap.get(key);
System.out.println(key+" "+Arrays.toString(value));
}
// 向域中存值:
request.setAttribute("reqName", "r郝如花");
request.getSession().setAttribute("sessName", "s郝凤");
ServletActionContext.getServletContext().setAttribute("appName", "a郝石榴");
return super.execute();
}
}