zoukankan      html  css  js  c++  java
  • Struts2学习笔记

    Struts2 学习

      1. 第一步:导入8个核心包

    a)     commons-fileupload-1.3.1

    b)     commons-io-2.2

    c)     commons-lang3-3.2

    d)     freemarker-2.3.19

    e)     javassist-3.11.0.GA

    f)      ognl-3.0.6

    g)     struts2-core-2.3.20

    h)     xwork-core-2.3.20

      2. 第二步:修改web.xml配置文件

    a)     给配置文件添加Filter

      3. 第三步:创建输入视图

      4. 第四步:实现业务逻辑类

      5. 第五步:创建业务控制器(Action 继承 ActionSupport)

      6. 第六步:配置业务控制器(struts.xml等)

     

    Action直接访问Servlet API

      1. 实现接口:(推荐指数最差)

    a)     ServletContextAware : 实现该接口的Action可以直接访问web应用的ServletContext对象;

    b)     ServletRequestAware :实现该接口的Action可以直接访问用户请求的HttpServletRequest对象;

    c)     ServletResponseAware : 实现该接口的Action可以直接访问服务器响应的HttpServletResponse对象;

      2. 调用ServletActionContext的方法:(与第1点相比,更优点)

    a)     static PageContext getPageContext() : 取得web应用的PageContext对象。

    b)     static HttpServletRequest getRequest() : 取得web应用的HttpServletRequest对象;

    c)     static HttpServletResponse getResponse(): 取得web应用的HttpServletResponse对象;

    d)     static ServletContext getServletContext():取得web应用的ServletContext对象。

      3. 对于第1、2点的说明:

    虽然ServletActionContext类和ServletContextAware等接口都可以使得Action直接访问Servlet API,但是Action与Servlet API直接耦合了,不利于程序解耦。

    所以极力推荐使用下面这种间接的访问Servlet API,而不是上面这两种,如果一定需要直接访问Servlet API的话,那么最好通过ServletActionContext类的帮助,从而以更简单的方式直接访问Servlet API。

    Action间接访问

      Action 访问ActionContext 来间接访问 Servlet API(极力推荐)

    a)     Object  get ( Object key ) :该方法和HttpServletRequest的getAttribute ( String name )方法类似;

    b)     Map  getApplication ( ):返回一个Map对象,该对象模拟了web应用对应的ServletContext对象;

    c)     ActionContext  getContext ( ) :获取系统的ActionContext对象

    d)     Map  getParameters ( ):获取所有的请求参数,类似于调用HttpServletRequest对象的getParameterMap ( )方法;

    e)     Map  getSession ( ):返回一个Map对象,该对象模拟了HttpSession对象;

    f)      Void setApplication( Map application):直接传入一个Map对象将该Map对象中的key-value键值对转换成application的属性名和属性值;

    g)     Void setSession( Map session ):直接传入一个Map对象,将该Map对象里的key-value 键值对转换成session的属性名和属性值。

  • 相关阅读:
    Linux部署web项目
    bash: mysql: command not found(解决方法)
    mysql登录遇到ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    mysqld:未被识别的服务(解决方法)
    Xshell4连接,Linux系统中文显示乱码解决办法
    F5双机冗余配置
    H3C S10512虚拟化配置
    cisco3900板卡sm-es3g-24-p使用方法
    详解Cisco ACS AAA认证-1(转)
    cisco路由器license的相关命令简单梳理(转)
  • 原文地址:https://www.cnblogs.com/JamKong/p/4354572.html
Copyright © 2011-2022 走看看