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. 五十五.ansible概述、ansible基础 、ad-hoc、批量配置管理

    1.环境准备 (自动化工具,批量操作) 6台 2cpu,1.5G以上内存,20G硬盘,1网卡 1.1 基础环境准备 1)启动6台虚拟机,ansible.sh   2)真机配置yum仓库 ]# tar ...

  2. @ControllerAdvice与@ControllerAdvice统一处理异常

    https://blog.csdn.net/zzzgd_666/article/details/81544098(copy) 详细看此 所以结合上面我们可以知道,使用@ExceptionHandler ...

  3. JS对象-不可扩展对象、密封对象、冻结对象

    不可扩展对象 Object.preventExtensions() 仅阻止添加自身的属性.但属性仍然可以添加到对象原型. 可以用 Object.isExtensible(obj) 来判断对象是否可扩展 ...

  4. ECMAScript 提案阶段

    stage0 strawman任何讨论.想法.改变或者还没加到提案的特性都在这个阶段.只有TC39成员可以提交. stage1 proposal (1)产出一个正式的提案. (2)发现潜在的问题,例如 ...

  5. SSRF漏洞攻击利用从浅到深

    梳理一下ssrf 不详细 简单记录 0x01 SSRF成因和基本利用0x02 内网打未授权redis0x03 关于ssrf打授权的redis0x04 写redis shell和密钥的一点问题0x05 ...

  6. pip 安装指定版本的工具

    记录一下避免忘记 安装facebook-business的版本在3.0 到 4.0之间的最新版本, == : 指定版本号 pip install "facebook-business> ...

  7. 编译工具链,生成各个平台的ffmpeg版本的库

    1.在开始动手编译ffmpeg之前我们来梳理一下几个概念,gcc.g++.msvc.mingw.clang.cmake.make.qmake 作为一个windows软件工程师,以为长时间浸淫在各种强大 ...

  8. MD5介绍

    md5介绍 1. md5简介 md5的全称是md5信息摘要算法(英文:MD5 Message-Digest Algorithm ),一种被广泛使用的密码散列函数,可以产生一个128位(16字节,1字节 ...

  9. 响应式css样式

    <div class="a"> 123 </div> @media(orientation:portrait) and (max-width:600px){ ...

  10. 【python】详解事件驱动event实现

    [python]详解事件驱动event实现 所有的计算机程序都可以大致分为两类:脚本型(单次运行)和连续运行型(直到用户主动退出). 1.脚本型:脚本型的程序包括最早的批处理文件以及使用Python做 ...