什么是JSP相当于PHP的$ _server

时间:2013-06-04 02:41:59

标签: jsp

这个问题可能与

类似

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

但问题的答案仅仅是找到HTTP_HOST。

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

示例:

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

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,自2009年以来不推荐使用JSP。
  • 阅读一些Java EE tutorials

答案 1 :(得分:0)

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

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

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

感谢。

答案 2 :(得分:0)

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