ASP.NET 노트 의 Request,Response,Server 사용

5194 단어 RequestResponseServer
1、Request
    
다음 실례 를 들 어 Request 의 몇 가지 방법 을 통 해 탐색 그림 이 내부 탐색 인지 아 닌 지 를 판단 하고 인터넷 주소 로 탐색 하거나 외부 에서

<%@ WebHandler Language="C#" Class="image_Test" %>

 using System;
 using System.Web;

 public class image_Test : IHttpHandler {

     public void ProcessRequest(HttpContext context)
     {
         context.Response.ContentType = "image/JPEG";
         // URLreferrer null ,
         //URLreferrer
         string picPath=HttpContext.Current.Server.MapPath("DSCF0738.JPG");
         using (System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(picPath)) {
             using (System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(bitmap))
             {
                 // , UrlReferrer
                 //
                 if (context.Request.UrlReferrer == null)
                 {
                     graphic.Clear(System.Drawing.Color.White);
                     graphic.DrawString(" ", new System.Drawing.Font(" ", 15),
                         System.Drawing.Brushes.Red, 0, 0);

                 }
                 //http://127.0.0.1:32581/WebSite_zzl01/vivideo_test/request/Request.aspx

                 else if (context.Request.UrlReferrer.Host != "localhost")
                 {
                     graphic.Clear(System.Drawing.Color.White);
                     graphic.DrawString(" ", new System.Drawing.Font(" ", 15),
                         System.Drawing.Brushes.Red, 0, 0);
                 }
                 //
                 bitmap.Save(context.Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg);

             }
         }
     }

     public bool IsReusable {
         get {
             return false;
         }
     }

 }
html 를 사용 합 니 다
   라 라 라 라
 2、Response
   (1)스 트림 을 되 돌려 클 라 이언 트 에 게 스 트림 으로 되 돌려 줍 니 다*write 할 때마다 캐 시 에 저장 합 니 다.브 라 우 저 에 직접 저장 하 는 것 이 아니 라 저장 이 가득 하거나 처리 가 끝 날 때 까지 브 라 우 저*Flush 방법 으로 즉시 브 라 우 저 에 보 냅 니 다.

   (2)도 난 방지 등:더 이상 실행 하지 않 고 aspx 에 쓰 는 것 이 좋다.       context.Response.End();
   (3)aspx 와 ashx
        출력 텍스트,그림,다운로드 주 소 는 마지막 으로 ashx 에 쓰 이 고 html 내용 은 aspx 에 쓰 입 니 다.
    (4)방향 을 바꾼다 Redirect
          
       Flush 실례:

 <%@ WebHandler Language="C#" Class="response" %>

using System;
using System.Web;

public class response : IHttpHandler {

    public void ProcessRequest (HttpContext context) {

        // plain <br/>
        context.Response.ContentType = "text/html";
        //
        for (int i = 0; i < 20; i++)
        {
            System.Threading.Thread.Sleep(500);
            context.Response.Write(" "+i+" <br/>");
            // Flush, , !
            context.Response.Flush();
        }
    }

    public bool IsReusable {
        get {
            return false;
        }
    }

}
 

3,server
  (1)Server.Transfer 와 Response.Redirect 의 차이
         *transfer 방문 은 내부 사이트 일 수 있 고 외부 일 수 없 으 며 redirect 는 가능 합 니 다.
        * transfer 는 사이트 내부 에서 연결 되 어 http 요청 을 한 번 만 수행 하고 Redirect 는 몇 번 돌리 면 http 요청 을 몇 번 실행 하고 주소 표시 줄 에 표시 합 니 다.
         * transfer 는 각종 정 보 를 직접 전달 하지만 Redirect 는         * ashx transfo 로 다시 지정 할 수 없습니다.
           
              
실례:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class vivideo_test_server_server : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string text=Request["id"];
        if (text == "1") {
            Response.Write(" ");
        }
        else if(text=="2"){
            //
            Server.Transfer("DSCF0738.JPG");
        }
        else if (string.IsNullOrEmpty(text))
        {
            Response.Write(" ");
        }
        else {
            //
            Response.Redirect(" .jpg");
            //
            //Response.Redirect("aaa.aspx?id=1");

        }
    }
}

좋은 웹페이지 즐겨찾기