码迷,mamicode.com
首页 > Windows程序 > 详细

(七)Action访问Servlet API

时间:2018-08-08 23:41:35      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:对象   ceo   err   text   null   ons   ext   contex   extends   

第一种方式:

            Struts2提供了一个ServletActionContext对象可以访问ServletAPI。
            例如
                HttpServletRequest request=ServletActionContext.getRequest();
                HttpServletResponse response=ServletActionContext.getResponse();
                ServletContext context=ServletActionContext.getServletContext();
                HttpSession session=request.getSession(); 

第二种方式,实现ServletContextAware,ServletRequestAware,ServletResponseAware三个接口

   public class VcodeAction extends ActionSupport implements ServletContextAware,ServletRequestAware,ServletResponseAware { 
                    //定义三个参数
                    private HttpServletRequest request;
                    private HttpServletResponse response;
                    private ServletContext context;

                    public String execute() throws Exception {

                        return null;
                    } 
                    //实现接口中设置参数的方法
                    @Override
                    public void setServletResponse(HttpServletResponse response) {
                        this.response=response;

                    }
                    @Override
                    public void setServletRequest(HttpServletRequest request) {
                        this.request=request;

                    }
                    @Override
                    public void setServletContext(ServletContext context) {
                        this.context=context;

                    }
                }


                执行流程是什么,谁调用了set方法?
                struts的内建拦截器有一个ServletConfig的拦截器。
                它会先得到我们的动作类的引用,
                然后通过instanceof方法判断我们动作类是否属于ServletContextAware,ServletRequestAware,ServletResponseAware类型
                因为我们实现了这个接口,当然属于这个类型
                然后获取request,response等
                然后调用我们动作类实现的接口方法 setServletResponse,setServletRequest,setServletContext等为我们的request,response赋值。

  

  

(七)Action访问Servlet API

标签:对象   ceo   err   text   null   ons   ext   contex   extends   

原文地址:https://www.cnblogs.com/yuexiaoyun/p/9446371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!