Solved

Where do I Place my Servlets, JSP and Bean in the Tomcat Server?

Posted on 2003-10-23
13
384 Views
Last Modified: 2010-04-01
I have 3 Files, One JSP which uses a bean and the bean is in classes/com/ch/UserInfobean.class.

I have a Servlet and in the JSP where should I put the Servlet Class File and How should I map it to the JSP in the action tag of the Form.

I have placed in all places and it says " Cannot find the Servlet"?

Please Help.

0
Comment
Question by:RajeshPD
13 Comments
 
LVL 11

Expert Comment

by:fargo
ID: 9607501
Hii,

I think, u forgot to map it in the web.xml (if tomcat is app server).

  <servlet>
    <servlet-name>YourServlet</servlet-name>
    <servlet-class>com.ch.YourServlet</servlet-class>
  </servlet>

and specify whatever mapping u want..

  <servlet-mapping>
        <servlet-name>YourServlet</servlet-name>
        <url-pattern>/YourServlet</url-pattern>
  </servlet-mapping>

Now u can use directly the name YourServlet for the action.

Hope this helps
regards
fargo

0
 
LVL 14

Expert Comment

by:kennethxu
ID: 9607536
you should put your servlet under:
youwebapp/WEB-INF/classes/your/servlet/packege/YourSevlet.class
0
 

Author Comment

by:RajeshPD
ID: 9607701
Hi Fargo

I did the same thing as u told me and in action only the FormServlet. But it gave an error like this:

type Status report

message /examples/jsp/FormServlet

description The requested resource (/examples/jsp/FormServlet) is not available.

Pls advice.


in Web.xml

<servlet>
    <servlet-name>FormServlet</servlet-name>
    <servlet-class>com.ch.FormServlet</servlet-class>
  </servlet>


  <servlet-mapping>
        <servlet-name>FormServlet</servlet-name>
        <url-pattern>/FormServlet</url-pattern>
  </servlet-mapping>
0
Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

 
LVL 14

Expert Comment

by:kennethxu
ID: 9607893
according to your defination in web.xml, you should be accessing your servlet as /examples/FormServlet.

if you wish to access it via /examples/jsp/FormServlet, then use /jsp/FormServlet as url-pattern in web.xml

HTH
0
 

Author Comment

by:RajeshPD
ID: 9608667
Still giving me the same Error.
description The requested resource (/examples/jsp/FormServlet) is not available.


Sometimes, my localhost:8080 does not show the default page and does not start. I need to re start the server every time. Any advice?

When I place the above in the XML , I get an exception in the Command prompt.
0
 

Author Comment

by:RajeshPD
ID: 9608679
Can u suggest me any site where they show me how to do all these properly?
0
 

Author Comment

by:RajeshPD
ID: 9608851
Can U gimme an example which uses Form Fields , JSP, Servlets and Beans?
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 9611749
>>When I place the above in the XML , I get an exception in the Command prompt.
can you post your web.xml

probably you should get a servlet/jsp book to study.
0
 
LVL 4

Expert Comment

by:vk33
ID: 9612289
Hi!

Don't forget to restart Tomcat as soon as you change anything concerning servlets: recompiling, replacing, modifying web.xml.

I hope it helps...

Regards!
0
 

Author Comment

by:RajeshPD
ID: 9614656
Hi
Error:

description The requested resource (/examples/FormServlet) is not available.


I am attaching all the Files for your Ref:(Not the Bean)

<?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>

    <display-name>Tomcat Examples</display-name>
    <description>
      Tomcat Example servlets and JSP pages.
    </description>

    <!-- Define servlet-mapped and path-mapped example filters -->
    <filter>
        <filter-name>Servlet Mapped Filter</filter-name>
        <filter-class>filters.ExampleFilter</filter-class>
      <init-param>
          <param-name>attribute</param-name>
          <param-value>filters.ExampleFilter.SERVLET_MAPPED</param-value>
      </init-param>
    </filter>
    <filter>
        <filter-name>Path Mapped Filter</filter-name>
        <filter-class>filters.ExampleFilter</filter-class>
      <init-param>
          <param-name>attribute</param-name>
          <param-value>filters.ExampleFilter.PATH_MAPPED</param-value>
      </init-param>
    </filter>
    <filter>
        <filter-name>Request Dumper Filter</filter-name>
        <filter-class>filters.RequestDumperFilter</filter-class>
    </filter>

    <!-- Example filter to set character encoding on each request -->
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>EUC_JP</param-value>
        </init-param>
    </filter>

    <filter>
        <filter-name>Compression Filter</filter-name>
        <filter-class>compressionFilters.CompressionFilter</filter-class>

        <init-param>
          <param-name>compressionThreshold</param-name>
          <param-value>10</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
        </init-param>
    </filter>

    <!-- Define filter mappings for the defined filters -->
    <filter-mapping>
        <filter-name>Servlet Mapped Filter</filter-name>
      <servlet-name>invoker</servlet-name>
    </filter-mapping>
    <filter-mapping>
        <filter-name>Path Mapped Filter</filter-name>
      <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>


<!-- Example filter mapping to apply the "Set Character Encoding" filter
     to *all* requests processed by this web application -->
<!--
    <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
-->

<!--
    <filter-mapping>
      <filter-name>Compression Filter</filter-name>
      <url-pattern>/CompressionTest</url-pattern>
    </filter-mapping>
-->

<!--
    <filter-mapping>
        <filter-name>Request Dumper Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
-->

    <!-- Define example application events listeners -->
    <listener>
        <listener-class>listeners.ContextListener</listener-class>
    </listener>
    <listener>
        <listener-class>listeners.SessionListener</listener-class>
    </listener>

    <!-- Define servlets that are included in the example application -->

    <servlet>
        <servlet-name>SendMailServlet</servlet-name>
        <servlet-class>SendMailServlet</servlet-class>
    </servlet>

    <servlet>
        <servlet-name>
            snoop
        </servlet-name>
        <servlet-class>
            SnoopServlet
        </servlet-class>
<!--
        <init-param>
            <param-name>foo</param-name>
            <param-value>bar</param-value>
        </init-param>
-->
        <run-as>
            <description>Security role for anonymous access</description>
            <role-name>tomcat</role-name>
        </run-as>
    </servlet>

    <servlet>
      <servlet-name>
          servletToJsp
      </servlet-name>
      <servlet-class>
          servletToJsp
      </servlet-class>
    </servlet>
       <servlet>
      <servlet-name>
          FormServlet
      </servlet-name>
      <servlet-class>
          FormServlet
      </servlet-class>
    </servlet>
        <servlet>
        <servlet-name>
            CompressionFilterTestServlet
        </servlet-name>
        <servlet-class>
            compressionFilters.CompressionFilterTestServlet
        </servlet-class>

    </servlet>

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>
            CompressionFilterTestServlet
        </servlet-name>
        <url-pattern>
            /CompressionTest
        </url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>SendMailServlet</servlet-name>
        <url-pattern>/SendMailServlet</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>
            snoop
        </servlet-name>
        <url-pattern>
            /snoop
        </url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>
            servletToJsp
        </servlet-name>
        <url-pattern>
            /servletToJsp
        </url-pattern>
    </servlet-mapping>

      

    <taglib>
        <taglib-uri>
         http://jakarta.apache.org/tomcat/debug-taglib
        </taglib-uri>
        <taglib-location>
           /WEB-INF/jsp/debug-taglib.tld
        </taglib-location>
    </taglib>

    <taglib>
        <taglib-uri>
         http://jakarta.apache.org/tomcat/examples-taglib
        </taglib-uri>
        <taglib-location>
           /WEB-INF/jsp/example-taglib.tld
        </taglib-location>
    </taglib>

    <resource-ref>
      <res-ref-name>mail/Session</res-ref-name>
      <res-type>javax.mail.Session</res-type>
      <res-auth>Container</res-auth>
    </resource-ref>

    <security-constraint>
      <display-name>Example Security Constraint</display-name>
      <web-resource-collection>
         <web-resource-name>Protected Area</web-resource-name>
       <!-- Define the context-relative URL(s) to be protected -->
         <url-pattern>/jsp/security/protected/*</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>tomcat</role-name>
       <role-name>role1</role-name>
      </auth-constraint>
    </security-constraint>

    <!-- Default login configuration uses form-based authentication -->
    <login-config>
      <auth-method>FORM</auth-method>
      <realm-name>Example Form-Based Authentication Area</realm-name>
      <form-login-config>
        <form-login-page>/jsp/security/protected/login.jsp</form-login-page>
        <form-error-page>/jsp/security/protected/error.jsp</form-error-page>
      </form-login-config>
    </login-config>

    <!-- Security roles referenced by this web application -->
    <security-role>
      <role-name>role1</role-name>
    </security-role>
    <security-role>
      <role-name>tomcat</role-name>
    </security-role>

    <!-- Environment entry examples -->
    <!--env-entry>
      <env-entry-description>
         The maximum number of tax exemptions allowed to be set.
      </env-entry-description>
      <env-entry-name>maxExemptions</env-entry-name>
      <env-entry-value>15</env-entry-value>
      <env-entry-type>java.lang.Integer</env-entry-type>
    </env-entry-->
    <env-entry>
      <env-entry-name>minExemptions</env-entry-name>
      <env-entry-value>1</env-entry-value>
      <env-entry-type>java.lang.Integer</env-entry-type>
    </env-entry>
    <env-entry>
      <env-entry-name>foo/name1</env-entry-name>
      <env-entry-value>value1</env-entry-value>
      <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>
    <env-entry>
      <env-entry-name>foo/bar/name2</env-entry-name>
      <env-entry-value>true</env-entry-value>
      <env-entry-type>java.lang.Boolean</env-entry-type>
    </env-entry>
    <env-entry>
      <env-entry-name>name3</env-entry-name>
      <env-entry-value>1</env-entry-value>
      <env-entry-type>java.lang.Integer</env-entry-type>
    </env-entry>
    <env-entry>
      <env-entry-name>foo/name4</env-entry-name>
      <env-entry-value>10</env-entry-value>
      <env-entry-type>java.lang.Integer</env-entry-type>
    </env-entry>

    <!-- EJB Reference -->
    <ejb-ref>
      <description>Example EJB Reference</description>
      <ejb-ref-name>ejb/Account</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      <home>com.mycompany.mypackage.AccountHome</home>
      <remote>com.mycompany.mypackage.Account</remote>
    </ejb-ref>

    <!-- Local EJB Reference -->
    <ejb-local-ref>
      <description>Example Local EJB Reference</description>
      <ejb-ref-name>ejb/ProcessOrder</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <local-home>com.mycompany.mypackage.ProcessOrderHome</local-home>
      <local>com.mycompany.mypackage.ProcessOrder</local>
    </ejb-local-ref>
      
      </web-app>







<jsp:useBean id="form" class ="com.ch.FormBean">
<jsp:setProperty name="form" property="*"/>
</jsp:useBean>

<html>
<body>
<%
String[] errors = (String[])request.getAttribute("errors");
if(errors!=null && errors.length>0)
{
      %>

      <b>Please correct the following Errors:</b>
      <ul>
      <%
            for(int i=0;i<errors.length;i++)
      {%>
            <li><%=errors[i]%></li>
            <%}%>

            </ul>
            <%}%>


            <form action="FormServlet" method="post">
            <INPUT TYPE="text" NAME="name" value ="<jsp:getProperty name="form" property="name"/>">
            <b>Name</b>(Last,First)<br>

            <INPUT TYPE="text" NAME="email" value ="<jsp:getProperty name="form" property="email"/>">
            <b>EMail</b>(user@host)<br>

            <INPUT TYPE="text" NAME="ssn" value ="<jsp:getProperty name="form" property="ssn"/>">
            <b>SSN</b>(123456789)<br>
            <p>
            <INPUT TYPE="submit" value="Submit Form">
            </form>
            </body>
            </html>

Servlet is in:
C:\jakarta-tomcat-4.1.27\jakarta-tomcat-4.1.27\webapps\examples\WEB-INF\classes


Bean is in:
C:\jakarta-tomcat-4.1.27\jakarta-tomcat-4.1.27\webapps\examples\WEB-INF\classes\com\ch


Please let me know whats wrong.

Rajesh.


version of Java:

C:\j2sdkee1.2.1
C:\jdk1.3.1_04
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 9617193
you don't have servlet mapping in your web.xml. you need this:
 <servlet-mapping>
        <servlet-name>FormServlet</servlet-name>
        <url-pattern>/jsp/FormServlet</url-pattern>
  </servlet-mapping>

and restart your tomcat.
0
 

Author Comment

by:RajeshPD
ID: 9635818
Hi

The above problem is fixed ..Thanks.
Now I have the First page, when i click on submit, it should say Loading in the second page for 5 mins and automatically control transfers to my third page after 5 Mins. How do i do this using JSP?

0
 
LVL 14

Accepted Solution

by:
kennethxu earned 125 total points
ID: 9636327
>> The above problem is fixed ..Thanks.
It's EE's policy that usually you should close the question when your initial problem is fixed.

>> automatically control transfers to my third page after 5 Mins
you can simply use meta tag in html <head> section
<META HTTP-EQUIV=Refresh CONTENT="300; URL=page3.jsp">
or use:
<% response.setHeader( "Refresh", "300; URL=page3.jsp" ); %>
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When you’re making plans to join the modern business race, you should analyze various details that may affect your results. Nowadays, millions of businesses are trying to grow into established and appreciated professional enterprises.
Binary Differential Replication, What it is, how it works and how it differs from standard delta file replication
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Established in 1997, Technology Architects has become one of the most reputable technology solutions companies in the country. TA have been providing businesses with cost effective state-of-the-art solutions and unparalleled service that is designed…

785 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question