2009-09-23 5 views
0

웹 응용 프로그램에서 정적 변수를 사용할 수 없다는 것은 잘 알려진 사실입니다. 응용 프로그램을 통해 정적으로 남아 있기 때문에 정적 변수를 웹 응용 프로그램에서 사용할 수있는 시나리오가 있습니까?웹 응용 프로그램의 정적 변수

감사

+1

당신이 말하는 언어 또는 환경은 무엇입니까? –

+0

언어 또는 환경에 관계없이, 나는 정적이 같은 방식으로 행동한다고 ​​생각한다. –

+2

'정적'의 정확한 의미는 언어 간 차이뿐만 아니라 동일한 언어로 된 웹 환경 (예 : 다중 프로세스 vs. 다중 스레드) 변경 – orip

답변

1

질문을 이해할 수 있을지 모르겠지만 웹 응용 프로그램에서 정적 변수를 사용하는 것이 그 의미를 이해할 수있을 경우 완벽하게 문제가되는 경우가 있습니다. 예를 들어, NHibernate 및 "session-per-request"모델을 사용하는 .NET 웹 응용 프로그램의 일반적인 용도는 새 세션을 새로 만들려면 ISessionFactory의 정적 인스턴스를 유지하는 것입니다. 이것은 세션 팩토리가 매우 무거운 객체이고 일반적으로 많은 리소스를 생성하기 때문에 유용합니다.

1

당신은 쿠키 응용 프로그램 또는 세션 변수에

  • 에서 DB
  • 에서 ... 여러 곳에서

    • 을 정적 정보를 저장할 수
    • 쿼리 문자열 (또는 형식 변수)에서

    (또는 질문에 대한 오해가 있습니까?)

  • +1

    그래, 정적 값을 세션, 뷰 상태 및 언급 한 장소에 저장할 수 있음을 이해합니다. 그러나 정적 변수 (정적 변수로 선언 된 변수)를 사용하여 다른 장소에 저장하는 대신 특정 기능을 사용할 수 있습니까? –

    0

    사용중인 웹 프레임 워크는 언급하지 않지만 ASP.Net을 사용하는 경우 Application 개체 또는 Session 개체에 개체를 할당 할 수 있습니다. 요청간에 응용 프로그램 전반에 걸쳐 정보를 보유하고 개별 사용자의 모든 요청에 ​​대해 정보를 보유합니다.

    일반적인 방법으로 질문하고 있는데 주관적 + 토론으로 표시되어있는 것으로 의심되는 경우 쿠키를 사용하여 사용자의 모든 요청에서 변수를 보유 할 수 있습니다.

    모든 사용자의 가치를 지키기 위해 사용중인 웹 프레임 워크를 살펴 봐야합니다. ASP.Net의 Application 오브젝트에 해당하는 내용을 저장하기 위해 각 요청에 액세스 할 수있는 파일에 항목을 저장하는 것과 같은 옵션이 있습니다.

    내가 너무 실용적이라면 유감이지만, 내가 사는 곳에서는 늦어진다. :)

    1

    구성 데이터, 데이터베이스 연결 문자열, 데이터베이스 원본에서 검색된 응용 프로그램의 상수 데이터.

    초기화 후 변경하지 않아도되는 항목.

    예를 들어, 페이지에서 구성 설정을 가져 와서 반복해서 사용할 수 있습니다. 이 예제에서 myUrl이 초기화되면 웹 응용 프로그램이 다시 시작될 때까지 web.config 파일을 다시 히트 할 필요가 없습니다.

    static public string myUrl = string.Empty 
    
    public void SomeRoutine() 
    { 
        if (string.IsNullOrEmpty(myUrl)) 
         myUrl = ConfigurationManager.AppSettings[ "myUrl" ].ToString(); 
    
        ... 
    
        Response.Redirect(myUrl); 
    }