gdk

导航

浏览器与服务器的交互

    请求--->处理--->响应  

    对类HttpContext 内部成员的使用 例如 :Request 、Response 、 Cookie 、 Session 、GetSection  . . .

        

 

/////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

* * * 然而  一般处理程序 既为 中间阶段的 处理 层面

 

复制代码
1 public void ProcessRequest(HttpContext context)
2 
3         {
4 
5             context.Response.ContentType = "text/plain";
6 
7             context.Response.Write("<a href='http://www.rupeng.com'>如鹏网</a>");
8 
9         }
复制代码

 

* * *  上面的代码就是对于请求的内容做出处理。

/////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

 

 ContentType: http://baike.baidu.com/view/1547292.htm?wtp=tt#5

http://zhidao.baidu.com/link?url=P-4kstF4EZV9ZcBctA8WJ6pBvMoeU-3PTu2mAT_ZQ_0GPfCKtz7e4d_iDOfomOCMq9KcUZxbFwNN9NlROF-Fl_

//***主要拿来生成动态图片和动态文本,比传统aspx文件效率高,因为它不包含控件解析和页面处理的过程..楼上说用于ajax,其实就是用它来产生动态文本,
你也可以拿来做验证码图片等..不过它的作用应该不止于此吧,我看了下资料说它完全可以自定义Http请求,这些当然是属于比较高深的内容了

 

/////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

HttpContext.Request :

http://msdn.microsoft.com/zh-cn/library/system.web.httprequest(v=vs.110).aspx

 

 添加  //string action=context.Request["name"];

            //int age = Convert.ToInt32(context.Request["age"]);

            //string action=context.Request["name"]

            //context.Response.Write("<font color='red'>Hello " + action + "</font>");

            //context.Response.Write("<font color='green'>我今年"+age+"岁</font>");

之后  在地址栏里 传递 参数 . . . . 

       Request :请求   //从地址栏获得

       Response :响应  //返回给页面

 

 

 

<form action="TestHandler.ashx" method="get">

 

姓名:<input type="text" name="name" /><br />

 

年龄:<input type="text" name="age" /><br />

 

<input type="submit" />

</from>

 

 

将表单里的东西发送到地址栏,地址栏向服务器请求,然后服务器响应传回所请求的东西到地址栏,然后页面获取地址栏里相应的值。

 

   //  将表单里的内容提交(action)给服务器端(url)的程序(TestHandler.ashx)

      name里的值是指定具体对应的值(传参用的)

    上面的 //string action=context.Request["name"];

            //int age = Convert.ToInt32(context.Request["age"]);

     请求的参数就是 name 标签里的具体值。 

 

/////~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

封装模版引擎NVelocity.dll   

使用到了匿名函数 

 

            //把类的定义和对象的声明初始化放到一起

            //匿名类

            var news = new { Title = "特大喜讯",Author="杨中科",PostDate="2013-11-08",Msg="今天晚上会公布喜讯细节!" };

            string s = news.PostDate;           

 

复制代码
 1  public class CommonHelper
 2     {
 3         public static string RenderHtml(string name, object data)
 4         {
 5              VelocityEngine vltEngine = new VelocityEngine();
 6             vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
 7             vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹
 8             vltEngine.Init();
 9 
10             VelocityContext vltContext = new VelocityContext();
11             vltContext.Put("Model", data);//设置参数,在模板中可以通过$data来引用
12 
13             Template vltTemplate = vltEngine.GetTemplate(name);
14             System.IO.StringWriter vltWriter = new System.IO.StringWriter();
15             vltTemplate.Merge(vltContext, vltWriter);
16             return vltWriter.GetStringBuilder().ToString();
17         }
18     }
复制代码

 

结合一般处理程序 使用情况

 

 

 

 

                                         http 无状态保持(05-状态的传递和保持)

 

 

 怎么记住提交的值呢 ? 

   利用隐藏字段来实现 【相当于看病的病历本】

Html中:

 

Ashx中:

 

缺点  : 无法自由的存取数据 。 

 

posted on 2022-04-28 09:02  郭东康  阅读(114)  评论(0编辑  收藏  举报