0

这个问题听起来可能类似于

JSP 或 JavaScript 等价于 PHP 的 $_SERVER["HTTP_HOST"]?

但这些问题的答案只是关于找出 HTTP_HOST。

我想知道是否可以在 JSP 中创建服务器范围的全局变量。

例子:

用户 1 计算一些与用户无关的函数 X。很可能其他用户也可能访问应用程序来计算 X。一种方法是我可以将它保存在 mySQL 中,并为后续用户请求进行数据库查找。但我不想使用任何数据库,我的数据应该只在服务器的生命周期内持续存在。

在 PHP 中,我可以简单地设置 $_SERVER['x]=value;

我想知道是否可以在 JSP 中实现类似的事情。

4

3 回答 3

1

简短的回答是您可以使用所谓的应用程序范围。自应用程序部署以来,此范围将一直存在,直到容器停止或应用程序重新部署。

在 Servlets 中,您可以像这样使用它:

ServletContext context = request.getSession().getServletContext();
String value = "test";

// Set value in application scope
context.setAttribute("x",value);

// Get value from application scope
value = (String)context.getAttribute("x");

在 Scriplets 中,您可以像这样使用它(使用它们是一种不好的做法):

// Set value in application scope
application.setAttribute("x",value);

// Get value from application scope
value = (String)application.getAttribute("x");

在 EL 中,您可以像这样检索值:

${applicationScope['x']}

来自 PHP 世界,您必须知道在该示例中我使用了String对象,但您可以使用任何对象。您不能使用原始数据类型。

不相关的 :

  • 如果您正在开发一个新项目,您应该考虑迁移到 JSF 2.X,JSP 自 2009 年以来已被弃用。
  • 阅读一些Java EE 教程
于 2013-06-04T03:32:18.970 回答
0

它是 HttpServletRequest 接口 - javax.servlet.http.HttpServletRequest

这有大多数方法。请检查此链接,如果您有任何问题,请告知。

http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeader%28java.lang.String%29

谢谢。

于 2013-06-04T03:30:06.497 回答
0

我认为实现这一点的最简单方法是简单地使用任何类的静态成员。

于 2013-10-02T05:33:34.683 回答