zoukankan      html  css  js  c++  java
  • 高淇Struts2.0教程之视频笔记(6)

    6_ActionContext对象的使用_debug标签_获取真正的HttpServletRequestweb容器信息

     

    简单来说就是调用特定方法获取map表中的值

    6.1ActionContext获取Web容器信息

    以下是获取request、response、session演示,不是HttpServletRequest等对象。

    6.1.1由前一视频知道,数据都放在map表中,所以可以通过一些方法获得放在request、response、session里面的值

    6.1.2页面获取获取设定好的值

    6.1.3页面Debug测试ActionContext里面的值

     

    小结:

    上面测试,可以知道,通过ActionContext可以获取session、request、application,但他们并不是真正的HttpServletRequest,ttpServletResponse,ServletContext对象,而是将这三个对象包装成Map对象,Struts框架通过他们和真正的web容器对象交互。

     

    获得session : ac.getSession().put("s","ssss");

    获得request : Map m = ac.get("request");

    获得application : ac.getApplication();

    Ps:

    getSession()等这一类的代码不要在Action的构造函数里或直接给属性赋值,因为此时ActionContext里的一些值也许没有设置,这时通过ActionContext取得的值也许是null

    ActionContext、Action本身和HttpServletRequest对象没有关系,但是为了能够EL表达式(语法结构:${expression}),JSTL(JSP Standard Tag Library ,JSP标准标签库)能够直接操作他们的属性,会有一个拦截器将ActionContext、Action中的属性通过类似request.serAttribute方法置入request中,这样我们也可以通过${requestScope.uname}即可访问到ActionContext、Action中的属性。

    注意:Struts2后,使用装饰器模式来实现上述功能。

     

    6.2用ServletActionContext获取真正的Web容器信息

    6.2.1使用ServletActionContext类获取相关对象,代码如下:

     

    HttpServletRequest reg = ServletActionContext.getRequest();

        ServletActionContext.getRequest().getSession();

    ServletActionContext.getServletContext();

    6.2.2代码演示

    6.3 代码截图总结

  • 相关阅读:
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    Alpha 冲刺 (5/10)
    18软工实践-团队现场编程实战(抽奖系统)
    Alpha 冲刺 (4/10)
    BETA(4)
    BETA(3)
  • 原文地址:https://www.cnblogs.com/FreshStudent/p/3634567.html
Copyright © 2011-2022 走看看