첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
유용한 소스 코드가 있으면 icodebroker@naver.com으로 보내주시면 감사합니다.
블로그 자료는 자유롭게 사용하세요.

728x90
반응형

■ ASP.NET 상태 관리하기

------------------------------------------------------------------------------------------------------------------------


TestProject.zip


Global.asax.cs

 

 

using System;

using System.Web;

 

namespace TestProject

{

    /// <summary>

    /// 글로벌

    /// </summary>

    public class Global : HttpApplication

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Protected

 

        #region 애플리케이션 시작시 처리하기 - Application_Start(sender, e)

 

        /// <summary>

        /// 애플리케이션 시작시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        protected void Application_Start(object sender, EventArgs e)

        {

            Application["Now"] = DateTime.Now;

        }

 

        #endregion

        #region 세션 시작시 처리하기 - Session_Start(sender, e)

 

        /// <summary>

        /// 세션 시작시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        protected void Session_Start(object sender, EventArgs e)

        {

            Session["Now"] = DateTime.Now;

        }

 

        #endregion

    }

}

 

 

MainPage.aspx

 

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainPage.aspx.cs" Inherits="TestProject.MainPage" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>ASP.NET 상태 관리하기</title>

    </head>

    <body>

        <form id="form" runat="server">

            <div>

                <h3>서버 저장</h3>

                Application : <asp:TextBox ID="applicationTextBox" runat="server" /><br />

                Session : <asp:TextBox ID="sessionTextBox" runat="server" /><br />

                Cache : <asp:TextBox ID="cacheTextBox" runat="server" /><br />

    

                <h3>클라이언트 저장</h3>

                Cookie : <asp:TextBox ID="cookieTextBox" runat="server" /><br />

                ViewState : <asp:TextBox ID="viewStateTextBox" runat="server" />

                <hr />

                <asp:LinkButton ID="saveButton" runat="server"

                    OnClick="saveButton_Click">

                    상태 변수 데이터 저장

                </asp:LinkButton>

                &nbsp;

                <asp:LinkButton ID="postbackButton" runat="server">

                    다시 게시

                </asp:LinkButton>

            </div>

        </form>

    </body>

</html>

 

 

MainPage.aspx.cs

 

 

using System;

using System.Web.UI;

 

namespace TestProject

{

    /// <summary>

    /// 메인 페이지

    /// </summary>

    public partial class MainPage : Page

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Protected

 

        #region 페이지 로드시 처리하기 - Page_Load(sender, e)

 

        /// <summary>

        /// 페이지 로드시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        protected void Page_Load(object sender, EventArgs e)

        {

            if(!Page.IsPostBack)

            {

                this.applicationTextBox.Text = Application["Now"].ToString();

                

                this.sessionTextBox.Text = Session["Now"].ToString();

 

                if(Cache["Now"] != null)

                {

                    this.cacheTextBox.Text = Cache["Now"].ToString();

                }

 

                if(Request.Cookies["Now"] != null)

                {

                    this.cookieTextBox.Text = Server.UrlDecode(Request.Cookies["Now"].Value);

                }

 

                if(ViewState["Now"] != null)

                {

                    this.viewStateTextBox.Text = ViewState["Now"].ToString();

                }

            }

        }

 

        #endregion

        #region 저장 버튼 클릭시 처리하기 - saveButton_Click(sender, e)

 

        /// <summary>

        /// 저장 버튼 클릭시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        protected void saveButton_Click(object sender, EventArgs e)

        {

            Application["Now"] = this.applicationTextBox.Text;

 

            Session["Now"] = this.sessionTextBox.Text;

 

            Cache["Now"] = this.cacheTextBox.Text;

 

            Response.Cookies["Now"].Value = Server.UrlEncode(this.cookieTextBox.Text);

 

            ViewState["Now"] = this.viewStateTextBox.Text;

 

            Response.Redirect("StatePage.aspx");

        }

 

        #endregion

    }

}

 

 

StatePage.aspx

 

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="StatePage.aspx.cs" Inherits="TestProject.StatePage" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

        <title>저장 상태 조회</title>

    </head>

    <body>

        <form id="form" runat="server">

            <div>

                <h3>서버 저장</h3>

                Application : <asp:TextBox ID="applicationTextBox" runat="server" /><br />

                Session : <asp:TextBox ID="sessionTextBox" runat="server" /><br />

                Cache : <asp:TextBox ID="cacheTextBox" runat="server" /><br />

                <h3>클라이언트 저장</h3>

                Cookies : <asp:TextBox ID="cookieTextBox" runat="server" /><br />

                ViewState : <asp:TextBox ID="viewStateTextBox" runat="server" />

            </div>

        </form>

    </body>

</html>

 

 

StatePage.aspx.cs

 

 

using System;

using System.Web.UI;

 

namespace TestProject

{

    /// <summary>

    /// 상태 페이지

    /// </summary>

    public partial class StatePage : Page

    {

        //////////////////////////////////////////////////////////////////////////////////////////////////// Method

        ////////////////////////////////////////////////////////////////////////////////////////// Protected

 

        #region 페이지 로드시 처리하기 - Page_Load(sender, e)

 

        /// <summary>

        /// 페이지 로드시 처리하기

        /// </summary>

        /// <param name="sender">이벤트 발생자</param>

        /// <param name="e">이벤트 인자</param>

        protected void Page_Load(object sender, EventArgs e)

        {

            this.applicationTextBox.Text = Application["Now"].ToString();

 

            this.sessionTextBox.Text = Session["Now"].ToString();

 

            if(Cache["Now"] != null)

            {

                this.cacheTextBox.Text = Cache["Now"].ToString();

            }

 

            if(Request.Cookies["Now"] != null)

            {

                this.cookieTextBox.Text =  Server.UrlDecode(Request.Cookies["Now"].Value);

            }

 

            if(ViewState["Now"] != null)

            {

                this.viewStateTextBox.Text = ViewState["Now"].ToString();

            }

        }

 

        #endregion

    }

}

 

------------------------------------------------------------------------------------------------------------------------

728x90
반응형
Posted by 사용자 icodebroker
TAG , ,

댓글을 달아 주세요