You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Boyle, William (CAP, TIP)" <Wi...@gecapital.com> on 2001/06/08 17:08:16 UTC

RequestDispatcher/Session problems

I am having problems with the following code (this is just a simplified example):

import java.io.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;

public class TestSession extends HttpServlet {
  public void doGet( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	RequestDispatcher rd = req.getRequestDispatcher("/servlet/TestSession2");
	rd.include(req, res);
	HttpSession session = req.getSession(true);
	session.setAttribute("msg", "The session is functioning properly.");
  }
  public void doPost( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	RequestDispatcher rd = req.getRequestDispatcher("/servlet/TestSession2");
	rd.include(req, res);
  }
}

public class TestSession2 extends HttpServlet {
  public void doGet( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	PrintWriter out = res.getWriter();
	out.println("<HTML><HEAD><TITLE>TestSession</TITLE></HEAD>");
	out.println("<BODY><FORM method=POST name='testform' action='/QuickQuote/servlet/TestSession'><INPUT type='submit' name='Submit' value='Suck it up'>");
	out.println("</FORM></BODY></HTML>");
  }
  public void doPost( HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
	HttpSession session = req.getSession(false);
	PrintWriter out = res.getWriter();
	if(session == null)
		out.println("no session");
	else
		out.println(session.getAttribute("msg"));
  }
}

When I run this (Tomcat 3.2.2 using JSDK 2.2), it seems to create a session successfully, however after the post back, it will be unable to find an existing session.  If I move the
two lines creating the session and adding msg to it into the doGet method of the TestSession2 servlet it works fine tho.  The basic problem I have found is concerning creating a
session after a RequestDispatcher.include call has returned.  Would this be a Tomcat issue or a JSDK issue?