File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Servlets and the fly likes get website URL in a servlet Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "get website URL in a servlet" Watch "get website URL in a servlet" New topic

get website URL in a servlet

Ben Hagadorn

Joined: Mar 28, 2006
Posts: 25
I have a servlet who's main purpose is to run a timed job that sends email to a list of recipients when certain error conditions occur (based upon checking a table in the DB). Included in this email is a link to a web page that the user can click on to view more details about the errors.

The issue that I'm having is that I'd like to be able to dynamically determine what the URL of the website is for the email message I send. The doGet() and doPost() are never used so I have no handle to a request object -- all I have is the ServletContext object from the init() event.

I realize that I could add a configuration parameter to the web.xml file and get it by calling servletContext.getInitParameter() but I'd rather not do that: this app could be installed on several servers and I don't want to have to change the web.xml file for each one.

Is there a way to get the URL info from the servletContext?

Thanks for the help.

- Ben
Ben Souther

Joined: Dec 11, 2004
Posts: 13410

You could put the URL in a properties file, or in a database.
I know with Tomcat, you can set context-init-params from either server.xml or from your context fragment files (depending on how you're deploying your app).
Both of those reside outside of the actual war file or webapps directory structure. There is also JNDI.

Java API J2EE API Servlet Spec JSP Spec How to ask a question... Simple Servlet Examples jsonf
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Just an idee !
Can you add a filter. this filter will extract the needed information (server name , context ) only once !this information can then be stored somwhere static variable , application context...... Then when your deamon servlet is running it can get back the information!

Ok this is not perfect you need that someone came on your site before having the information. But i hope it is the case
Ben Souther

Joined: Dec 11, 2004
Posts: 13410

I think Ben's question had more to do with making the variable configurable from outside the webapp.
I agree. Here's the link:
subject: get website URL in a servlet
It's not a secret anymore!