Web.xml in tomcat

hi all,
i'm using Tomcat as a server.i don't know how to use web.xml.i don't want to change values in my servlets.i want to change values thru web.xml.i don't know the procedure to read values from web.xml toservlets.if any body knows let me know.
Thanks in advance

All you have to do is add parameters to the <init-param> section for you servlet. Then you can read it in using the getInitParameter( name ) method in the servlet. For example I'm reading in a configuration file for my servlet so I added it to the web.xml. Then in my servlet I just do the following to get my configuration file location:
String config = getInitParameter( "configFile" );
This is my entry in web.xml file:
<servlet>
<servlet-name>
MyServlet
</servlet-name>
<servlet-class>
com.xxxx.controller.MyServlet
</servlet-class>
<init-param>
<param-name>configFile</param-name>
<param-value>
/jakarta-tomcat-3.2.2/htdocs/WEB-INF/init.conf
</param-value>
</init-param>
<load-on-startup>
5
</load-on-startup>
</servlet>
MyServlet
Hope this helps

Similar Messages

  • Security in my web.xml in Tomcat 4

    Hello,
    I was using this application on Tomcat 3 and my web.xml worked perfectly well.
    However when I tried to start it on Tomcat 4 there is something wrong with the
    security part of my web.xml . If I leave out the security constraint for this application, it
    works. However if I make my application secure I am unable to view it in the browser.
    It does not try to connect to the login.jsp page for log in , but simply displays the message that the page is unavailable and that I have to refresh my browser. Please help me with that because I am stuck.
    Here is my web.xml :
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <servlet>
    <servlet-name>UploadServlet</servlet-name>
    <servlet-class>UploadServlet</servlet-class>
    <init-param>
    <param-name>SaveDirectory</param-name>
    <param-value>C:\Homeworks\</param-value>
    </init-param>
    <init-param>
    <param-name>Proffesors</param-name>
    <param-value>Clayton,Douglass,Guruvado</param-value>
    </init-param>
    </servlet>
    <security-constraint>
    <display-name>Protected Homework Upload</display-name>
    <web-resource-collection>
    <web-resource-name>Protected Area</web-resource-name>
         <!-- Define the context-relative URL(s) to be protected -->
    <!--<url-pattern>/servlet/Upload</url-pattern>-->
         <url-pattern>/servlet/UploadServlet</url-pattern>
         <!-- If you list http methods, only those methods are protected -->
         <http-method>DELETE</http-method>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
         <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint>
    <!-- Anyone with one of the listed roles may access this area -->
    <role-name>student</role-name>
    <role-name>proffesor</role-name>
    </auth-constraint>
    </security-constraint>
    <login-config>
    <auth-method>FORM</auth-method>
    <realm-name>Example Form-Based Authentication Area</realm-name>
    <form-login-config>
    <form-login-page>/login.jsp</form-login-page>
    <form-error-page>/error.jsp</form-error-page>
    </form-login-config>
    </login-config>
    </web-app>
    Thank you very much for your time and advise. I appreciate it very much
    Martin

    hi,slice
    I donot really find exactly what is wrong in your config file. But I have some suggestions:
    1.Please use servlet URL mapping in "servlet" tag (for example: "/security/upload") instead of using default servlet URL(just like "/servlet/UploadServlet").
    2. In the "url-pattern" tag inside "web-resource-name" ,please using "/security/*", if you are using my suggestion above.
    3.Make sure that your "login.jsp" page is in the right place of the application's doc-root.
    Make a try and good luck!
    Wang Yu
    Developer Technical Support
    Sun Microsystems
    http://sun.com/developers/support

  • Configure web.xml in tomcat for sub class folders

    Hi Guys,
    I am using a tomcat server. I have a package file and have created a dir in webapps called "testApp". In the classes folder, I have another folder called "CheckServlets" and within this I have 2 servlets. How can I configure my web.xml properties to get the servlets to load in a browser. I have tried the following but it doesnt work:
    <servlet>
    <servlet-name>test</servlet-name>
    <servlet-class>/CheckServlets/HelloServlet/</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>test</servlet-name>
    <url-pattern>/hello/test/</url-pattern>
    </servlet-mapping>
    So I try http://localhost:8080/testApp/hello/test but that doesnt work.

    I presume your servlet is in a package called CheckServlets?
    ie it starts something like
    package CheckServlets
    public class HelloServlet extends HttpServlet {
    }Remove the / signs from the servlet-class. This attribute should be a fully qualified class name. Like java.lang.String, or com.mypackage.servlet.MyServlet
    Given the above servlet in a package, it should be
    <servlet>
      <servlet-name>test</servlet-name>
      <servlet-class>CheckServlets.HelloServlet</servlet-class>
    </servlet>Cheers,
    evnafets

  • Security constraint in Web.xml of tomcat

    Hi
    I have a web-application running on tomcat . Inside the context folder i have several directories having some pre-defined configuration files . But the user is able to directly access them by typing the path including the fileName in the URL ( I have disabled the listings property however)
    How can i prevent accessing the specific files .... I tried using
    <security-constraint>
    <display-name>Security constarint</display-name>
    <web-resource-collection>
    <web-resource-name>Java Application</web-resource-name>
    <url-pattern>/folder/*</url-pattern>
    <auth-constraint>
    <role-name>tomcat</role-name>
    </auth-constraint>
    </web-resource-collection>
    <auth-constraint>
    <role-name>tomcat</role-name>
    </auth-constraint>
    </security-constraint>
    <login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>OnJava Application</realm-name>
    </login-config>
    This seems to be working fine , but when the user enters the wrong security info thrice , 401 error page is coming instead i want my custom page . Hence i configured an error page for 401 code which overwrited the earlier behavaiour ie.. that BASIC authentication popup is not coming
    Can any one let me know how to go about this

    Hi ,
    I have tried adding the following into web.xml but the security feature just doesnt work and the user can go to any page without any restriction.
    <security-constraint>
    <web-resource-collection>
    <web-resource-name>Declarative Security Test</web-resource-name>
    <url-pattern>/SuperServlet</url-pattern>
    <url-pattern>/*</url-pattern>
    <http-method>post</http-method>
    <http-method>get</http-method>
    </web-resource-collection>
    <user-data-constraint>
         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
         </user-data-constraint>
    <auth-constraint>
    <role-name>guest</role-name>
    <role-name>member</role-name>
    </auth-constraint>
    </security-constraint>
    <login-config>
    <auth-method>BASIC</auth-method>
    </login-config>
    <security-role>
    <role-name>guest</role-name>
    <role-name>member</role-name>
    </security-role>
    The roles mentioned above have been added correctly into tomcat-users.xml..The version of tomcat I am using is tomcat5.0.28.Please help.

  • Wanna know the uses of web.xml in Tomcat webserver

    Hai All,
    I'm using the Tomcat "C:\Program Files\Apache Group\Tomcat 4.1\webapps\examples\WEB-INF".
    I want to know whats the use of web..xml & how can Icustomise it so that I can call my oen servlet/jsp class .
    If there is any previous post please notify me.
    ThanX in Advance,
    Raj.

    web.xml is deployment discriptor.....
    That means you can map your servlets in this xml.....
    You can set different parameters like <load-on-startup> and like you can direct your application for the standard tag libs.....
    You can configure you application using your deployment discriptor.....
    That is the use of web.xml....
    Regards,

  • About setting the web.xml for Tomcat

    for a project, I use more than one servlet. So i set the
    <servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>servlet1</servlet-class>
    <servlet-name>servlet2</servlet-name>
    <servlet-class>servlet2</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>servlet1</servlet-name>
    <url-pattern>/servlet1</url-pattern>
    <servlet-name>servlet2</servlet-name>
    <url-pattern>/servlet2</url-pattern>
    <servlet-mapping>
    but only the last servlet is there for the web server to find and call. I don't know what's the problem. Maybe I don't set other parameters in some files of Tomcat?
    Thanks for your reply.

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
    This is the web-app configurations that allow w3prj to work under
    Apache Tomcat.
    -->
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
    "http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
    <web-app>
    <servlet>
    <servlet-name>JDBC</servlet-name>
    <servlet-class>TestServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>login</servlet-name>
    <servlet-class>LoginServlet</servlet-class>
    </servlet>
    <servlet>
    <servlet-name>worker</servlet-name>
    <servlet-class>workerServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>JDBC</servlet-name>
    <url-pattern>/TestServlet</url-pattern>
    <servlet-name>login</servlet-name>
    <url-pattern>/LoginServlet</url-pattern>
    <servlet-name>worker</servlet-name>
    <url-pattern>/worker</url-pattern>
    </servlet-mapping>
    </web-app>

  • Is there any way to prevent web.xml from any change like java class?

    hi all,
    Is there any way to prevent web.xml from any change after making EAR(WAR)?
    One can easily make a change in web.xml and redeploy the application to get the result. Now we want to restrict the web.xml as java class for any change after making EAR(or WAR).
    Could some one help me to do this?
    thanks,
    dinesh

    hi,
    Not at development level. We want it after deploying the application on server .
    We want to create it (web.xml) at tomcat startup (or in any other web/app server ) before loading any context.
    Is there any way to run a simple java class(not servlet) on tomcat startup(before initializing the contexts)?
    Message was edited by:
    DP_java
    Message was edited by:
    DP_java

  • Tomcat web.xml "display-name" using flex.messaging.MessageBrokerServlet

           Hello,
    When my web application starts with the BlazeDS servlet flex.messaging.MessageBrokerServlet defined in the web.xml we have an error because in the display-name defined at top level in web.xml we have some text containing character ':'. The error is traced to inside the function
             flex.management.BaseControl.getObjectName()
    Which gets the object name, and this function calls
       BaseControl.getApplicationId()
    which finally calls
    ServletConfig.getServletContext().getServletContextName()
    This will return or display-name from the web.xml with all  it's text. This text contains among other characters the character ':'.  We use this tag for the display in the Tomcat Manager to see version  number and other of deployed project.
    After retrieving this name it is appended in the getObjectName() function to a buffer, this StringBuffer that already contains flex.runtime. and  now this name is appended (still with all that we are using for Tomcat  Manager with ':' character and other). After the name, other things are  appended. Our problem is that, after constructing this StringBuffer an instance of javax.management.ObjectName is created. In it's constructor it takes a String name  as input. This String is parsed in base of characters ':', '*', '?',  '\n' and so on, and since we have some of these characters in our  display-name it all goes wrong.
       My question is, if this is a bug, a limitation or if it is documented that using flex.messaging.MessageBrokerServlet we can not use certain characters in the display-name of the web.xml?
       Greetings, Tim
       We are using
    Tomcat 5.5.23
    Jdk 1.5.0_14
    blazeds-src-4.0.1.17657
    part of web.xml
         <display-name>
             Version: 1.10.0.3 (01/02/2011), Environment development, AGP:  10.220.6.8:1557/AGPSVI, AGP_STAGE: host 10.220.6.8:1557/AGPSVI
         </display-name>
         <description>IMPRESA progetto con undergroung</description>
         <listener>
             <listener-class>flex.messaging.HttpFlexSession</listener-class>
         </listener>
         <servlet>
             <servlet-name>MessageBrokerServlet</servlet-name>
             <display-name>MessageBrokerServlet</display-name>
             <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
             <init-param>
                 <param-name>services.configuration.file</param-name>
                 <param-value>/WEB-INF/flex/services-config.xml</param-value>
            </init-param>
             <load-on-startup>1</load-on-startup>
         </servlet>

    I have found that this is a bug and there is an issue open at the "Adobe Bug and Issue Management System", BLZ-617. I don't know if work is in progress, but when that issue is closed the problem will be solved.
      Greetings, Tim

  • Init-params in web.xml are not loaded (Tomcat 4)

    Hello all...
    I register a servlet in webapps/<my-servlet>/WEB-INF/web.xml file, and pass 1 <init-param> tag. The file gets parsed (I know because when I made errors tomcat complained during initialization). However, when in the init method of the servlet I try to access this parameter, its not there. In fact, the servlet has NO init params at all.
    =================================================
    I have the following web.xml file
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <servlet>
    <servlet-name>XServlet</servlet-name>
    <servlet-class>com.fxcm.xml.xengine.xdas.XServlet</servlet-class>
    <init-param>
    <param-name>xengine.configFile</param-name>
    <param-value>c:/projects/re/das.config/config.xng</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
         <servlet-name>XServlet</servlet-name>
         <url-pattern>/xservlet</url-pattern>
    </servlet-mapping>
    </web-app>
    =======================================================
    I have the following servlet
    * XServlet.java
    * Created on May 6, 2002, 1:17 PM
    package com.fxcm.xml.xengine.xdas;
    import javax.servlet.*;
    import javax.servlet.http.HttpServlet;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletConfig;
    import java.util.Enumeration;
    import com.fxcm.xml.xengine.XEngine;
    public class XServlet extends HttpServlet{
    /** Initiates new XServlet */
    public void init(ServletConfig config)
    throws ServletException
              for (Enumeration e = config.getInitParameterNames(); e.hasMoreElements();){
    //This statement never gets printed because the loop never enters here since there are no init parameters
                   System.out.println(e.nextElement());
    super.init(config);
    String str = config.getInitParameter("xengine.configFile");
    System.out.println(str);
    XEngine.init(str.trim()); //This line throws NullPointer, because str is null since there are no initParameters.
    public void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException{
    // res.setContentType( );
              System.out.println("Got post request in XServlet");
    PrintWriter out = res.getWriter();
    out.println(XEngine.process(req.getInputStream()));
    out.flush();
    out.close();
    ================================================================
    I get the follwoing error in the browser:
    type Exception report
    message Internal Server Error
    description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
    exception
    java.lang.NullPointerException
         at com.fxcm.xml.xengine.xdas.XServlet.init(Unknown Source)
         at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:918)
         at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:655)
         at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:400)
    Please help.
    Thank you,
    Elana

    I know what the problem is. If you call servlet with the default URL (http://host/app/servlet/package.Servlet) than Servlet DOES NOT read init parameters. I don't know why it was designed this way.
    To make servlet read init parameters, you have to assign it a name and then call it with that name, like this:
    <servlet>
    <servlet-name>ServletName</servlet-name>
    <servlet-class>package.ServletClass</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>ServletName</servlet-name>
    <url-pattern>/app/path/ServletName</url-pattern>
    </servlet-mapping>
    You can then call servlet using path specified in url-pattern and read init parameters in the normal way.

  • Tomcat 404 error until I apply this change to my web.xml mapping

    What is the purpose of the /servlet/ portion of the url-pattern in the servlet mapping element below.
    If I use the first few lines I get a 404 class not found error
    If I include /servlet/ in the url-pattern element then my app works fine ?????
    //Does not work
    <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>com.onjava.login</url-pattern>
    </servlet-mapping>
    //works !!
    <servlet-mapping>
    <servlet-name>login</servlet-name>
    <url-pattern>/servlet/com.onjava.login</url-pattern>
    </servlet-mapping>

    If the first mapping doesn't work and the second mapping works then my guess is that neither mapping is working. What may be happening is the invoker servlet may be enabled and that would explain why the /servlet url works.
    The invoker servlet is set up in the conf/web.xml file. This servlet will invoke a particular servlet using the class name and the /servlet url. In newer versions of tomcat the invoker servlet id disabled by default.
    Now the question is why does the servlet mapping not work? What version of tomcat are you running? Can you post the entire web.xml?

  • Automate creation of web.xml file for tomcat 4.1.29

    hi , this is with ref to Tomcat 4.1.29, if i am correct, each Servlet in the application has to be mentioned in the web.xml file for the Tomcat to know about it. Is there any way to automate the creation of web.xml file , depending on the contents of the Servlet folder of the application. Any way to escape from writing each Servlet name in web.xml file.
    rc

    Hello,
    Maybe you should check if you can use Ant tool to do
    that. I am not sure if it can help u.
    Zeph.
    http://ant.apache.org/
    It will, specially if used in conjunction with XDoclets :
    http://xdoclet.sourceforge.net/
    XDoclet has Ant tasks to generate web.xml files.

  • Reload web-inf/web.xml file without restarting tomcat

    Please help me if any one have a solution .
    I am doing development in jsp, servlet. I am using tomcat5 as a webserver.
    i want to reload web-inf/web.xml file without restarting tomcat.

    From the tomcat admin page you can stop/start and refresh individual applications. See the tomcat documentation. Which, when you have a question about tomcat, you should always do first.

  • Running servlets not described in web.xml (tomcat-4.1.24)

    Is it compulsory to have a entry in the web.xml to run a servlet in tomcat-4.x. In tomcat 3.x it was not required. If it is not a must how to enable that??
    thanx in advance
    Binny

    i had completly forgotten i could just place a servlet in the web-inf/classes. after using jsp for so long, some things just get lost.
    what im wondering now is if i can have other directories inside the classes directory and still be called while not being registered in the deployment descriptor ? in otherwords, lets say i have several servlets organized into packages. can i call a servlet thats in a particular package if i fully qualify the class ? guess ill have to try

  • Where is the web.xml file in Tomcat 5.5

    hi folks,
    i made a small appl in Tomcat 5.5 named "Name". I made a WEB-INF folder inside the Name folder (which obv is inside the webapps folder), which inside had the classes and lib folder. After running the application where do i look for the web.xml file controlling my appl?
    thanx in advance..

    well, the web.xml file must be done for you. Its specific to your project, you wont find in on other folders of tomcat.

  • Web.xml problem in tomcat web hosting site

    Hi i need help in this... its urgent
    currently i just subscribe to a web hosting site and i need to start the private tomcat in the web server..
    The followings are the instructions and i have follow them but i do not know how to create a web.xml file to store in the folder indicated for example a HelloServlet that im testing :
    To setup servlet, you need to configure servlet into the file web.xml which needs to be placed in /var/www/html/WEB-INF directory.
    www root directory or webapps:/var/www/htm
    Classes directory located in: /var/www/html/WEB-INF/Classes/
    There you will need to upload your Java class file.
    Our default url-mapping for servlet is: /servlet/*
    To check servlet in your browser: www.mydomain.net/servlet/HelloWorld
    Jsp Files - Upload anywhere in /var/www/html
    all the above steps are follow except the web.xml file which i suppose to write and store in the folder... but i actually try to write one but i still cannot load my servlet on the webpage... test on standalone tomcat works.
    pls help its urgent!!!

    Please don't cross post
    http://forum.java.sun.com/thread.jsp?thread=500509&forum=45&message=2366915

Maybe you are looking for

  • WBS element in PM order

    Hi Experts, In PM order in Additional data & Location tab there is WBS Element field may i know from where these two field get updated in bot h the tab. AR

  • Multiple iCloud accounts on one Mac

    I would like to set up an ical calendar to sync all the schedules of my family members. We all have iCloud accounts. This worked before in mobileme, but since the iCloud upgrade it no longer works. Any suggestions to get this working again?

  • ITunes player does not play songs since upgrading to 10.5.1; not fixed with 10.5.2 upgrade. What now?

    After upgrading iTunes on my laptop to version 10.5.1, my player will NOT play any songs. My Library seems intact and no songs appear to be missing, but no song will play --not a song downloaded from iTunes Store, nor a song downloaded from a CD. I w

  • Date Format -"2010-08-29 10:00:01+03:00"

    Hi All, Would like to know what the data format for following date: "2010-08-29 10:00:01+03:00" I did try the below, but it does not work. 'YYYY-MM-DD HH24:MI:SS+TZH:MI' Appreciate your response. Thanks, Alex.

  • Unwanted text in a title

    I have edited a lot of video clips and titles.  Now I have unwanted test in two titles.  When I try to edit tie titles, they look fine.  How do I get rid of the unwanted text?