Servlet的API的访问.
Servlet的API的访问:(三种方式)
1.完全解耦合的方式:(ActionContext)
ActionContext的方法:
* Map<String,Object> getParameters();
* put(String key,Object value);
* Map<String,Object> getSession();
* Map<String,Object> getApplication();
// 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()
}
比较三种方式:
最好:第一种完全解耦合方式.
最熟练:第三种方式.