这个问题? struts就是怎么读的啊!~

解决方案 »

  1.   

    在web.xml设置Context-param 项.设置如下
    <context-param>
     <param-name>conf_xml</param-name>
     <param-value>/WEB-INF/conf/message.xml</param-value>
    </context-param>
    然后写一个listener类
    class Pdklistener implements ServletContextListener{
      public void contextInitialized(ServletContextEvent  event){
         //在这里操作
          String xmlPath =  event.getServletContext().getRealPath("/") + event.getServletContext().getInitParameter("conf_xml");
       //您可以创建一个类来存储这个信息.以后就可以在你的应用里使用了.  
      }
      public void contextDestroyed(ServletContextEvent event){
      }
    }
    //最后,把这个listener设置到web.xml中
    <listener>
      <listener-class>Pdklistener (这里要类的全路径)</listener-class>
    </listener>
    #####################################################################
    另-种方法,很简单.在jsp中加上下面一段.就可以取得web-inf下面的文件
    String str = request.getRealPath("WEB-INF") + "/conf/message.xml";
    这个完全也可以.
      

  2.   

    String path = ServletActionContext.getServletContext().getRealPath("web-inf/classes/menus");
    File f = new File(path);
    f.listFiles();
    上述方法返回menus下的所有配置文件.
    String path = ServletActionContext.getServletContext().getRealPath("web-inf/classes/menus/a.xml");
    File f = new File(path);
    上述方法返回menus下a.xml配置文件.
      

  3.   

    哦.忘记说了这是在struts2中,不过其他的web应用道理也是一样得到ServletContext,再得到RealPath
      

  4.   


    web.xml
    <init-param>
          <param-name>XXXX</param-name>
          <param-value>******</param-value>
    </init-param>Action这样读取
    String str = request,getServlet().getInitParameter("XXXX")str就是******。
      

  5.   

    程序里按照路径读,发布出去是不可以访问WEB-INF下的文件的