我来自 .NET 背景并尝试一些 Java(Servlet/JSP)的基础知识。在 .NET 中,我们有 ViewState、Session、Application 变量。根据我的阅读,应用程序变量在 Java 中有一个名为 ServletContext 的兄弟。所以我创建了一个简单的servlet程序
public class SimpleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String userName = request.getParameter("userName");
ServletContext context = request.getServletContext();
context.setAttribute("savedContextUserName", userName);
out.println("Hello! " + context.getAttribute("savedContextUserName"));
}
我打开浏览器并通过以下内容并获得正确的输出,即 Hello !斯图尔特
http://localhost:8080/ServletProject/SimpleServlet?userName=Stuart
然后我打开另一个浏览器实例并传递以下内容,但得到 Hello !无效的
http://localhost:8080/ServletProject/SimpleServlet
当我打开新的浏览器实例时,上下文不应该保留值 Stuart 吗?.NET 的 Application 变量肯定会保留它。我在这里有什么遗漏吗?