【问题标题】:What is JSP equivalent of PHP's $_server什么是 JSP 等价于 PHP 的 $_server
【发布时间】:2013-06-04 02:41:59
【问题描述】:

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

JSP or JavaScript equivalent to PHP's $_SERVER["HTTP_HOST"]?

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

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

例子:

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

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

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

【问题讨论】:

  • JSP 应用程序在内存中是持久的,并且您在其中使用 Java 语言,因此您的问题的性质表明您不熟悉 Java 开发(因为 Java 具有类静态成员,而 JSP 具有缓存和状态管理)。您能否提供更多关于您希望在实践中实现的目标的详细信息?

标签: jsp


【解决方案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 中你可以像这样使用它(使用它们是 bad practice):

// 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 tutorials

【讨论】:

  • @MrMoose 由于 JSP 是自 2009 年 12 月的 JSF 2.0 以来已弃用的视图技术 [...] source
  • 是的,你是对的。我只是指出它仅被认为不推荐用于 JSF。他接着说 - “它确实没有明确表示 Java EE 不推荐使用“纯”JSP 本身。Oracle 可能正试图通过这种方式推动 JSF 向前发展。”。 Another comment 在同一个问题上说明了 JSF != JSP。我不是要批评你的回答,只是澄清一下。
  • 好点 :) 我不知道从什么时候开始不再使用 JSP,比如 JSF!呵呵
  • 不幸的是,我们正在维护我们在 2008 年构建的内容。
  • @AksharPrabhudesai 我知道它是什么,好消息是如果我们与 PHP 相比,Java 支持已经被弃用了很长时间 :)
【解决方案2】:

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

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

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

谢谢。

【讨论】:

  • 这当然不是我想要的。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-21
    • 2011-03-25
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多