存储变量用于.JSP用法?

时间:2014-02-26 17:56:23

标签: jsp variables

存储可在整个.JSP网站中使用的变量的最佳方法是什么?我有一个密钥代码是一堆数字keycode = XXXXXXXXXXXXXXXXXXXXX,我希望能够在各个页面中访问该代码,同时将密钥代码放在一个位置。

变量不会经常变化,但我希望能够在一个地方交换它,而不是在任何地方交换它。

1 个答案:

答案 0 :(得分:1)

要在应用程序范围中存储变量,您应将其保存为ServletContext中的属性。您可以使用ServletContextListener

在部署应用程序时访问ServletContext
public class AppServletContextListener implements ServletContextListener {
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        //use this method for tasks before application undeploy
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        //use this method for tasks before application deploy
        arg0.getServletContext().setAttribute("keyCode", "foo");
    }
}

然后,您可以通过Expression Language

从JSP访问此值
${keyCode} //prints "foo"
${applicationScope.keyCode} //also prints "foo"

和/或在处理请求时的servlet中。例如,在doGet

public void doGet(HttpServletRequest request, HttpServletResponse response) {
    ServletContext servletContext = request.getServletContext();
    System.out.println(servletContext.getAttribute("keyCode")); // prints "foo"
}

有关Java Web应用程序开发中变量范围的更多信息:How to pass parameter to jsp:include via c:set? What are the scopes of the variables in JSP?