struts2 servlet api 访问方式

Action中访问ServletAPI.

主要就是接收表单参数及向域对象中存取值.

关于SevletAPI的方法在Action中有三种方式:

 

1.完全解耦合的形式:

* 使用一个类:ActionContext.

* static ActionContext getContext(); --- 获得ActionContext对象

* Map getParameters();                   --- 接收提交到Action中的参数.

* Map getSession();                      --- 获得Session的Map.

* Map getApplication();                  --- 获得Application的Map.

* void put(String key,Object value); --- 向request中存值.

* Object get(String key);                --- 从request中获得值.

 

* 代码实现:

// 获得ActionContext对象

    ActionContext context = ActionContext.getContext();

    // 获得表单提交参数:

    Map<String,Object> map = context.getParameters();

    String[] username = (String[]) map.get("username");

    System.out.println(username[0]);

    String[] password = (String[]) map.get("password");

    System.out.println(password[0]);

   

    // 向request域中存值

    context.put("reqName", "reqValue");

    System.out.println("request域中的值:"+context.get("reqName"));

    // 向session域中存值

    context.getSession().put("sessName", "sessValue");

    System.out.println("session域中的值:"+context.getSession().get("sessName"));

    // 向ServletContext中存值

    context.getApplication().put("appName", "appValue");

    System.out.println("application域中的值:"+context.getApplication().get("appName"));
View Code

 

   

2.使用接口注入的方式:

* 实现接口:

* ServletRequestAware

* ServletResponseAware

* ServletContextAware

 

* 代码实现:

public class RequestAction2 extends ActionSupport implements ServletRequestAware,ServletContextAware{

private HttpServletRequest request;

private ServletContext context;

 

@Override

public String execute() throws Exception {

    // 1.接收参数:

    String username = request.getParameter("username");

    String password = request.getParameter("password");

    System.out.println(username +"   "+password);

    // 2.向request域中存值:

    request.setAttribute("reqName", "李健");

    // 3.向session域中存值:

    request.getSession().setAttribute("sessName", "凤姐");

    // 4.向application域中存值.

    context.setAttribute("appName", "芙蓉");

    return SUCCESS;

}

 

public void setServletRequest(HttpServletRequest request) {

    this.request = request;

}

 

public void setServletContext(ServletContext context) {

    this.context = context;

}

}

 
View Code

 

3.使用ServletActionContext中静态方法:

方法:

* getRequest();

* getResponse();

* getServetContext();

 

代码:

// 1.接收参数:

    HttpServletRequest request = ServletActionContext.getRequest();

    String username = request.getParameter("username");

    String password = request.getParameter("password");

    System.out.println(username+"    "+password);

    // 2.向request域中存值:

    request.setAttribute("reqName", "小健健");

    // 3.向session域中存值:

    request.getSession().setAttribute("sessName", "小凤凤");

    // 4.向application中存值:

    ServletActionContext.getServletContext().setAttribute("appName", "小蓉蓉");
View Code

 

 

***** 第一种方式是最好的!习惯第三种用的很方便.

转载于:https://my.oschina.net/jiemoxiaodi/blog/848358

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值