首页 > Windows开发 > 详细

(七)Action访问Servlet API

时间:2018-08-08 23:37:55      阅读:188      评论:0      收藏:0      [点我收藏+]

第一种方式:

            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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!