web程序入门一(一般处理程序 ashx+HTML)

创建web程序:  通过一般处理程序  创建web应用

  这种方法比较麻烦       不拖控件

1.先建一个 一般处理程序 *.ashx

2.再建一个HTML 模板

在HTML中设置占位符 如 <p>$username</p> <p>$passwd</p>

在ashx文件中读取HTML文件:

string filepath = context.Request.MapPath("*.html") 获取该文件的物理路径

string strhtml = File.ReadAllText(filepath) 读取文件

strhtml = strhtml.Replace("$username","张三").Replace("$passwd","123456") 多个占位
符可以接着写 替换占位符

context.Response.Write(strhtml); 返回页面



 该方法常用方法:

关于post和get请求的:

 

接收post请求提交过来的数据

string  userName = context.Request.Form["txtName"] ;     txtName是文本框的name属性值

如果表单是以post方式提交过来的,接收时必须用Request.Form来接收,表单元素必须有name

属性,而Form指定的键的名称就是name的属性值。

 

 对于发送post/get请求的form表单网页,会自动向一般处理程序发送请求

当后端只是需要获得请求的数据,且不需要返回给前端时,不需要读取前端页面

有占位符时,需要读取文件,再替换

后端数据需要返回给前端时,需要读取前端页面文件

 

 接收get请求发送过来的数据

string  userName = context.Request.QueryString["txtName"]; 

如果是get请求接收用Request.QueryString,

表单元素必须有name属性,指定的键的名称就是name的属性值。

 

对安全性要求不高的表单用get请求,安全性要求高的用post请求

使用get请求时分享地址可以看到对方的搜索结果:有利于推广

注册登录都用post  post请求发送的数据比get请求大  如上传文件

 

 表单提交,在HTML文件中,form标签的action属性,指明要提交数据到那个一般处理程序

 

后端返回到前端的文件类型:

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

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

跳转重定向:

 context.Response.Redirect("\test.ashx")    

context.Response.Redirect("\test.html") 

 

 接收文件 文件上传

<input  type="file"   enctype=""   value ="fileup">

HttpPostedFile  file = context.Request.Files["fileup"];  接收文件数据

file.FileName  获得完全文件名

文件下载:

对于压缩包:

<a  href ="/aa.rar">下载</a>    直接这样,点击就可以下载      一般不这么用

对于普通文件下载:

<a  href ="/download.aspx">下载</a>

创建一个一般处理程序 download.aspx

string  encodeFileName = HttpUtility.UrlEncode("aaa.txt");  //要下载的文件名

HttpUtility.UrlEncode的作用是中文文件名时,防止乱码,

context.Response.AddHeader("Content-Disposion", string .Format("attachment; filename = \{0}\" , encodeFileName));

//在响应头加上Content-Disposition, attachment 表示以附件的形式下载

context.Response.WriteFile("aaa.txt")  //输出文件内容

 

http协议无状态:

可以通过如下方式记录数据

1.隐藏域

<input  type ="hidden"   name="add"  value = “$id”>

放一个值在隐藏域中,提交form表单时,该隐藏域中的值也会被提交

提交表单时,可以把用户看不见的数据,但是需要提交到服务端的数据通过隐藏域传递

修改<div>标签中的值

 

提交只能提交表单中的数据,不能提交div中的内容

 

不同方式创建网站的区别:

通过  新建--网站

创建web网站没有命名空间;

 当需要调用类时,把需要引用的类文件,放在App_code文件夹中

 

web网站每一个页面(ashx)页面都是一个独立程序,一个页面出错了,不会影响另外一个页面。

网站中每个页面,都生成对应的程序集,名称是随机的,当文件保存以后,请求会自动保存一下。

如果你对文件中的代码改动了,ASSembley.GetExecutingAssembly().Location会重新编译生成一个新的

程序集,如果没有改动,则不生成。

 

通过 新建--项目

创建web应用程序有空间;

 

项目中建立一个文件或是修改了一个文件,一定要重新生成,生成的目的就是将项目生成对应的dll文件

放到bin/Debug目录下,(并且所有的类放在了该程序集中),如果项目中的一个文件出错了,是没办法

生成成功的。

 

在实际生产中,使用web应用程序 通过项目建网站

posted on 2017-11-20 16:37  yanmay  阅读(1812)  评论(0编辑  收藏  举报

导航