3.postback이란 무엇인가

7872 단어 post
우리가 서버에서 웹 페이지를 직접 읽을 때, 이 웹 페이지는post(제출)가 없고, 사용자가 다시 폼을 제출할 때, 이 웹 페이지의 관련 파라미터를 서버에 전송하여 처리합니다. 서버에 있어서는postback(제출반환), 즉 제출이 돌아왔습니다.이게 바로 포스트백입니다.
웹 개발을 할 때 이것은 매우 중요하다. 사용자가 처음 불러올 때postback이 아니라 사용자가 같은 웹 페이지를 서버에 제출할 때postback이다.
 
우리는 다음과 같은 테스트 프로그램을 만들고, 먼저 폼이 있는 폼을 만들고, 그 안에textbox와submit 단추를 넣는다.단추를 눌렀을 때 textbox의 값을 서버에 전송하는 프로그램으로 처리합니다. 서버는 처음 불러올지 다시 사용자에게 제출할지에 따라 당연히 서버는 이 템플릿을 되돌려줍니다.
주의 모듈은 웹 페이지를 열 때 이 프로세서의 웹 주소를 직접 열면 템플릿을 불러오고 템플릿에서 되돌아오는 정보에 따라 클라이언트에게 같은 페이지처럼 제출됩니다.
   1.거푸집
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



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

<head>

    <title></title>

</head>

<form action="HandlerHello1.ashx" method="post">

  <body>

    <input type="hidden" name="ispostback" value="true" /><input type="text" name="UserName" value="@value" />

    <br />

    <input type="submit" name="vvv" value=" " />

    <br />

    @msg

  </body>

</form>

</html>

왜hidden 요소를 사용하는지는postback인지 확인하기 위해서name 속성을 가진 요소만 서버에 제출할 수 있습니다.HandlerHello1에서 직접 가져오기 때문에 처음 로드할 때 이러한 요소는 커밋되지 않습니다.ashx가 불러옵니다. 이 때hidden의value는 존재하지 않습니다.사용자가 제출할 때 이 값을 전달합니다. 이 때 서버는postback이라는 것을 알게 됩니다.2. 서버 구축
 
<%@ WebHandler Language="C#" Class="HandlerHello1" %>



using System;

using System.Web;



public class HandlerHello1 : IHttpHandler {

    

    public void ProcessRequest (HttpContext context) {

        context.Response.ContentType = "text/html";

        string postback = context.Request["ispostback"];

        string username=context.Request["UserName"];

        

        string msg="";

        if(postback=="true") 

        {

            context.Response.Write(" ");

            msg=""+username;

        }else

        {

            context.Response.Write(" ");

            username = "";

            @msg="";

        }

        string s=context.Request["vvv"];

        if (!string.IsNullOrEmpty(s))

        {

            @msg=s;

        }

        // hello1.html

        string constr = System.IO.File.ReadAllText(context.Server.MapPath("Hello1.htm"));

        constr=constr.Replace("@value", username); // 

        constr = constr.Replace("@msg",msg); // @msg 

        context.Response.Write(constr);

    }

 

    public bool IsReusable {

        get {

            return false;

        }

    }



}

교체된 내용은 사용자의 웹 페이지가 움직이지 않은 것 같다.사실은 서비스 측이 또 완전한copy를 제출했다.
 
 

좋은 웹페이지 즐겨찾기