struts2监听器

首先要实现com.opensymphony.xwork2.interceptor.PreResultListener类 并重写里面的方法beforeResult

Java代码

  1. public class MyListener implements PreResultListener { 
  2.  
  3.     public void beforeResult(ActionInvocation invocation, String resultCode) { 
  4.         System.out.println(resultCode); 
  5.     } 
  6.  

然后再在拦截器里面调用

Java代码

  1. invocation.addPreResultListener(new MyListener()); 

监听器是在这个拦截器完成别的拦截器之后调用的
struts2 Action获得HttpSession,HttpServletRequest,HttpSevletResponse的方法 非IOC方式 这种方式主要是利用了com.opensymphony.xwork2.ActionContext类以及org.apache.struts2.ServletActionContext类

Java代码

  1. ActionContext ctx = ActionContext.getContext();         
  2.         
  3.   HttpServletRequest request = (HttpServletRequest)ctx.get(ServletActionContext.HTTP_REQUEST);         
  4.         
  5.   HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);         
  6.           
  7.   //ServletActionContext.APPLICATION;         
  8.   //ServletActionContext.SESSION;         
  9.   //ServletActionContext.PAGE_CONTEXT;    
  10. //或者 
  11. HttpServletRequest request = ServletActionContext.getRequest ();  

主要是这两个类com.opensymphony.xwork2.ActionContext和org.apache.struts2.ServletActionContext都对request等进行了大量的封装,直接调用方法就可以获和
更好一点的IOC方式 action类实现ServletRequestAware接口,并新建一个HttpServletRequest request

Java代码

  1. public class UserLoginAction extends ActionSupport implements ServletRequestAware{ 
  2.    public void setServletRequest(HttpServletRequest request) { 
  3.      this.request=request; 
  4.   } 
  5. 然后可以生成的request得到对象,如request.getRemoteAddr() 
  6. action类实现SessionAware接口,并创建一个MAP对象session 
  7. public class UserLoginAction extends ActionSupport implements ServletRequestAware,SessionAware{ 
  8.    public void setServletRequest(HttpServletRequest request) { 
  9.      this.request=request; 
  10.   } 
  11. public void setSession(Map session) { 
  12.   this.session=session;   

}
这些获得HttpServletRequest等对象需要implments的接口都在 org.apache.struts2.interceptor下面 如Apllication的是ApplicationAware 如HttpSession的是SessionAware(struts2的Session都被封装成Map了) 如HttpServletRequest的是ServletRequestAware 如HttpServletResponse的是ServletResponseAware

转载于:https://www.cnblogs.com/wycnblogs/archive/2013/03/25/2980549.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值