This week's giveaway is in the Spring forum.
We're giving away four copies of REST with Spring (video course) and have Eugen Paraschiv on-line!
See this thread for details.
The moose likes Servlets and the fly likes For those who eat java, think java and drink java Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of REST with Spring (video course) this week in the Spring forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "For those who eat java, think java and drink java" Watch "For those who eat java, think java and drink java" New topic

For those who eat java, think java and drink java

Nitin Dubey
Ranch Hand

Joined: Oct 30, 2000
Posts: 126

Hi folks,
M developing a client server application where the client uploads and downloads several files. M pushing and pulling all the files to and from SQL server database. My client is an application and server side I have Servlets kept in tomcat and M using JDBC ODBC drivers to connect to SQL Server Database.
1. I want all the files to be uploaded to a temporary folder in my server(I may use it in future for scheduling). Now for uploading files to the temporary folder I must have physical path of the server to create File object. The problem is how do I get the physical path of the folder where my servlet is kept without involving any property file. Also suggest me if there is another optimized solution for the same and whether I can create files using URL's.
Ex. I access my servlet by giving http://nitind:8080/examples/servlet/servletName
I want => C:\jakarta-tomcat-3.2.1\webapps\examples\WEB-INF\classes
2. I also want a good BLOB Example for uploading files to the server. I m aware of the methods but m not sure how do i make use of it ..
Waiting for your replies ...

Nitin Dubey
hemanth kumar
Ranch Hand

Joined: Mar 15, 2001
Posts: 55
Correct me if i am wrong
u can get the physical path to where ur servlet is stored by
out.println("getPathTranslated: " + request.getPathTranslated());
hemanth kumar
Ranch Hand

Joined: Mar 15, 2001
Posts: 55
there is also
out.println("getServletPath: " + request.getServletPath());
vaibhav punekar
Ranch Hand

Joined: Jan 20, 2001
Posts: 134
If your requirement is to upload multiple files at a time then it is better you go for RMI where you will write a file upload code to your client class and the files will be uploaded to your server(in this case RMI server).
Otherwise you can use MultiPartRequest class given in Oreilly Servlets book.For the latest changes visit to Oreilly site where they have given all the classes required to use MultiPartRequest class.If you want to use them for commercial use the Licence agreement says that you should have the Oreilly Servlet book.
I hope this will help.

Nitin Dubey
Ranch Hand

Joined: Oct 30, 2000
Posts: 126

Thanx hemanth and vaibhav for your replies ..
Hemanth I have also tried your suggestion but it didn't work.
Vaibhav I m doing application - servlet communication therefore I cannot use the Oreilly examples u mentioned (I suppose). I m using these examples for extranet and its running successfully.
I made a list of all the methods related to path. But could'nt get the result. Below is the code and output I got..
Source ==>
public class trytest extends HttpServlet{
public void init(ServletConfig cfg){
//System.out.println("cfg.getRealPath()" + cfg.getRealPath());
//System.out.println("cfg.getRealPath()" + cfg.getServletC());
catch(Exception e){
public void doGet(HttpServletRequest req, HttpServletResponse res){
String str = "";
PrintWriter out = res.getWriter();
System.out.println("getAuthType() " + req.getAuthType() );
System.out.println("getCookies() " + req.getCookies() );
//System.out.println("getDateHeader(String) " + req.getDateHeader(String));
//System.out.println("getHeader(String) " + req.getHeader(String) );
System.out.println("getHeaderNames() " + req.getHeaderNames() );
//System.out.println("getIntHeader(String) " + req.getIntHeader(String) );
System.out.println("getMethod() " + req.getMethod() );
System.out.println("getPathInfo() " + req.getPathInfo() );
System.out.println("getPathTranslated() " + req.getPathTranslated() );
System.out.println("getQueryString() " + req.getQueryString() );
System.out.println("getRemoteUser() " + req.getRemoteUser() );
System.out.println("getRequestedSessionId() " + req.getRequestedSessionId() );
System.out.println("getRequestURI() " + req.getRequestURI() );
System.out.println("getServletPath() " + req.getServletPath() );
//System.out.println("cfg.getRealPath()" + ServletConfig.getRealPath(req.getServerName()));
str = getServletContext().getRealPath("/trytest");
String f = new File(str).getCanonicalPath();
str = System.getProperty("server_root");
System.out.println("Root : "+f);
catch(Exception ex){
Output ==>
getAuthType() null
getCookies() [Ljavax.servlet.http.Cookie;@63b895
getHeaderNames() org.apache.tomcat.util.MimeHeadersEnumerator@5e3974
getMethod() GET
getPathInfo() null
getPathTranslated() null
getQueryString() null
getRemoteUser() null
getRequestedSessionId() null
getRequestURI() /nitin/servlet/trytest
getServletPath() /servlet/trytest
Root : C:\jakarta-tomcat-3.2.1\webapps\nitin\trytest

Actual Path : C:\jakarta-tomcat-3.2.1\webapps\nitin\WEB-INF\classes
waiting for your replies guys,

Nitin Dubey
Ranch Hand

Joined: Oct 30, 2000
Posts: 126

I agree. Here's the link:
subject: For those who eat java, think java and drink java
It's not a secret anymore!