今天看到:
web容器启动后,会读取web.xml,根据其中每个servlet的设置,加载servlet类并实例化,并为每个servlet生成一个ServletConfig对象,而后调用Servlet接口的init()方法,将产生的ServletConfig对象当做参数传入*Servlet容器通过参数ServletConfig给Servlet传递配置信息(键-值对) 但是我查看了一下源码,发现这个ServletConfig是一个接口来的,请问如何将配置的信息存在这个ServletConfig里面的呢???

解决方案 »

  1.   

    但是你有没有发现它有实现类,比如HttpServlet,http请求的
      

  2.   

    你误解了我的意思,Servlet容器通过参数ServletConfig给Servlet传递配置信息,这一步应该不是在它的子类实现的吧,应该是Servlet容器那边不知怎么做的把配置文件传给ServletConfig的吧,就如HttpServletRequest这个类,Servlet容器是如何把客户端的数据包装传给Servlet的,在源码中貌似就是实现如果把数据取出来,但是我是想了解它是如何把数据放进去这一块,请赐教!
      

  3.   

    这个是每个容器(tomcat/weblogic)自己实现的,你可以自己写个servlet,然后init的时候,打印ServletConfig对象的getClass();另外,面向接口编程。大部分时候,你没必要关心这个。
      

  4.   

    这个是每个容器(tomcat/weblogic)自己实现的,你可以自己写个servlet,然后init的时候,打印ServletConfig对象的getClass();支持
      

  5.   

    你目前真的不必。但是Servlet的规范(至少那些接口上声明的一些内容)需要知道
      

  6.   

    捧着好奇心,我决定还是要认真学习一下这个容器,不理解它具体的工作原理的话,那么写Servlet也就没意思了!!!不过,还是谢谢你!
      

  7.   

     配置文件
    <servlet servlet-name='my1'
              servlet-class='test.MyServlet'>
       <init-param param1='my1-1'/>
       <init-param param2='my1-2'/>
     </servlet>username = config.getInitParameter("username");
    password = config.getInitParameter("password");
    也可以直接赋值
    ServletConfig config = Turbine.getTurbineServletConfig();
      

  8.   

    web容器读取web.xml文件,构建成一个ServletConfig对象,当然通过反射,然后把这个对象注入HttpServlet中的ServletConfig中