博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十节 4基于ashx方式的ASP.Net开发
阅读量:6155 次
发布时间:2019-06-21

本文共 2459 字,大约阅读时间需要 8 分钟。

<%@ WebHandler Language="C#" Class="Hello1" %>using System;using System.Web;public class Hello1 : IHttpHandler {        public void ProcessRequest (HttpContext context) {        context.Response.ContentType = "text/html"; //表示响应的数据是html数据        //context.Response.Write("Hello World");        string username = context.Request["username"];//取得用户提交过来的name为UserName的表单的值        //实现假像在当前页面提交        context.Response.Write("
姓名:
"); context.Response.Write("Hello World"); context.Response.Write(username); //将字符串写回到浏览器 } public bool IsReusable { get { return false; } }}

  

<%@ WebHandler Language="C#" Class="Hello2" %>/* "返回"提交而面改进版* 为了请求,返回的内容一样,将页面保存为一个html模板文件,模板中有一些待填值的占位符,第一次进行页面的时候就直接访问ashx,读取html模板,将待填值占位各个领域设置为空,然后输出到浏览器 *  * 为了区分是第一次直接进入页面还是点击提交以后重新进入ashx,在form中增加一个隐藏字段 *  如果能够从Request中读取到ispostback=true就说明是点击提交以后重新进入ashx,否则就是第一次进入ashx *  * ASP.net将web虚拟路径("/images/1.jpg")转换为磁盘全路径(d:/www/mysite/images/1.jpg)的方法是 * HttpContext.Current.Request.MapPath("/1/入让2.htm"); *  * 实现思路: 在ProcessRequest中首先从Request中读取ispostback,如果读取到true,说明是提交进入的,就加载模板 * 并且进行占位符用计算后的值替换,否则就将模板中的占位符清空直接输出给浏览器,代码 *  * 刚进入hello2.ashx的时候是直接向浏览器输出内容,用户在输出的内容中填入数值,再点击提交,服务器就知道"提交回来了" * * 文本框上次输入的值在提交表单后又显示出来并不是理所当然的,是开发人员帮着读取提交上来的值后渲染上去的,这就是aps.net中aspx和cs的关系,用户aspx重写这个程序,使用ispostback等属性,对比 *  * Get与Post * 还可以设定form的method属性指定表单提交方式,get(默认值)是通过url传递表单值,post传递的表单值是隐藏到http报文中,url中看到不 * get和post的区别: get是通过url传递表单值,post通过url看不到表单域的值: * get传递的数据量是有限的,如果要传递大数据量不能用get,比如type="file"上传文件,type="password"传递密码或者重新提交表单的问题,get则没有 *  * Get方式Url数据格式样,服务端文件名后跟着? 由于客户端可能向服务器端提交多个键值对,键值对之间用"&"进行分割,如果URL中没有汉字,特殊符号等,则需要对URL进行编码 *  **/using System;using System.Web;public class Hello2 : IHttpHandler {        public void ProcessRequest (HttpContext context) {        context.Response.ContentType = "text/html";        //context.Response.Write("Hello World");        string fillpath = context.Server.MapPath("Hello2.htm"); //提到文件的全路径        string content = System.IO.File.ReadAllText(fillpath);  //读取文件        context.Response.Write(content);  //定入到页面上        string username = context.Request["username"];        //如果提交了UserName这个参数则说明是提交表单进来的        if (string.IsNullOrEmpty(username))        {            context.Response.Write("直接进入");        }        else {            context.Response.Write("提交进入");        }    }     public bool IsReusable {        get {            return false;        }    }}

  

转载地址:http://ifbfa.baihongyu.com/

你可能感兴趣的文章
DBCP连接池
查看>>
cannot run programing "db2"
查看>>
mysql做主从relay-log问题
查看>>
Docker镜像与容器命令
查看>>
批量删除oracle中以相同类型字母开头的表
查看>>
Java基础学习总结(4)——对象转型
查看>>
BZOJ3239Discrete Logging——BSGS
查看>>
SpringMVC权限管理
查看>>
spring 整合 redis 配置
查看>>
redhat6.1下chrome的安装
查看>>
cacti分组发飞信模块开发
查看>>
浅析LUA中游戏脚本语言之魔兽世界
查看>>
飞翔的秘密
查看>>
Red Hat 安装源包出错 Package xxx.rpm is not signed
查看>>
编译安装mysql-5.6.16.tar.gz
查看>>
活在当下
查看>>
每天进步一点----- MediaPlayer
查看>>
PowerDesigner中CDM和PDM如何定义外键关系
查看>>
跨域-学习笔记
查看>>
the assignment of reading paper
查看>>