• 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");
        }
  • 相关阅读:
    材料订单不在IN_MO或者IN_SCFHEADER中
    FP ABPPMGR表 其它常用存储过程
    ORA-01578 ORACLE data block corrupted (file # 29, block # 2889087)
    PR合并回写
    MySQL优化
    分享一些JVM常见的面试题(转)
    怎么保证 redis 和 db 中的数据一致
    User space(用户空间) 与 Kernel space(内核空间)
    如何设计一个安全的对外接口?(转)
    Jstack命令详解
  • 原文地址:https://www.cnblogs.com/William-1234/p/4533905.html
Copyright © 2020-2023  润新知