1..structs 2 和serverlet API是完全分离的,为了能够使用serverlet API 可以在excute 方法中 应用actionContext 类
主要通过 getContext 方法 的道 ActionContext 的实例 ,注意ActionContext 类中的 getSession 的方法 返回的是Map 类型 ,他可以和httpsession对象之间进行转换
例子
ActionContext.getContext().getSession().put("user",getusername());
在jsp 页面中应用时就可以这样写 $(sessionScope.user)
利用ActionContext
public void put(Object key,Object value):类似request.setAttribute
public Object get(Object key):类似request.getAttribute
public Map getApplication():返回一个Map,模拟了ServletContext
public Map getSession():返回一个Map,模拟了HttpSession
完全应用serverlet
使用ActionContext无法直接使用Servlet API实例。为了直接使用Servlet API实例,Struts2提供如下接口:
ServletRequetAware
ServletResponseAware
ServletContextAware
只需Action类实现相应接口即可得到相应实例。
3、利用ServletActionContext类
Struts2提供了一个ServletActionContext类,以帮助直接访问ServletAPI
public static HttpServletRequest getRequest()
public static HttpServletResponse getResponse()
public static ServletContext getServletContext()
2 .action 类中的成员可以可以在下一个页面中取到 ,因为action中的属性被封装到一个请求属性中,该属性的名字 是 stucts.valueStack
例子
action中有一成员
private String name;
在jsp 页面中要想取得该值