java web项目获取src和WebContent目录下的配置文件

2017年10月11日 18:36:25
ispotu
阅读数 14769更多

分类专栏:
java

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

1.首先上目录结构:

2.部署到tomcat,在servlet中测试,测试代码:


  1. package test;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.util.Properties;
  5. import java.util.ResourceBundle;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.annotation.WebServlet;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import utils.ReadFile;
  12. import utils.readFile.SysConfig;
  13. /**
  14. * Servlet implementation class testEvery
  15. */
  16. @WebServlet("/testEvery")
  17. public class testEveryServlet extends HttpServlet {
  18. private static final long serialVersionUID = 1L;
  19. /**
  20. * @see HttpServlet#HttpServlet()
  21. */
  22. public testEveryServlet() {
  23. super();
  24. // TODO Auto-generated constructor stub
  25. }
  26. /**
  27. * 访问url:http://localhost:8080/demoProj/testEveryServlet
  28. */
  29. /**
  30. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  31. */
  32. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  33. // TODO Auto-generated method stub
  34. response.getWriter().append("Served at: ").append(request.getContextPath());
  35. String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
  36. System.out.println("doGet读取到的/WEB-INF/config/sysconfig.properties:path:"+path);
  37. String url = request.getSession().getServletContext().getRealPath("/WEB-INF/config/config.properties");
  38. System.out.println("doGet读取到的/WEB-INF/config/config.properties:url:"+url);
  39. /**
  40. * 结果:
  41. * doGet:path:D:\tomcat7\wtpwebapps\demoProj\config\sysconfig.properties
  42. * doGet:url:D:\tomcat7\wtpwebapps\demoProj\WEB-INF\config\config.properties
  43. */
  44. //只能获取src下面的
  45. InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/config/test.properties");
  46. Properties prop = new Properties(); //map
  47. prop.load(in);
  48. String url1 = prop.getProperty("url");
  49. System.out.println("获取到的url1:"+url1);//获取到的url1:www.baidu.com
  50. //不可获取
  51. InputStream in2 = this.getServletContext().getResourceAsStream("/WEB-INF/config.properties");
  52. Properties prop2 = new Properties(); //map
  53. prop.load(in2);
  54. String url2 = prop2.getProperty("url");
  55. System.out.println("获取到的url2:"+url2);//获取到的url2:null
  56. //不可获取
  57. InputStream in3 = this.getServletContext().getResourceAsStream("/webcontent.properties");
  58. Properties prop3 = new Properties(); //map
  59. prop.load(in3);
  60. String url3 = prop3.getProperty("url");
  61. System.out.println("获取到的url3:"+url3);//获取到的url3:null
  62. //不可获取
  63. InputStream in4 = this.getServletContext().getResourceAsStream("/config/wcc.properties");
  64. Properties prop4 = new Properties(); //map
  65. prop.load(in4);
  66. String url4 = prop4.getProperty("url");
  67. System.out.println("获取到的url4:"+url4);//获取到的url4:null
  68. // 读取src下config包中的testJava.java
  69. // InputStream in = ReadFile.class.getResourceAsStream("/config/testJava.java");//in为null
  70. // byte[] a=new byte[100];
  71. // in.read(a, 0, 900);
  72. // System.out.println("读取src下config包中的testJava.java的输入流in的内容toString:"+in.toString());
  73. // System.out.println("读取到的a:"+a);
  74. String fileName3 = ReadFile.class.getResource("/config/test.properties").getFile();
  75. System.out.println("读取src下config包中的test.properties:"+fileName3);
  76. //输出:读取src下config包中的test.properties:/D:/tomcat7/wtpwebapps/demoProj/WEB-INF/classes/config/test.properties
  77. // in.close();
  78. // 读取src下 基名为myproperties的properties文件,获取其中name配置值
  79. String value = ResourceBundle.getBundle("myproperties").getString("name");
  80. System.out.println("获取到的myproperties.properties的值value:"+value);
  81. //输出:获取到的myproperties.properties的值value:myname
  82. // 读取src下myproperties.properties
  83. InputStream in1 = ReadFile.class.getResourceAsStream("/myproperties.properties");
  84. Properties properties = new Properties();
  85. properties.load(in1);
  86. String value2 = properties.getProperty("name"); // 获得name属性
  87. System.out.println("获取到的myproperties.properties的值value2:"+value2);
  88. //获取到的myproperties.properties的值value2:myname
  89. //读取src下的
  90. String sensitiveWordsServerPath1 = SysConfig.getSysParam("sensitiveWords_server_path1");
  91. System.out.println("获取的sensitiveWordsServerPath1:"+sensitiveWordsServerPath1);
  92. //获取的sensitiveWordsServerPath1:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx
  93. //读取src下的
  94. String pp = prop("sensitiveWords_server_path1");
  95. System.out.println("pp:"+pp);//pp:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx
  96. }
  97. public String prop(String url){
  98. InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config/sysconfig.properties");
  99. Properties p = new Properties();
  100. try {
  101. p.load(inputStream);
  102. } catch (Exception e) {
  103. e.printStackTrace();
  104. }
  105. System.out.println("p:"+p);
  106. return p.getProperty(url);
  107. }
  108. /**
  109. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  110. */
  111. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  112. // TODO Auto-generated method stub
  113. doGet(request, response);
  114. String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
  115. System.out.println("doPost:path:"+path);
  116. }
  117. }

网上大量的读取配置文件的都是从src目录下,只有以下是从WebContent目录下读取的:


  1. String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
  2. System.out.println("doGet读取到的/WEB-INF/config/sysconfig.properties:path:"+path);
  3. String url = request.getSession().getServletContext().getRealPath("/WEB-INF/config/config.properties");
  4. System.out.println("doGet读取到的/WEB-INF/config/config.properties:url:"+url);
  5. /**
  6. * 结果:
  7. * doGet:path:D:\tomcat7\wtpwebapps\demoProj\config\sysconfig.properties
  8. * doGet:url:D:\tomcat7\wtpwebapps\demoProj\WEB-INF\config\config.properties
  9. */

另:目前还没发现可以不启动tomcat,直接从当前项目WebContent目录下读取配置文件的简便方法。(不是从硬盘目录下,有些方法很复杂),有解决方法的同学请贡献出来。

参考:

http://blog.csdn.net/qhwc2009/article/details/45824815

http://blog.csdn.net/wjl_mgqs/article/details/7554741

http://www.cnblogs.com/duoting/p/4141044.html

http://blog.csdn.net/mar_ljh/article/details/39693979

附上SysConfig.java


  1. package utils.readFile;
  2. import java.io.FileOutputStream;
  3. import java.io.OutputStream;
  4. import java.util.Enumeration;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import java.util.Properties;
  8. import org.apache.log4j.Logger;
  9. import com.alibaba.fastjson.JSONArray;
  10. import com.alibaba.fastjson.JSONObject;
  11. public class SysConfig {
  12. private static Logger logger = Logger.getLogger(SysConfig.class);
  13. /**
  14. * 将本类定义为singleton类
  15. */
  16. private SysConfig(){
  17. }
  18. private static SysConfig mConfig= new SysConfig();
  19. private Map<String,String> params = null;
  20. private static String CONFIG_FILE="/config/sysconfig.properties";
  21. private static String CONFIG_FILE_PATH = SysConfig.class.getClassLoader().getResource("").getPath().substring(1) + CONFIG_FILE;
  22. public static String getSysParam(String param) {
  23. return getAllParams().get(param);
  24. }
  25. public static Map<String,String> getAllParams() {
  26. synchronized(mConfig){
  27. if(mConfig.params==null){
  28. mConfig.readConfig();
  29. }
  30. }
  31. System.out.println("mConfig.params:"+mConfig.params);
  32. return mConfig.params;
  33. }
  34. /**
  35. * 重载配置文件
  36. */
  37. public static void reloadConfig(JSONArray array) {
  38. try{
  39. Properties props = new Properties();
  40. for(int i=0;i<array.size();i++){
  41. JSONObject o = array.getJSONObject(i);
  42. String key = o.keySet().iterator().next();
  43. String value = o.getString(key);
  44. mConfig.params.put(key, value);
  45. props.setProperty(key, value);
  46. }
  47. String configFilePath = CONFIG_FILE_PATH;
  48. if(!isLocal()){
  49. configFilePath = "/" + CONFIG_FILE_PATH;
  50. }
  51. OutputStream out = new FileOutputStream(configFilePath);
  52. props.store(out, "update");
  53. }catch(Exception e){
  54. logger.info("may error config");
  55. }
  56. }
  57. private void readConfig() {
  58. try {
  59. Properties props = new Properties();
  60. props.load(SysConfig.class.getResourceAsStream(CONFIG_FILE));
  61. this.propertisToCache(props);
  62. } catch (Exception e) {
  63. logger.info("may error config");
  64. }
  65. }
  66. /**
  67. * 将配置写入内存
  68. * @param properties
  69. */
  70. private void propertisToCache(Properties props){
  71. mConfig.params = new HashMap<String,String>();
  72. Enumeration e = props.propertyNames();
  73. while(e.hasMoreElements()) {
  74. String key = (String)e.nextElement();
  75. String value = props.getProperty(key);
  76. params.put(key, value);
  77. }
  78. if(isLocal()) {
  79. params.put("root_path", params.get("root_path_local"));
  80. params.put("root_path_issue_temp", params.get("root_path_issue_temp_local"));
  81. params.put("root_path_issue", params.get("root_path_issue_local"));
  82. } else {
  83. params.put("root_path", params.get("root_path_server"));
  84. params.put("root_path_issue_temp", params.get("root_path_issue_temp_server"));
  85. params.put("root_path_issue", params.get("root_path_issue_server"));
  86. }
  87. }
  88. /**
  89. * 判断系统类型
  90. * @return:true为windows系统
  91. */
  92. public static boolean isLocal() {
  93. if (System.getProperty("os.name").contains("Windows")) {
  94. return true;
  95. }
  96. logger.info("os is : " + System.getProperty("os.name"));
  97. return false;
  98. }
  99. }

        <div class="recommend-box"><div class="recommend-item-box type_blog clearfix" data-report-click="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/u011572301/article/details/15026613&quot;,&quot;strategy&quot;:&quot;BlogCommendFromMachineLearnPai2&quot;,&quot;index&quot;:&quot;0&quot;}">
<div class="content" style="width: 962px;">
	<a href="https://blog.csdn.net/u011572301/article/details/15026613" target="_blank" rel="noopener" title="Servlet访问WebContent下的文件">
	<h4 class="text-truncate oneline" style="width: 802px;">
			Servlet访问<em>Web</em>Content下的文件		</h4>
	<div class="info-box d-flex align-content-center">
		<p class="date-and-readNum oneline">
			<span class="date hover-show">11-11</span>
			<span class="read-num hover-hide">
				阅读数
				1680</span>
			</p>
		</div>
	</a>
	<p class="content" style="width: 962px;">
		<a href="https://blog.csdn.net/u011572301/article/details/15026613" target="_blank" rel="noopener" title="Servlet访问WebContent下的文件">
			<span class="desc oneline">项目目录结构如下:要在ShowImage这个Servlet中访问2.jpg这张图片。Stringpath=getServletContext().getRealPath("images/2.jpg")...</span>
		</a>
		<span class="blog_title_box oneline ">
								<span class="type-show type-show-blog type-show-after">博文</span>
										<a target="_blank" rel="noopener" href="https://blog.csdn.net/u011572301">来自:	<span class="blog_title"> 魂影的专栏</span></a>
											</span>
	</p>
</div>
</div>
	<div class="comment-list-container">
	<a id="comments"></a>
	<div class="comment-list-box">
	</div>
	<div id="commentPage" class="pagination-box d-none"></div>
	<div class="opt-box text-center">
		<div class="btn btn-sm btn-link-blue" id="btnMoreComment"></div>
	</div>
</div>
<div class="recommend-item-box recommend-recommend-box"><div id="_6365a8oaj"><abbr style="width:0px;height:0px;cursor:auto;"></abbr><iframe width="852" frameborder="0" height="60" scrolling="no" src="//rabc2.iteye.com/drnpwpfr?ros=XR&amp;gsn=ZWT&amp;ns=LUV_SXXZ&amp;vde=8KKGJ0U-0Td0Td2CF70y3J4E0yE5K0TdJLG5I9KVRS0Td1IK93C50Td45K19CJ0TdYZTRXZYY0Td&amp;zcs=XWW4US6T4S3XRRYUXX6WX4XVSZ6XXZW_&amp;nm=U&amp;kbs=T&amp;ndw=frkjynmqr&amp;nbs=S&amp;zmc=SSUWOXUZ&amp;zcc=STTXOXRXT&amp;dzb=SWXZ_VYW_UYTV&amp;kxd=S&amp;nsc=R&amp;zkb=S_TROSRUR&amp;nks=T&amp;zc=TWUWOUYX&amp;zsc=zSOzS&amp;zbyd=T&amp;ohzc=SSSRRT,SSRRSS&amp;mom=srdzZ&amp;ja10=mwbr&amp;4s9=udoxr&amp;swt=1"></iframe></div><script type="text/javascript" src="//rabc1.iteye.com/production/res/rxjg.js?pkcgstj=jm"></script></div>
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_60" data-pid="60"><iframe src="https://adaccount.csdn.net/#/preview/261?m=tLbcQQAptHctDnJyLitApLEHiLbcSAQtbntbpLSmUiHEpEXpLQtEASbAHLALnDbJiXcHASQEWcEtUEtXJpiUfimbbLJJioDbHcQQ&amp;k=" frameborder="0" width="100%" height="75px" scrolling="no"></iframe><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=tLbcQQAptHctDnJyLitApLEHiLbcSAQtbntbpLSmUiHEpEXpLQtEASbAHLALnDbJiXcHASQEWcEtUEtXJpiUfimbbLJJioDbHcQQ" src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=tLbcQQAptHctDnJyLitApLEHiLbcSAQtbntbpLSmUiHEpEXpLQtEASbAHLALnDbJiXcHASQEWcEtUEtXJpiUfimbbLJJioDbHcQQ"></div></div>
		<div class="recommend-item-box blog-expert-recommend-box" style="display: block;">
		<div class="d-flex">
			<div class="blog-expert-recommend">
				<div class="blog-expert">
					<div class="blog-expert-flexbox" data-report-view="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/u011572301" target="_blank"><img src="https://avatar.csdn.net/F/D/6/3_u011572301.jpg" alt="逝魂影" title="逝魂影"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="u011572301" data-nick="逝魂影">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/u011572301" target="_blank"><h5 class="oneline" title="逝魂影">逝魂影</h5></a></span>  <p></p><p class="article-num" title="49篇文章"> 49篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/weixin_38920506" target="_blank"><img src="https://avatar.csdn.net/C/B/5/3_weixin_38920506.jpg" alt="划船不用桨全靠浪" title="划船不用桨全靠浪"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="weixin_38920506" data-nick="划船不用桨全靠浪">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/weixin_38920506" target="_blank"><h5 class="oneline" title="划船不用桨全靠浪">划船不用桨全靠浪</h5></a></span>  <p></p><p class="article-num" title="5篇文章"> 5篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/maomaoyu3211" target="_blank"><img src="https://avatar.csdn.net/7/2/A/3_maomaoyu3211.jpg" alt="maomaoyu3211" title="maomaoyu3211"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="maomaoyu3211" data-nick="maomaoyu3211">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/maomaoyu3211" target="_blank"><h5 class="oneline" title="maomaoyu3211">maomaoyu3211</h5></a></span>  <p></p><p class="article-num" title="487篇文章"> 487篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/mar_ljh" target="_blank"><img src="https://avatar.csdn.net/9/D/A/3_mar_ljh.jpg" alt="赣江" title="赣江"></a><span data-report-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="mar_ljh" data-nick="赣江">关注</span></span></div><div class="info"><span data-report-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/superit401/article/details/78206877/&quot;}"><a href="https://blog.csdn.net/mar_ljh" target="_blank"><h5 class="oneline" title="赣江">赣江</h5></a></span>  <p></p><p class="article-num" title="73篇文章"> 73篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div></div>
				</div>
			</div>
		</div>
	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_40815370/article/details/93646822&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;5&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_40815370/article/details/93646822&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;5&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_40815370/article/details/93646822&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:4,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/qq_40815370/article/details/93646822&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:4,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn.net/qq_40815370/article/details/93646822" target="_blank">              		<h4 class="text-truncate oneline" style="width: 883px;"><em>获取</em><em>java</em> <em>web</em><em>项目</em>中 resource路径下的文件路径 - qq_40..._CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">6-25</span>                    </p>                  </div>                </a>            	</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-report-view="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/regid571500581/article/details/78626045&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;6&quot;}" data-report-click="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/regid571500581/article/details/78626045&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:&quot;6&quot;}" data-track-view="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/regid571500581/article/details/78626045&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:5,&quot;extend1&quot;:&quot;_&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_614&quot;,&quot;dest&quot;:&quot;https://blog.csdn.net/regid571500581/article/details/78626045&quot;,&quot;strategy&quot;:&quot;searchFromBaidu1&quot;,&quot;index&quot;:5,&quot;extend1&quot;:&quot;_&quot;}" data-flg="true">                <a href="https://blog.csdn.net/regid571500581/article/details/78626045" target="_blank">              		<h4 class="text-truncate oneline" style="width: 890px;">springmvc-<em>Web</em>Content<em>目录</em>下的文件访问 - 571500581的..._CSDN博客</h4>                  <div class="info-box d-flex align-content-center">                    <p>                      <span class="date">9-8</span>                    </p>                  </div>                </a>            	</div>
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_61" data-pid="61"><iframe src="https://adaccount.csdn.net/#/preview/263?m=AtcQJpQpLtSnEpHEJLcJDyHJcbELbQmvHLnAXJEcHbSbpEtDEXtUAnHQLWEJbcLcEEAnoJAfJJSDpEAbimvtbyJAHLcpLtQJibbQ&amp;k=" frameborder="0" width="100%" height="75px" scrolling="no"></iframe><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=AtcQJpQpLtSnEpHEJLcJDyHJcbELbQmvHLnAXJEcHbSbpEtDEXtUAnHQLWEJbcLcEEAnoJAfJJSDpEAbimvtbyJAHLcpLtQJibbQ" src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=AtcQJpQpLtSnEpHEJLcJDyHJcbELbQmvHLnAXJEcHbSbpEtDEXtUAnHQLWEJbcLcEEAnoJAfJJSDpEAbimvtbyJAHLcpLtQJibbQ"></div></div>
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_62" data-pid="62"><iframe src="https://adaccount.csdn.net/#/preview/575?m=icQvHctcJLLytHcEDitESDcbHnJitSXiDbppHSbLJbAipnvEyvJHASQtLAiWnbttEAQiyEJLnyypJLLJApfSJfQcSnpHEpcJLQEQ&amp;k=" frameborder="0" width="100%" height="75px" scrolling="no"></iframe><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&amp;k=&amp;m=icQvHctcJLLytHcEDitESDcbHnJitSXiDbppHSbLJbAipnvEyvJHASQtLAiWnbttEAQiyEJLnyypJLLJApfSJfQcSnpHEpcJLQEQ"></div></div>
<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_63" data-pid="63"><script async="async" charset="utf-8" src="https://shared.ydstatic.com/js/yatdk/3.0.1/stream.js" data-id="8935aa488dd58452b9e5ee3b44f1212f" data-udid="24C56021-A1CB-4A07-993A-2D2A7F00FDCD" data-div-style="width:900px;height:76px;" data-img-style="float:left;margin-right:15px;width:90px;height:60px;" data-tit-style="font-size:16px;color:#f13d3d;" data-des-style="font-size:12px;color:#333;" data-is-handling="1">
广告

web项目获取资源文件的更多相关文章

  1. 以Jar形式为Web项目提供资源文件

    以Jar形式为Web项目提供资源文件 http://www.webjars.org/ Web前端使用了越来越多的JS或CSS如jQuery, Backbone.js 和Twitter Bootstra ...

  2. 【转】Java Web 项目获取运行时路径 classpath

    Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...

  3. JavaWeb基础: 获取资源文件

    Web工程在编译构建完毕以后,需要部署到Tomcat上运行,资源的硬盘路径也会随着改变.要想对资源文件进行读写操作需要获取其硬盘地址,在Web工程中通常通过ServletContext/ClassLo ...

  4. java基础知识3--如何获取资源文件(Java中获取资源文件的url)

    java开发中,常见的resource文件有:.xml,.properties,.txt文件等,后台开发中经常用到读取资源文件,处理业务逻辑,然后返回结果. 获取资源文件的方法说明getResourc ...

  5. wpf 前台获取资源文件路径问题

    1 <ImageBrush ImageSource="YT.CM.CommonUI;component/Resource/FloadwindowImage/middle.png&quo ...

  6. Java中获取资源文件的方法总结

    这里总结3中方法获取资源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletContext public void doGet(HttpServl ...

  7. Weblogic部署web项目获取项目根目录为null

    写在前面 图片上传功能, web项目部署在本地Tomcat上并没有问题, 但是打成war包部署到Linux服务器Weblogic下却出现如题问题, 导致图片上传失败. 问题代码 String real ...

  8. 【spring Boot】spring boot获取资源文件的三种方式【两种情况下】

    首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取 带 ...

  9. 在eclipse完成对Java_web项目里面资源文件的读取

    Java_web项目的资源文件一般有两种: 一种是存放数据之间有联系的文件,使用xml文件 另一种是存放数据之间没有联系的文件,使用properties文件 这里我们对properties文件读写做示 ...

随机推荐

  1. CF786C Till I Collapse 整体二分+根号分治

    题意:对于一个序列,假如说一个区间内最多能包含 $k$ 个不同的数,那么这个序列最少会被划分成几个区间 $?$ 输出 $k$ 为 $1\sim n$ 的答案. 我们每次选区间一定是贪心地将这个区间选地 ...

  2. LOJ #121. 「离线可过」动态图连通性 LCT维护最大生成树

    这个还是比较好理解的. 你考虑如果所有边构成一棵树的话直接用 LCT 模拟一波操作就行. 但是可能会出现环,于是我们就将插入/删除操作按照时间排序,然后依次进行. 那么,我们就要对我们维护的生成树改变 ...

  3. CF #589 (Div. 2) D. Complete Tripartite 构造

    这个 D 还是十分友好的~ 你发现这 $3$ 个集合形成了一个环的关系,所以随意调换顺序是无所谓的. 然后随便让 $1$ 个点成为第 $2$ 集合,那么不与这个点连边的一定也属于第二集合. 然后再随便 ...

  4. Linux下的电路设计辅助软件

    造冰箱的大熊猫@cnblogs 2019/8/21 最近调研了以下开源的电路设计辅助软件(EDA),汇总如下 1.gEDA 官网:geda-project.org 老牌的开源EDA软件,诞生于上世纪9 ...

  5. [HNOI2008] 越狱 快速幂

    [HNOI2008] 越狱 快速幂 水.考虑不发生越狱的情况:即宗教相同的都不相邻,一号任意放\(m\)种宗教的人,此后\(n-1\)个房间都放与上一个宗教不同的人,有\(m-1\)种,所以共有\(m ...

  6. Python3操作YAML文件

    数据及配置文件之争 数据及文件通常有三种类型: 配置文件型:如ini,conf,properties文件,适合存储简单变量和配置项,最多支持两层,不适合存储多层嵌套数据 表格矩阵型:如csv,exce ...

  7. Sketch教程

    去年夏天开始用Sketch,觉得它放Dock里闪亮亮的很好看,当时笑称是男盆友送我的第一颗小钻石噗哈哈.所以那段时间几乎刷遍了所有关于 Sketch 的网站.文章.教程,之后又在自学设计,因为想和更多 ...

  8. Hadoop环境搭建|第三篇:spark环境搭建

    一.环境搭建 1.1.上传spark安装包 创建文件夹用于存放spark安装文件命令:mkdir spark 1.2.解压spark安装包 命令:tar -zxvf spark-2.1.0-bin-h ...

  9. ubuntu 安装go

    sudo apt install golang-go

  10. centos7中oracle数据库安装和卸载

    参考: 完全命令行安装(验证可行):https://jingyan.baidu.com/article/90895e0f29c92164ec6b0bd1.html 存在疑问:是否需要jdk的配置(因为 ...