webform基礎介紹及頁面傳值(session,cookie)、跳轉頁面


 

一,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

//新建Cookie對象
HttpCookie cookie_name = new HttpCookie("uid");
//賦值
cookie_name.Value = uid;
//寫入到Cookie里面
Response.AppendCookie(cookie_name);

在使用界面:讀取Cookie
Request.Cookies["uid"].Value.ToString(); 

 5.QueryString傳值

在源頁面寫:Response.Redirect("Main.aspx?(要打開的頁面)uid="+uid+"&pwd="+pwd(要傳輸過去的的數值));//打開新頁面時候把數值傳過去
在目標頁面:Request["uid"].ToString();

7.跳轉頁面方式:

 

1.Response.Redirect("http://www.baidu.com");重定向,可以跳轉任何網頁
2.Server.Transfer("Main.aspx");只能跳轉該網站根目錄下的網站

 


免責聲明!

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



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