Hi Dino,
I tried your sample program and found it to behave just as you said.
The problem is that doPost() cannot send a redirect to the doGet()
method of the same servlet.
Break your servlet into two servlets, one having a doGet() method
and the other having a doPost() method, and it should work.
--
Spencer Ridder
[EMAIL PROTECTED]
Like my advice?
I'm looking for a contract/job.
Dino Valente wrote:
>
> I'm having lots of problems with Netscape if I use the `sendRedirect' method
> from HttpServletResponse.
>
> I am using Apache and Jserv under NT.
>
> However, I will first describe my use of it with the hopes that an
> alternative way can be presented.
>
> doPost(...) {
> retrieve values from getParameters()
> validate values
> if (error)
> display error page
> else
> update database;
> resp.sendRedirect(redirectedURL+ args);
> }
>
> Under IE 4.0, everything works fine and redirection is quick. However, under
> Netscape 4.61, it takes about 5-10 seconds before the redirected page is
> displayed (and under servlet runner an exception occurs:
> java.net.SocketException: Socket read failed).
>
> So I tried to narrow the problem down and created a small example using
> sendRedirect. Then it becomes wierder. The code is:
>
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> public class Test2Servlet extends HttpServlet {
> public void doGet(HttpServletRequest req, HttpServletResponse resp)
> throws ServletException, IOException {
> resp.setContentType("text/html");
> PrintWriter out = resp.getWriter();
> out.println("<HTML><HEAD>");
> out.println("<TITLE>HTML directory");
> out.println("</TITLE></HEAD><BODY TEXT=\"#800000\"
> BGCOLOR=\"#FEFBEB\"><FORM METHOD=\"POST\" >");
> out.println("<BR><INPUT TYPE=\"SUBMIT\" VALUE=\"Test redirect\"
> NAME=\"Test redirect\">");
> out.println("</FORM></BODY></HTML>");
> out.close();
> }
> public void doPost(final HttpServletRequest req,
> HttpServletResponse resp)
> throws ServletException, IOException {
> String abs = HttpUtils.getRequestURL(req).toString();
> System.err.println( "Redirecting to: " + abs + " resp class name:" +
> resp.getClass().getName());
> resp.sendRedirect( abs );
> }
> }
>
> Once again, it works fine for IE under both servlet runner and Jserv. Under
> Netscape and Jserv, if I press "Test redirect" I get the following output:
>
> Found
>
> The document has moved here.
>
> Apache/1.3.6 Server at mymachinename Port 80
>
> Under Netscape and servlet runner, I get
>
> Document moved
>
> This document has moved here.
>
> I really need to have the functionality of sendRedirect so I can pass
> arguments to the redirected servlet. I am using JSK2.0.
>
> Can anyone help here (or perhaps suggest an alternative way)?
>
> dino
>
> ___________________________________________________________________________
> To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
> of the message "signoff SERVLET-INTEREST".
>
> Archives: http://archives.java.sun.com/archives/servlet-interest.html
> Resources: http://java.sun.com/products/servlet/external-resources.html
> LISTSERV Help: http://www.lsoft.com/manuals/user/user.html
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html