web项目获取资源文件

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
1.首先上目录结构:
2.部署到tomcat,在servlet中测试,测试代码:
-
package test;
-
-
import java.io.IOException;
-
import java.io.InputStream;
-
import java.util.Properties;
-
import java.util.ResourceBundle;
-
-
import javax.servlet.ServletException;
-
import javax.servlet.annotation.WebServlet;
-
import javax.servlet.http.HttpServlet;
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
-
import utils.ReadFile;
-
import utils.readFile.SysConfig;
-
-
/**
-
* Servlet implementation class testEvery
-
*/
-
@WebServlet("/testEvery")
-
public class testEveryServlet extends HttpServlet {
-
private static final long serialVersionUID = 1L;
-
-
/**
-
* @see HttpServlet#HttpServlet()
-
*/
-
public testEveryServlet() {
-
super();
-
// TODO Auto-generated constructor stub
-
}
-
/**
-
* 访问url:http://localhost:8080/demoProj/testEveryServlet
-
*/
-
/**
-
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
-
*/
-
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
// TODO Auto-generated method stub
-
response.getWriter().append("Served at: ").append(request.getContextPath());
-
String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
-
System.out.println("doGet读取到的/WEB-INF/config/sysconfig.properties:path:"+path);
-
String url = request.getSession().getServletContext().getRealPath("/WEB-INF/config/config.properties");
-
System.out.println("doGet读取到的/WEB-INF/config/config.properties:url:"+url);
-
/**
-
* 结果:
-
* doGet:path:D:\tomcat7\wtpwebapps\demoProj\config\sysconfig.properties
-
* doGet:url:D:\tomcat7\wtpwebapps\demoProj\WEB-INF\config\config.properties
-
*/
-
//只能获取src下面的
-
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/config/test.properties");
-
Properties prop = new Properties(); //map
-
prop.load(in);
-
String url1 = prop.getProperty("url");
-
System.out.println("获取到的url1:"+url1);//获取到的url1:www.baidu.com
-
-
//不可获取
-
InputStream in2 = this.getServletContext().getResourceAsStream("/WEB-INF/config.properties");
-
Properties prop2 = new Properties(); //map
-
prop.load(in2);
-
String url2 = prop2.getProperty("url");
-
System.out.println("获取到的url2:"+url2);//获取到的url2:null
-
-
//不可获取
-
InputStream in3 = this.getServletContext().getResourceAsStream("/webcontent.properties");
-
Properties prop3 = new Properties(); //map
-
prop.load(in3);
-
String url3 = prop3.getProperty("url");
-
System.out.println("获取到的url3:"+url3);//获取到的url3:null
-
-
//不可获取
-
InputStream in4 = this.getServletContext().getResourceAsStream("/config/wcc.properties");
-
Properties prop4 = new Properties(); //map
-
prop.load(in4);
-
String url4 = prop4.getProperty("url");
-
System.out.println("获取到的url4:"+url4);//获取到的url4:null
-
-
// 读取src下config包中的testJava.java
-
// InputStream in = ReadFile.class.getResourceAsStream("/config/testJava.java");//in为null
-
// byte[] a=new byte[100];
-
// in.read(a, 0, 900);
-
// System.out.println("读取src下config包中的testJava.java的输入流in的内容toString:"+in.toString());
-
// System.out.println("读取到的a:"+a);
-
String fileName3 = ReadFile.class.getResource("/config/test.properties").getFile();
-
System.out.println("读取src下config包中的test.properties:"+fileName3);
-
//输出:读取src下config包中的test.properties:/D:/tomcat7/wtpwebapps/demoProj/WEB-INF/classes/config/test.properties
-
// in.close();
-
-
// 读取src下 基名为myproperties的properties文件,获取其中name配置值
-
String value = ResourceBundle.getBundle("myproperties").getString("name");
-
System.out.println("获取到的myproperties.properties的值value:"+value);
-
//输出:获取到的myproperties.properties的值value:myname
-
-
// 读取src下myproperties.properties
-
InputStream in1 = ReadFile.class.getResourceAsStream("/myproperties.properties");
-
Properties properties = new Properties();
-
properties.load(in1);
-
String value2 = properties.getProperty("name"); // 获得name属性
-
System.out.println("获取到的myproperties.properties的值value2:"+value2);
-
//获取到的myproperties.properties的值value2:myname
-
-
//读取src下的
-
String sensitiveWordsServerPath1 = SysConfig.getSysParam("sensitiveWords_server_path1");
-
System.out.println("获取的sensitiveWordsServerPath1:"+sensitiveWordsServerPath1);
-
//获取的sensitiveWordsServerPath1:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx
-
-
//读取src下的
-
String pp = prop("sensitiveWords_server_path1");
-
System.out.println("pp:"+pp);//pp:/datacms/htdocs/html/cctv/sensitiveWords/sws.xlsx
-
}
-
-
public String prop(String url){
-
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("config/sysconfig.properties");
-
Properties p = new Properties();
-
try {
-
p.load(inputStream);
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
System.out.println("p:"+p);
-
return p.getProperty(url);
-
}
-
-
/**
-
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
-
*/
-
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
// TODO Auto-generated method stub
-
doGet(request, response);
-
String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
-
System.out.println("doPost:path:"+path);
-
}
-
-
}
网上大量的读取配置文件的都是从src目录下,只有以下是从WebContent目录下读取的:
-
String path = request.getSession().getServletContext().getRealPath("/config/sysconfig.properties");
-
System.out.println("doGet读取到的/WEB-INF/config/sysconfig.properties:path:"+path);
-
String url = request.getSession().getServletContext().getRealPath("/WEB-INF/config/config.properties");
-
System.out.println("doGet读取到的/WEB-INF/config/config.properties:url:"+url);
-
/**
-
* 结果:
-
* doGet:path:D:\tomcat7\wtpwebapps\demoProj\config\sysconfig.properties
-
* doGet:url:D:\tomcat7\wtpwebapps\demoProj\WEB-INF\config\config.properties
-
*/
另:目前还没发现可以不启动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
-
package utils.readFile;
-
-
import java.io.FileOutputStream;
-
import java.io.OutputStream;
-
import java.util.Enumeration;
-
import java.util.HashMap;
-
import java.util.Map;
-
import java.util.Properties;
-
-
import org.apache.log4j.Logger;
-
-
import com.alibaba.fastjson.JSONArray;
-
import com.alibaba.fastjson.JSONObject;
-
-
public class SysConfig {
-
-
private static Logger logger = Logger.getLogger(SysConfig.class);
-
-
/**
-
* 将本类定义为singleton类
-
*/
-
private SysConfig(){
-
}
-
private static SysConfig mConfig= new SysConfig();
-
private Map<String,String> params = null;
-
private static String CONFIG_FILE="/config/sysconfig.properties";
-
private static String CONFIG_FILE_PATH = SysConfig.class.getClassLoader().getResource("").getPath().substring(1) + CONFIG_FILE;
-
-
public static String getSysParam(String param) {
-
return getAllParams().get(param);
-
}
-
-
public static Map<String,String> getAllParams() {
-
synchronized(mConfig){
-
if(mConfig.params==null){
-
mConfig.readConfig();
-
}
-
}
-
System.out.println("mConfig.params:"+mConfig.params);
-
return mConfig.params;
-
}
-
-
/**
-
* 重载配置文件
-
*/
-
public static void reloadConfig(JSONArray array) {
-
try{
-
Properties props = new Properties();
-
for(int i=0;i<array.size();i++){
-
JSONObject o = array.getJSONObject(i);
-
String key = o.keySet().iterator().next();
-
String value = o.getString(key);
-
mConfig.params.put(key, value);
-
props.setProperty(key, value);
-
}
-
String configFilePath = CONFIG_FILE_PATH;
-
if(!isLocal()){
-
configFilePath = "/" + CONFIG_FILE_PATH;
-
}
-
OutputStream out = new FileOutputStream(configFilePath);
-
props.store(out, "update");
-
}catch(Exception e){
-
logger.info("may error config");
-
}
-
-
}
-
-
private void readConfig() {
-
try {
-
Properties props = new Properties();
-
props.load(SysConfig.class.getResourceAsStream(CONFIG_FILE));
-
this.propertisToCache(props);
-
} catch (Exception e) {
-
logger.info("may error config");
-
}
-
}
-
-
/**
-
* 将配置写入内存
-
* @param properties
-
*/
-
private void propertisToCache(Properties props){
-
mConfig.params = new HashMap<String,String>();
-
Enumeration e = props.propertyNames();
-
while(e.hasMoreElements()) {
-
String key = (String)e.nextElement();
-
String value = props.getProperty(key);
-
params.put(key, value);
-
}
-
if(isLocal()) {
-
params.put("root_path", params.get("root_path_local"));
-
params.put("root_path_issue_temp", params.get("root_path_issue_temp_local"));
-
params.put("root_path_issue", params.get("root_path_issue_local"));
-
} else {
-
params.put("root_path", params.get("root_path_server"));
-
params.put("root_path_issue_temp", params.get("root_path_issue_temp_server"));
-
params.put("root_path_issue", params.get("root_path_issue_server"));
-
}
-
}
-
-
/**
-
* 判断系统类型
-
* @return:true为windows系统
-
*/
-
public static boolean isLocal() {
-
if (System.getProperty("os.name").contains("Windows")) {
-
return true;
-
}
-
logger.info("os is : " + System.getProperty("os.name"));
-
return false;
-
}
-
-
}
<div class="recommend-box"><div class="recommend-item-box type_blog clearfix" data-report-click="{"mod":"popu_614","dest":"https://blog.csdn.net/u011572301/article/details/15026613","strategy":"BlogCommendFromMachineLearnPai2","index":"0"}">
<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&gsn=ZWT&ns=LUV_SXXZ&vde=8KKGJ0U-0Td0Td2CF70y3J4E0yE5K0TdJLG5I9KVRS0Td1IK93C50Td45K19CJ0TdYZTRXZYY0Td&zcs=XWW4US6T4S3XRRYUXX6WX4XVSZ6XXZW_&nm=U&kbs=T&ndw=frkjynmqr&nbs=S&zmc=SSUWOXUZ&zcc=STTXOXRXT&dzb=SWXZ_VYW_UYTV&kxd=S&nsc=R&zkb=S_TROSRUR&nks=T&zc=TWUWOUYX&zsc=zSOzS&zbyd=T&ohzc=SSSRRT,SSRRSS&mom=srdzZ&ja10=mwbr&4s9=udoxr&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&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&k=&m=tLbcQQAptHctDnJyLitApLEHiLbcSAQtbntbpLSmUiHEpEXpLQtEASbAHLALnDbJiXcHASQEWcEtUEtXJpiUfimbbLJJioDbHcQQ" src="https://kunyu.csdn.net/1.png?d=2&k=&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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_710","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><span class="blog-expert-button-follow btn-red-follow" data-name="u011572301" data-nick="逝魂影">关注</span></span></div><div class="info"><span data-report-click="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_710","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_710","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_710","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_709","dest":"https://blog.csdn.net/superit401/article/details/78206877/"}"><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="{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40815370/article/details/93646822","strategy":"searchFromBaidu1","index":"5"}" data-report-click="{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40815370/article/details/93646822","strategy":"searchFromBaidu1","index":"5"}" data-track-view="{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40815370/article/details/93646822","strategy":"searchFromBaidu1","index":4,"extend1":"_"}" data-track-click="{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40815370/article/details/93646822","strategy":"searchFromBaidu1","index":4,"extend1":"_"}" 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="{"mod":"popu_614","dest":"https://blog.csdn.net/regid571500581/article/details/78626045","strategy":"searchFromBaidu1","index":"6"}" data-report-click="{"mod":"popu_614","dest":"https://blog.csdn.net/regid571500581/article/details/78626045","strategy":"searchFromBaidu1","index":"6"}" data-track-view="{"mod":"popu_614","dest":"https://blog.csdn.net/regid571500581/article/details/78626045","strategy":"searchFromBaidu1","index":5,"extend1":"_"}" data-track-click="{"mod":"popu_614","dest":"https://blog.csdn.net/regid571500581/article/details/78626045","strategy":"searchFromBaidu1","index":5,"extend1":"_"}" 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&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&k=&m=AtcQJpQpLtSnEpHEJLcJDyHJcbELbQmvHLnAXJEcHbSbpEtDEXtUAnHQLWEJbcLcEEAnoJAfJJSDpEAbimvtbyJAHLcpLtQJibbQ" src="https://kunyu.csdn.net/1.png?d=2&k=&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&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&k=&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项目获取资源文件的更多相关文章
- 以Jar形式为Web项目提供资源文件
以Jar形式为Web项目提供资源文件 http://www.webjars.org/ Web前端使用了越来越多的JS或CSS如jQuery, Backbone.js 和Twitter Bootstra ...
- 【转】Java Web 项目获取运行时路径 classpath
Java Web 项目获取运行时路径 classpath 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/下, 那么ja ...
- JavaWeb基础: 获取资源文件
Web工程在编译构建完毕以后,需要部署到Tomcat上运行,资源的硬盘路径也会随着改变.要想对资源文件进行读写操作需要获取其硬盘地址,在Web工程中通常通过ServletContext/ClassLo ...
- java基础知识3--如何获取资源文件(Java中获取资源文件的url)
java开发中,常见的resource文件有:.xml,.properties,.txt文件等,后台开发中经常用到读取资源文件,处理业务逻辑,然后返回结果. 获取资源文件的方法说明getResourc ...
- wpf 前台获取资源文件路径问题
1 <ImageBrush ImageSource="YT.CM.CommonUI;component/Resource/FloadwindowImage/middle.png&quo ...
- Java中获取资源文件的方法总结
这里总结3中方法获取资源文件的 ServletContext Class ClassLoader 文件的位置 1. ServletContext public void doGet(HttpServl ...
- Weblogic部署web项目获取项目根目录为null
写在前面 图片上传功能, web项目部署在本地Tomcat上并没有问题, 但是打成war包部署到Linux服务器Weblogic下却出现如题问题, 导致图片上传失败. 问题代码 String real ...
- 【spring Boot】spring boot获取资源文件的三种方式【两种情况下】
首先声明一点,springboot获取资源文件,需要看是 1>从spring boot默认的application.properties资源文件中获取 2>还是从自定义的资源文件中获取 带 ...
- 在eclipse完成对Java_web项目里面资源文件的读取
Java_web项目的资源文件一般有两种: 一种是存放数据之间有联系的文件,使用xml文件 另一种是存放数据之间没有联系的文件,使用properties文件 这里我们对properties文件读写做示 ...
随机推荐
- CF786C Till I Collapse 整体二分+根号分治
题意:对于一个序列,假如说一个区间内最多能包含 $k$ 个不同的数,那么这个序列最少会被划分成几个区间 $?$ 输出 $k$ 为 $1\sim n$ 的答案. 我们每次选区间一定是贪心地将这个区间选地 ...
- LOJ #121. 「离线可过」动态图连通性 LCT维护最大生成树
这个还是比较好理解的. 你考虑如果所有边构成一棵树的话直接用 LCT 模拟一波操作就行. 但是可能会出现环,于是我们就将插入/删除操作按照时间排序,然后依次进行. 那么,我们就要对我们维护的生成树改变 ...
- CF #589 (Div. 2) D. Complete Tripartite 构造
这个 D 还是十分友好的~ 你发现这 $3$ 个集合形成了一个环的关系,所以随意调换顺序是无所谓的. 然后随便让 $1$ 个点成为第 $2$ 集合,那么不与这个点连边的一定也属于第二集合. 然后再随便 ...
- Linux下的电路设计辅助软件
造冰箱的大熊猫@cnblogs 2019/8/21 最近调研了以下开源的电路设计辅助软件(EDA),汇总如下 1.gEDA 官网:geda-project.org 老牌的开源EDA软件,诞生于上世纪9 ...
- [HNOI2008] 越狱 快速幂
[HNOI2008] 越狱 快速幂 水.考虑不发生越狱的情况:即宗教相同的都不相邻,一号任意放\(m\)种宗教的人,此后\(n-1\)个房间都放与上一个宗教不同的人,有\(m-1\)种,所以共有\(m ...
- Python3操作YAML文件
数据及配置文件之争 数据及文件通常有三种类型: 配置文件型:如ini,conf,properties文件,适合存储简单变量和配置项,最多支持两层,不适合存储多层嵌套数据 表格矩阵型:如csv,exce ...
- Sketch教程
去年夏天开始用Sketch,觉得它放Dock里闪亮亮的很好看,当时笑称是男盆友送我的第一颗小钻石噗哈哈.所以那段时间几乎刷遍了所有关于 Sketch 的网站.文章.教程,之后又在自学设计,因为想和更多 ...
- Hadoop环境搭建|第三篇:spark环境搭建
一.环境搭建 1.1.上传spark安装包 创建文件夹用于存放spark安装文件命令:mkdir spark 1.2.解压spark安装包 命令:tar -zxvf spark-2.1.0-bin-h ...
- ubuntu 安装go
sudo apt install golang-go
- centos7中oracle数据库安装和卸载
参考: 完全命令行安装(验证可行):https://jingyan.baidu.com/article/90895e0f29c92164ec6b0bd1.html 存在疑问:是否需要jdk的配置(因为 ...