您的位置:首页 > 编程语言 > Java开发

struts2的servlet的API的三种方式

2017-06-29 11:12 375 查看
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();
}


比较三种方式:

最好:第一种完全解耦合方式.

最熟练:第三种方式.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: