servlert中的代码如下:public void init(ServletConfig config) throws ServletException {
// Put your code here
super.init(config);
String str = config.getInitParameter("email"); str = "afsf";
}
web.xml的配置信息如下:
 <servlet-mapping>
    <servlet-name>customOpe</servlet-name>
    <url-pattern>/servlet/customOpe</url-pattern>
    <init-param>
<param-name>email</param-name>      
<param-value>qiyadeng</param-value>    
</init-param>  
<init-param>
<param-name>name</param-name> 
<param-value>qiyadeng</param-value>    
</init-param>
  </servlet-mapping>在servlert无法用 String str = config.getInitParameter("email");返回为null?

解决方案 »

  1.   

    新建一个Servlet:ReadInitParameter.java并在web.xml中增加如下配置:  <servlet>
        <servlet-name>ReadInitParameter</servlet-name>
        <servlet-class>com.test.ReadInitParameter</servlet-class>
        <init-param>
          <param-name>email</param-name>
          <param-value>[email protected]</param-value>
        </init-param>
        <init-param>
          <param-name>name</param-name>
          <param-value>qiyadeng</param-value>
        </init-param>
      </servlet>   <servletclass>com.test.ReadInitParameter</servlet-class>是servlet的完整路径,包括包名。
    配置好了web.xml,现在可以在程序中读取初始化的参数了。在init(ServletConfig config)方法中传递了一个ServletConfig参数,可以这样获取初始化参数:  public void init(ServletConfig config) throws ServletException
      {
        super.init(config);
        String email = config.getInitParameter("email");
        String name = config.getInitParameter("name");
      }在其他的方法中象doGet(),doPost(),service()方法中可以用getServeltConfig()方法得到一个ServetConfig对象,在利用该对象的getInitParameter()方法取到对应的初始化参数。
      String email   = getServletConfig().getInitParameter("email");
      String name= getServletConfig().getInitParameter("name");
      

  2.   


    servlet-mapping> 
        <servlet-name>customOpe </servlet-name> 
        <url-pattern>/servlet/customOpe </url-pattern> 
        <init-param> 
    <param-name>email </param-name>      
    <param-value>qiyadeng </param-value>    
    </init-param>  
    <init-param> 
    <param-name>name </param-name> 
    <param-value>qiyadeng </param-value>    
    </init-param> 
      </servlet-mapping> 
    你这个配置里面的email后面还有一空格去掉配置的里的空格,或在servlet中加一个空格String str = config.getInitParameter("email "); 
      

  3.   

     正解,记住servlet只在容器加载的时候实例话,init()方法只执行一次
      

  4.   

    不好意思,我的代码实际上没有空格,而贴到CSDN就多出空格了。