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等)
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 访问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的属性名和属性值。
原文:http://www.cnblogs.com/JamKong/p/4354572.html