String param_value = getServletContext().getInitParameter("para_name");

解决方案 »

  1.   

    单纯的JAVA bean是获得不料这些参数的,除非采用jdom或者jax读取分析此XML文件,
    另外一种方法就是要拥有servlet的全局Content对象,这样就可以直接通过content.getinitparameter("DBDriver"),好像是这个方法名字,具体你可以点出来看看
      

  2.   

    二楼的方法不行,因为不知道应该包含哪个包!---------------------------------------------------------------------------------
    //这是一个.Net的Web.config文件
      <appSettings> <add key = "strConnection" value="data source=TELESCOPE;initial catalog=jjcars;persist security info=True;user id=sa;pwd=pass;packet size=4096"/>
    <add key= "Manager" value="admin"/>
     </appSettings>-----------------------------------------------------------------------------
    这是从.Net的类中读取全局变量的方法
    string strConn=ConfigurationSettings.AppSettings["strConnection"];------------------------------------------------------------------------------难道JSP中的JavaBean就没类似的解决方法?
      

  3.   

    String value = getServletContext().getInitParameter("DBPass");
    out.println(value);
      

  4.   

    楼上的方法在Bean中根本就不行,说getServletContext()没定义...
    我指在Bean中好用的方法!
      

  5.   

    你如果不进入 Context 怎么能直接读呢, 除非 直接找到磁盘上 web.xml 文件, 直接读文件.
      

  6.   

    使用servletconfig 对象config.getInitParameter("")
      

  7.   

    我觉得把xml里面的属性放到javabean的属性里面做成一个对象放到map里面去,是static类型的,不知道行不行。
      

  8.   

    public final class Config{
       private static final Config instance = new Config();
       public static final getInstance(){return instance;}
       private final Properties config= new Properties();      // 这个方法可以使用包内访问级别.
       void putParam(String key,String value){config.setProperty(key,value); }   public Properties getConfig(){  }  //  
    }      public class ConfigListener implements ServletContextListener {
    public void contextDestroyed(ServletContextEvent event) { 
      System.out.println("Bye!");
    }public void contextInitialized(ServletContextEvent event) {
      ServletContext ctx = event.getServletContext();
      Config cfg  =Config.getInstance();
     // 你在 JavaBean 中也这样访问.Config.getInstance().getConfig();  Enumeration names = ctx getInitParameterNames();
      while(names.hasMoreElements()){
          String key =  (String) names.nextElement();
          config.putParam(key,ctx.getInitParameter(key));
       }
     }
    }
      

  9.   

    补充上帖, 那个 ConfigListener 要在 web.xml 上配置.
    <listener>
         <listener-class>ConfigListener</listener-class>
    </listener>最好把 Config 和 ConfigListener 放在与 JavaBean 或其他Servlet 不同的包内,
    这样能限制对包内方法的访问.或者在 Config 中添加状态变量记录曾经被 ConfigListener 放入过参数. 以后再修改这个 Config 就抛错, 表示只能进行一次初始化.
      

  10.   

    楼主的问题:  如何从JavaBean中读取Web.xml中的全局变量? 
    我们可以理解为:
    1,如何用java读取一个名称为Web.xml的文件;
    2,如何在web container内利用一个JavaBean读取Web.xml中的变量;
    呵呵,如果是第一种理解方式的话,那用sax来读吧;如果是第二种的话,2楼的答案应该没问题的,不过这位兄弟少和你说了一句:String param_value = getServletContext().getInitParameter("para_name");这句要放在servlet里面的,不是随便放个java class里就可以的.
    ps:记得要将web server启动哦,哈