Servlet的API的访问.
Servlet的API的访问:(三种方式)
1.完全解耦合的方式:(ActionContext)
ActionContext的方法:
* Map<String,Object> getParameters(); ---接收参数.
* put(String key,Object value); ---向request域中存数据.
* Map<String,Object> getSession(); ---获得session的Map.
* Map<String,Object> getApplication(); ---获得application的Map.
// 1.接收表单的数据:
ActionContext actionContext = ActionContext.getContext();
Map<String,Object> map = actionContext.getParameters();
String[] names = (String[]) map.get("name");
System.out.println(names[0]);
String[] sexs = (String[]) map.get("sex");
System.out.println(sexs[0]);
// 2.向域中存数据:
// 2.1向request域中存值:
actionContext.put("reqName", "美美");
// 2.2向session域中存值:
actionContext.getSession().put("sessName", "标哥");
// 2.3向application域中存值:
actionContext.getApplication().put("appName", "大标哥");
2.使用接口注入的方式:
实现接口的方式:
* ServletRequestAware:
* ServletContextAware:
* ServletResponseAware:
public class RequestAction2 extends ActionSupport implements ServletRequestAware,ServletContextAware{
private HttpServletRequest request;
private ServletContext context;
@Override
public String execute() throws Exception {
// 接收参数:
String name = request.getParameter("name");
String sex = request.getParameter("sex");
System.out.println(name);
System.out.println(sex);
// 向域中保存数据:
request.setAttribute("reqName", "凤姐");
request.getSession().setAttribute("sessName", "杜宏");
context.setAttribute("appName", "芙蓉");
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletContext(ServletContext context) {
this.context = context;
}
}
3.使用类中静态方法的方式:(耦合)
ServletActionContext:
* getRequest();
* getServletContext();
* getResponse();
@Override
public String execute() throws Exception {
// 接收参数:
HttpServletRequest req = ServletActionContext.getRequest();
String name = req.getParameter("name");
String sex = req.getParameter("sex");
System.out.println(name);
System.out.println(sex);
// 向域中保存数据:
req.setAttribute("reqName", "天一");
req.getSession().setAttribute("sessName", "冠希");
ServletActionContext.getServletContext().setAttribute("appName", "冰冰");
return super.execute();
}
比较三种方式:
最好:第一种完全解耦合方式.
最熟练:第三种方式.