Using servlets overriding the ThreadSafeConnectorServlet I can’t use sessions, every request
forces the server to create a new HttpSession.
The following simple servlet doesn’t have this problem:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
[i]public class SessionTestServlet extends HttpServlet
{
@Override
protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException
{
final String xsoKey = “XsoDatum”;
HttpSession session = request.getSession();
if ( session.isNew() )
session.setAttribute( xsoKey, new Date() );
String msg = “\n Session : " + session.getId() + "
\n”
+ " Is new ? " + ( session.isNew() ? “Yes” : “No” ) + "
\n"
+ " My date : " + session.getAttribute( xsoKey );
System.out.println( msg );
// response.reset();
PrintWriter pw = new PrintWriter( response.getOutputStream() );
pw.println( msg );
pw.flush();
}
}[/i]
but activating the line ‘response.reset()’ reproduces the problem.
In method ConnectorOutputWriter#output( HttpServletResponse http_response, String encoding)
there’s a line ‘http_response.reset();’, so maybe that causes the problem?