創建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應用程序 通過項目建網站
