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. GO111MODULE的设置(及GOPROXY)

    环境:win7  go1.13.1 早听说GO111MODULE大名,今天才测试成功,步骤如下: 因为我的Go version >= 1.13,直接用go env -w 设置(注意大小写) go ...

  2. leetcode解题报告(1):Remove Duplicates from Sorted Array

    描述 Given a sorted array, remove the duplicates in place such that each element appear only once and ...

  3. mac brew 使用教程

    brew services list                  #查看系统通过 brew 安装的服务 brew services cleanup               #清除已卸载无用的 ...

  4. http接口测试工具 REST Client

    以下几个工具为常用rest测试工具 1.Postman, 可以下载客户端或者安装浏览器插件 2.Insomnia,window客户端 3.Apizza,在线极客专属的api协作管理工具 ...

  5. 1617:转圈游戏 ybt

    1617:转圈游戏 时间限制: 1000 ms         内存限制: 524288 KB提交数: 540     通过数: 326 [题目描述] nn 个小伙伴(编号从 00 到 n−1n−1 ...

  6. 1558:聚会 ybt

    1558:聚会 ybt 题解(看似很难,其实要是摸清了实质这就是个大水题) 上题目 1558:聚会 时间限制: 1000 ms         内存限制: 524288 KB提交数: 82     通 ...

  7. 查询Oracle正在执行的sql语句及kill被锁的表

    查询Oracle正在执行的sql语句及执行该语句的用户SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, pa ...

  8. WIN10环境下点击通知栏图标时自动切换输入法导致图标位置变动

    这个问题由来已久,每当点击系统右下角任务栏中的按钮时,原本是搜狗输入法就会自动变成“US [ 中文(简体,中国) ]”,图标会自动错位,导致响应的是其他功能. 假设上图是正常的环境,此时我点击电池图标 ...

  9. java安全学习-Code-Breaking Puzzles-javacon详细分析

    本文首发于合天智汇: https://mp.weixin.qq.com/s/XWpe3OGwH1d9dYNMqfnyzA 0x01.环境准备 需要反编译的jar包如下所示 直接通过以下步骤将jar文件 ...

  10. JS获取div高度的方法

    有时在写页面时,需要获取一个div的高度.怎么才能获取呢?哈哈,先上结论.有两种方法. offsetHeight .clientHeight getComputedStyle offsetHeight ...