Access file inside WebContent from servlet
11,217
Use ServletContext.getRealPath() to locate the file on disk. Note that this only works if the webapp is "exploded" during deployment.
For example:
File f = new File(getServletContext().getRealPath("alerts/rtp_bcklg_mail.html"));
Author by
Thirunavukkarasu Muthuswamy
I'm an enterprise architect who works predominantly on building solutions for complex usecases and problems. MERN Stack Java Stack MEAN Stack
Updated on August 19, 2022Comments
-
Thirunavukkarasu Muthuswamy over 1 year
I trying to access the html files inside the WebContent/alerts folder using its relative path from servlet. But i unable to access it using its relative path,
Access the file inside WebContent from Servlet using relative path:
protected Element getSummary(String value) throws IOException { Element element=null; Summary summary = Summary.valueOf(value); switch(summary) { case rtp_summary: element=parseDIV(new File("../../WebContent/alerts/rtp_bcklg_mail.html"),"rtp_summary"); break; case ffu_summary: element=parseDIV(new File("/../../WebContent/alerts/ffu_comp_bcklg_mail.html"),"ffu_summary"); break; default: System.out.println("Enter a valid choice"); break; } return element; }
Access the file inside WebContent from Java Thread using relative path:
public class WriteJSONFile implements Runnable{ WriteJSONFile(){ } @Override public void run() { try { createJSONFile(); } catch (IOException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") private static void createJSONFile() throws IOException { String path="C:/Users/Thiru/Documents/Website Design/Macaw/"; JSONArray jsonArray=new JSONArray(); JSONObject rtpStatus=new JSONObject(); rtpStatus.put("name","RTP"); rtpStatus.put("status",parseDIV(new File(path+"WebContent/alerts/rtp_bcklg_mail.html"),"rtp_health")); jsonArray.add(rtpStatus); JSONObject proposalattribStatus=new JSONObject(); proposalattribStatus.put("name","PROPOSAL ATTRIBUTE"); proposalattribStatus.put("status",parseDIV(new File(path+"WebContent/alerts/prpsl_txtsrch.html"),"prpsl_attrb_health")); jsonArray.add(proposalattribStatus); writetoFile(jsonArray); } private static void writetoFile(JSONArray jsonArray) { try { String path="C:/Users/Thiru/Documents/Website Design/Macaw/"; FileWriter file = new FileWriter(path+"WebContent/properties/status.json"); file.write(jsonArray.toJSONString()); file.flush(); file.close(); } catch (IOException e) { e.printStackTrace(); } } protected static String parseDIV(File input, String divElement) throws IOException { Document doc = Jsoup.parse(input, "UTF-8"); String content = doc.getElementById(divElement).val(); System.out.println(divElement +" "+content); return content; }
}
And i also want to access the files inside Webcontent from RESTful web service method using relative path. Thanks in advance.