reading a file from WEB-INF?

J

Jim Bancroft

I have some text files I'd like to put on my web server (preferably in the
WEB-INF directory though they could be in a regular web folder) that I will
read and parse from some of my servlets. Does anyone have a code snippet
from doing this from within, say, my servlet's init() method? The parsing
bit I've already done; what I'm having trouble with is figuring out how to
get absolute paths that I can use in my Buffered reader.

Here's what I've got so far...

ServletContext context = getServletContext();
String realContextPath = context.getRealPath("/");
s = new Scanner(new BufferedReader(new FileReader(
"mapping1.txt")));

For some reason calling getRealPath("/") above returns something unusual;
instead of "mypath\web" I get "mypath\build\web". Not sure where that
"build" bit is coming from or if it matters. Probably the result of my
compilation, with mapping1.txt copied in along with the rest of the web app?


Also, what happens if I deploy my final product as a jar file? Can I still
read files from WEB-INF, or another directory within the web server, just
like if I had deployed an uncompressed set of folders?
 
?

=?gb2312?B?yMrV387etdA=?=

I think you can put your .txt file in your classpath,
in a folder or in a jar.
In some package,
e.g

in com/xxx/

Then you can use the code:
public class XXXServlet extends HttpServlet{
....
void mymethod(){
s=new BufferedReader(new InputStreamReader(

XXXServlet.class.getResourceAsStream("/com/xxx/yourtxt.txt")));
// here "/" means the root of your classpath,
//you can get a platform independent path now ;-)
}
}
 
R

riccardonews

Hello,
if you create a file (readme.txt for example) into folder
"WEB-INF/classes/commons",
use this example code for reading it.:

InputStream in =
this.getClass().getClassLoader().getResourceAsStream("commons/readme.txt");

bye bye
Riccardo.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,021
Latest member
AkilahJaim

Latest Threads

Top