2014-02-26 3 views
0

.JSP 웹 사이트에서 사용할 수있는 변수를 저장하는 가장 좋은 방법은 무엇입니까? 나는 숫자의 묶음 인 keycode를 가지고있다. keycode = XXXXXXXXXXXXXXXXXXXXX 그리고 나는 여러 페이지에서 그 코드에 접근 할 수 있기를 원한다..JSP 사용을 위해 변수 저장?

변수는 자주 변경되지 않지만 한 곳에서 바꿀 수 있고 어디에서나 참조 할 수 있습니다.

+2

(모든 사용자),, (배포 중 변경 만) 또는 JNDI 값 또는 –

+0

모든 사용자에게 적용해야하므로 응용 프로그램 범위 경로를 어떻게 수행합니까? – NCoder

+1

http://docs.oracle.com/javaee/6/tutorial/doc/gjbbk.html, http://stackoverflow.com/questions/11091377/using-application-scope-variables-in-java, http :// /stackoverflow.com/questions/9573021/setting-a-variable-at-application-scope-so-it-shared-among-sessions, 등등. –

답변

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" 

그리고/또는 서블릿을 요청을 처리 할 때. 예를 들어, doGet의 : Java 웹 응용 프로그램 개발에서 변수의 범위에 대한

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

더 많은 정보 : 세션 범위 (사용자 별)의 적용 범위에서 How to pass parameter to jsp:include via c:set? What are the scopes of the variables in JSP?

관련 문제