我寫了一個簡單的servlet,我想測試,以便在刷新瀏覽器時保留舊會話。但是,它不是它每次刷新頁面時都會創建一個新的會話。是不是它應該只在關閉瀏覽器時創建一個新會話? 我正在使用ServletRunner而不是在Tomcat上運行它,這可能是問題嗎?如何保持Servlet會話?
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionPlay extends HttpServlet
{
public void doGet (HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
resp.setContentType("text/html");
//Get session object
HttpSession session = req.getSession(true);
String id = session.getId();
PrintWriter out;
String title = "Session play";
// then write the data of the response
out = resp.getWriter();
out.println("<html><head><title>");
out.println(title);
out.println(id);
out.println("</title></head><body>");
out.println("<h1>" + title + "</h1>");
if(session.isNew())
{
out.println("<p>Welcome new comer</p>");
out.println("<p>" + id + "</p>");
}
else
{
out.println("<p>Welcome back</p>");
out.println("<p>" + id + "</p>");
}
out.println("<form action=SessionPlay method=get>");
out.println("<input type=input name=param1>");
out.println("<input type=submit>");
out.println("</form>");
out.println("</body></html>");
out.close();
}
}
不是真的。在我上面的例子中,我有一個表單發送GET到同一頁面。然而,當再次到達同一頁面時,如果不用F5刷新,無論如何都會創建一個新的會話。 – starcorn 2011-01-25 14:15:42