webform基礎


一,IIS

1.首先知道IIS是個什么東西:它是web服務器軟件,安裝在服務器上,接受客戶端發來的請求,並傳送給服務器端,然后響應請求並送回給客戶端。類似於飯店里的服務員。

2.會安裝IIS——控制面板-程序-打開或關閉windows功能

3.會進行基本的設置:安裝完成后,打開控制面板-管理工具-IIS

應用程序池——設置.Net4.0框架

默認目錄:C:\inetpub目錄下           虛擬目錄:在別的盤可以設置虛擬目錄

二,建立.Net的Web項目

1.文件-新建-網站

在文件位置可選擇文件系統和HTTP

HTTP:是用IIS建立和運行項目

文件系統:使用VS自帶的IIS Express建立和運行項目,一般默認用此法創建

2.進入界面后

App_Code:系統文件夾。所有的.cs單獨的類文件要放在App_Code文件夾中。(即所有的數據訪問類data和DA文件)

Web.Config配置文件。程序配置內容放在里面,通常用來放鏈接字符串。

頁面文件:.aspx(設計界面)和.aspx.cs(源代碼)兩部分,在編譯或運行的時候會把二者自動合成一個類。

3.案例:在頁面上動態顯示數據庫信息

1.在div中新建一個表格,添加第一行數據

2.利用C#代碼動態生成以下幾行

 <div>
    <h1>人員顯示</h1>
        <table width="100%" border="1" cellpadding="5" cellspacing="1">
            <tr bgcolor="blue" align="center" style="color:white;font-weight:bold">
                <td >代號</td>
                <td >姓名</td>
                <td >性別</td>
                <td >民族</td>
                <td >生日</td>
            </tr>
            <%List<InfoData> list=new InfoDA().Select();
              foreach (InfoData data in list)
              {
               %>
            <tr align="center" bgcolor="green">
                <td><%=data.Code %></td>
                 <td><%=data.Name %></td>
                 <td><%=(data.Sex?"":"") %></td>
                 <td><%=data.NationData.Name %></td>
                 <td><%=data.Birthday %></td>
            </tr>
            <%} %>
        </table>
    </div>

注意:<%%>內不需要輸入數據,里面存放要執行的C#代碼

     <%=%>內需要輸入數據,里面存放需要顯示的數據

說明:在aspx.cs中導入命名空間,使用using XXXXX導入;。在aspx中導入命名空間使用<%@ Import Namespace="XXXXX" %>導入。

三,web下常用的五個對象

1.Request——獲取請求

string s=Request[""];   //中括號內填寫地址欄中?后面名值對中的名或者是表單元素的name名

 string d1 = Request["TextBox1"];

2.Response——響應請求

Response.Write("字符串"); //服務器的程序代碼向頁面輸入一串字符。

Response.Redirect("重定向頁面");  //重定向頁面到指定頁面

注意:所有的Web程序都是無狀態的。即本頁面與下一個打開的子頁面或者上一個父頁面都沒有關系,不會傳值

原因是它們使用的HTTP協議本身就是無狀態的

表現:每個返回到客戶的頁面,都與之前或之后的頁面不相關,無法訪問之前頁面的數據,或為之后頁面送數據。

解決:在服務端或客戶端通過使用幾個對象來專門存儲相關狀態的數據。

在服務端存儲狀態的對象:Session和Application

在客戶端存儲狀態的對象:Cookie

3.Session:每個獨立的瀏覽器都會創建一個獨立的Session,不是一台電腦一個Session

Session存儲的數據在當前會話中共享,關閉會話即消失

特性:Session在20分鍾之內如果沒有會話操作,則會自動釋放

語法:(1)用Session存值:Session["key名"] = 值;      值,不只是個字符串,可以是對象。

(2)從Session取值:類型 變量名 = (強制轉換的類型名)Session["key名"]

(3)釋放Session:釋放某個Session:Session["key名"]=null;

          釋放所有Session:Session.clear();

          自動釋放:20分鍾

4.案例

                    登錄界面,登錄成功后轉向另一界面並顯示“歡迎您XXX”加上當前時間

I,登錄界面

 protected void Button1_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text.Length > 0 && TextBox2.Text.Length > 0)
        {
            Session["user"] = TextBox1.Text;
            Response.Redirect("Default.aspx");
        }
    }

II,顯示頁面

protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["user"] == null)
        {
            Response.Redirect("Default2.aspx");
        }
        

        if (Session["test"] == null)
        {
            Session["test"] = DateTime.Now.ToString();
        }

        Label1.Text =" 歡迎您:"+Session["user"].ToString()+"<br/>";

        Label1.Text +=Session.SessionID+"&nbsp;" + Session["test"].ToString();
    }

4.Application:所有的會話共享一個Application空間,任何一個人改變Application的內容,其他人都會發現被改變了。Application中的內容不會被自動釋放

(1)用Application存值:Application["key名"] = 值; 值,不只是個字符串,可以是對象。
(2)用Application取值:類型 變量名 = (強制轉換的類型名)Application["key名"]
(3)判斷Application中是否存有某個值
if(Application[“key名”] == null)
{

}
(4)釋放Application:Application["key名"] = null;

案例:每次訪問頁面都會累加訪問次數

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Application["count"] == null)
        {
            Application["count"] = 0;
        }
        Application["count"] = (int)Application["count"] + 1;


        Label1.Text = Application["count"].ToString();
    }

 5.Cookie:保存在客戶端內存或硬盤上

臨時Cookie是存在瀏覽器內存中的,持久Cookie是存在電腦硬盤上瀏覽器相關的Cookie目錄下的

設置Cookie
Response.Cookies["key名"].Expires = 過期時間。
Response.Cookies["key名"].Value = 值。

讀取Cookie
string s = Request.Cookies["key名"].ToString();

案例:設置Cookie登錄(記住用戶名,30天免登錄)

 protected void Button2_Click(object sender, EventArgs e)
    {
        if (TextBox1.Text.Length > 0 && TextBox2.Text.Length > 0)
        {
            if (CheckBox1.Checked == true)
            {
                Response.Cookies["user"].Expires = DateTime.Now.AddDays(30);
            }
            Response.Cookies["user"].Value = TextBox1.Text;

            Response.Redirect("Default5.aspx");
        }
    }

登陸成功后跳轉頁面,點擊退出重新登錄並清除Cookie

 protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Cookies["user"] == null)   
        {
            Response.Redirect("Default2.aspx");
        }
        Label1.Text = Request.Cookies["user"].Value;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Cookies["user"].Expires = DateTime.Now.AddDays(-1);//過期時間為昨天,即清除Cookie
        Response.Redirect("Default2.aspx");
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM