美文网首页
Spring 获取web根目录

Spring 获取web根目录

作者: 年少懵懂丶流年梦 | 来源:发表于2017-03-10 11:11 被阅读333次

    传统的方式:

    private HttpServletRequest request;  
     // 文件保存路径  
    String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";
    
    // 转存文件  
    file.transferTo(new File(filePath, file.getOriginalFilename()));  
    

    spring默认会以webapp.root为key保存webapp的根路径
    可以这样获取:

    System.getProperty("webapp.root")
    

    更改其配置,可在web.xml中的<web-app>节点内加入:

        <!-- webRoot根路径key值配置 -->  
        <context-param>    
            <param-name>webAppRootKey</param-name>     
            <param-value>tansungWeb.root</param-value>    
        </context-param>    
        <listener>     
            <listener-class>org.springframework.web.util.WebAppRootListener</listener-class>     
        </listener>  
    

    然后在普通的Java类中(不是action中),就可以通过<code>System.getProperty("tansungWeb.root")</code>获取了web根目录了。

    需要注意的是遮掩配置过后,在配置log4j日志文件保存路劲是就要把获取webroot根路径的key要相应改变为tansungWeb.root。

    具体改变请看斜线处:

    #debug < info < warn < error < fatal  
    log4j.rootLogger=debug,stdout,logfile  
    log4j.logger.cn.hydom.ztc=debug  
      
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
    log4j.appender.stdout.Target=System.out  
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
    log4j.appender.stdout.layout.ConversionPattern=%p [%l] %n---> %m%n  
    #log4j.appender.stdout.layout.ConversionPattern=- [%p](%l) ---> [%m]%d{yyyy-MMM-dd   
      
    HH:mm:ss}%n  
      
      
    log4j.appender.logfile=org.apache.log4j.RollingFileAppender  
      
      
    ----------------------------------------------------------------------------  
    #这是以前的配置  spring默认会以webapp.root为key保存webapp的根路径  
    #log4j.appender.logfile.File=${webapp.root}/logs/sys.log  
    #由于有了以上的配置,所以这里需要改变为${tansungWeb.root}  
    log4j.appender.logfile.File=${tansungWeb.root}/logs/log.log  
    -----------------------------------------------------------------------------  
      
    log4j.appender.logfile.MaxFileSize=1MB  
    # Keep three backup files.  
    log4j.appender.logfile.MaxBackupIndex=10  
    # Pattern to output: date priority [category] - message  
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
    log4j.appender.logfile.layout.ConversionPattern= %n - [%p]-%d{yyyy-MMM-dd HH:mm:ss}-  
      
    (%l)%n---> [%m]%n  
      
      
      
      
      
      
    #ibatis logger config  
    log4j.logger.com.ibatis=debug  
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug  
    log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug  
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug  
    log4j.logger.java.sql.Connection=debug  
    log4j.logger.java.sql.Statement=debug  
    log4j.logger.java.sql.PreparedStatement=debug  
    

    然后再拼凑路径的时候,最好不要直接使用/或者\,最好使用File.separatorChar

    这样的做法,适用于Spring配置中启动的线程需要获取web目录。例如删除临时文件的线程,定时发送邮件的线程。

    http://blog.csdn.net/u013614451/article/details/39437571

    相关文章

      网友评论

          本文标题:Spring 获取web根目录

          本文链接:https://www.haomeiwen.com/subject/gqyngttx.html