One more nit-pick.  As I said earlier, use "/servlet/login" instead of
"servlet/com.onjava.login".  Then you can turn off the InvokerServlet,
which could be used for security exploits.  Your current mapping (in
your last email) had 

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

What exactly are you trying to achieve here?  This is simply in error. 
Do you really want "/servlet" to map to your login servlet each and
every time?  You would not be able to have any other servlets in your
application.  Perhaps what you are trying to do is have all
unauthenticated requests to go to the login servlet?  To do this, use a
<security-constraint>, <login-config>, and <security-role> instead. 
(See Tomcat's admin and manager applications for an example).  Then you
can map all requests into your web app (the ones you want secured
anyway) to your login.jsp that you are working on.

I'm not sure if that will fix your welcome.jsp problem; probably not. 
Try removing the slash like Stuart said, though it should work either
way if welcome.jsp is in webapps/onjava/

- Jeff Tulley

>>> [EMAIL PROTECTED] 8/29/03 5:36:36 PM >>>
Tomcat can usually find JSPs very easily.  Is welcome.jsp also in
CATALINA_HOME/webapps/onjava/ ?  Try the following:

private String target = "welcome.jsp";

If 'onjava' is your namespace then this might work.



-----Original Message-----
From: Jim Si [mailto:[EMAIL PROTECTED] 
Sent: 29 August 2003 19:04
To: Tomcat Users List
Cc: Stuart MacPherson
Subject: Re: First Servlet 404 error

Thank you Stuart for your great help.

HellowWorld servlet works! But I still have one problem.

I got login.jsp in the webapps\onjava directory.  It has
    <form name="loginForm" method="POST"
action="servlet/com.onjava.login">

In login.java, it has
 private String target = "/welcome.jsp";
...
  // Forward the request to the target named
  ServletContext context = getServletContext();
  RequestDispatcher dispatcher = context.getRequestDispatcher(target);
  dispatcher.forward(request, response);

In welcome.jsp, it has very simple return statement.
   <b>Welcome : <%= request.getAttribute("USER")

In webapps\onjava\Web-inf\web.xml, I have
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.onjava.login</servlet-class>
</servlet>

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

In a browser, I use http://localhost:8080/onjava/login.jsp and I got
the
login
screen, then click on submit button.  I got the following error.

HTTP Status 404 - /welcome.jsp
description The requested resource (/welcome.jsp) is not available.

Look like it runs the login class, how do I correct this problem? 
Thank
you.

> Also, make sure your HelloWorld servlet is mapped-in in your webapps
> deployment descriptor.  By the way, the folder should be called
WEB-INF
not
> web-inf.
>

Windows somehow change WEB-INF to Web-inf automatically.  I could not
use
WEB-INF.

Jim


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] 
For additional commands, e-mail: [EMAIL PROTECTED] 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to