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的属性名和属性值。

原文地址:https://www.cnblogs.com/JamKong/p/4354572.html