• Java纯手打web服务器(三)


    概要:考虑到上一篇中的request和response对象的安全性,不允许servlt程序员在service方法中把servletRequest和servletResponse对象进行强转request和response对象,而访问到request和response对象中私有的方法,这里引入外观类:RequestFacade和ResponseFacade,只实现ServletResponse和ServletRequest中声明的方法

    具体代码如下:

    public class RequestFacade implements ServletRequest {
    
      private ServletRequest request = null;
    
      public RequestFacade(Request request) {
        this.request = request;
      }
    。。。。。。
    }
    
    
    public class ResponseFacade implements ServletResponse {
    
      private ServletResponse response;
      public ResponseFacade(Response response) {
        this.response = response;
      }
    。。。。。
    }
    

    将request和response对象作为私有变量在构造器是进行传入,用此方法进行保护。

    分析器相应的代码修改如下:

    Servlet servlet = null;
        RequestFacade requestFacade = new RequestFacade(request);
        ResponseFacade responseFacade = new ResponseFacade(response);
        try {
          servlet = (Servlet) myClass.newInstance();
          servlet.service((ServletRequest) requestFacade, (ServletResponse) responseFacade);
        }
        catch (Exception e) {
          System.out.println(e.toString());
        }
    
    定位问题原因* 根据原因思考问题解决方案* 实践验证方案有效性* 提交验证结果
  • 相关阅读:
    JAVA流和File类
    JAVA的Socket
    JAVA反射
    JAVA线程
    JAVA集合
    052-214(新增70题2018)
    052-213(新增70题2018)
    052-212(新增70题2018)
    052-211(新增70题2018)
    052-210(新增70题2018)
  • 原文地址:https://www.cnblogs.com/jimoliunian/p/13725682.html
Copyright © 2020-2023  润新知