asp_asp.net - CSDN
asp 订阅
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。 [1-2]  ASP简单、易于维护 , 是小型页面应用程序的选择 ,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下, ASP甚至可以实现中等规模的企业应用程序。 [3] 展开全文
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对ASP文件的请求时,它会处理包含在用于构建发送给浏览器的HTML(Hyper Text Markup Language,超文本置标语言)网页文件中的服务器端脚本代码。除服务器端脚本代码外,ASP文件也可以包含文本、HTML(包括相关的客户端脚本)和com组件调用。 [1-2]  ASP简单、易于维护 , 是小型页面应用程序的选择 ,在使用DCOM (Distributed Component Object Model)和 MTS(Microsoft Transaction Server)的情况下, ASP甚至可以实现中等规模的企业应用程序。 [3]
信息
外文名
Active Server Pages
开发公司
微软公司
类    型
Web应用框架
中文名
动态服务器页面
英文缩写
ASP
asp发展历史
在Internet风行的早期,浏览器中显示的网页仅是静态的图文组合而已,浏览者可以在网页上阅读信息,但无法进一步地发表意见、查询信息或进行在线购物等商务活动。为此,人们提出了动态网页或交互网页的概念和解决方案。所谓“动态网页”,是指客户端浏览器和Web服务器端可以互动,也就是服务器端可以实时处理浏览器端的请求(Request),然后再将处理的结果作为对浏览器请求的响应(Response)传送给浏览器。由于Web程序开发十分复杂,以至于要制作一个简单的动态页面也需要编写大量的C代码才能完成。于是Microsoft公司于1996年推出一种Web应用开发技术ASP,用于取代对Web服务器进行可编程扩展的CGI标准。 [1]  ASP 1.0作为IIS(Internet Information Server,Internet信息服务器)的附属产品免费发送,不久就在Windows平台上广泛使用。ASP与ADO的结合使开发者很容易地在一个数据库中建立和打开一个记录集。1998年,微软公司又发布了ASP 2.0。ASP 1.0和ASP 2.0主要区别在于外部组件。有了ASP 2.0和IIS 4.0,就可以建立ASP应用了。在微软公司开发的Windows 2000操作系统中就开始带上了IIS 5.0及ASP 3.0。虽然Windows已经发展到比较高的版本,但是开发领域中依然百分之百采用Windows 2000 Server。Windows 2000包括三个不同的版本:Windows 2000 Professional,Windows 2000 Server和Windows 2000 Advanced Server。按照默认设置安装Windows 2000 Server,安装时不用作任何改动,这样就可配置好ASP的运行环境。 [4] 
收起全文
精华内容
参与话题
  • ASP入门知识点讲解

    千人学习 2018-10-22 21:38:16
    从零基础知识开始讲解ASP的各类基础语法和IIS服务器的搭建,ASP作为你的入门级的编程语言,是你最方便的选择;学完asp的基础,我 们就可以尝试是做公司的网站,一些小型的商城系统,小型的微信/小程序网站、商城...
  • ASP 基础一

    2019-06-30 16:12:42
    ASP是什么? •ASP代表Active Server Pages(动态服务器页面) •需在IIS中运行的程序 我自己的理解就是UI和逻辑代码同在一个页面中,而缺点就是不易维护。code-Behind是asp.net中的术语(代码后置),它的出现解决...

    ASP是什么?

    •ASP代表Active Server Pages(动态服务器页面)

    •需在IIS中运行的程序

    我自己的理解就是UI和逻辑代码同在一个页面中,而缺点就是不易维护。code-Behind是asp.net中的术语(代码后置),它的出现解决了这一问题。

    ASP基本语法:

    ASP的脚本代码都是用<% %>包裹起来的。

    response.write输出语句

    1 <!DOCTYPE html>
    2 <html>
    3 <body>
    4 <%
    5 response.write("我爱你")
    6 %>
    7 </body>
    8 </html>

    也可以简写成<%

    ="我爱你"

    %>

    ASP主要使用两种脚本语言,分别是VBScript和JavaScript,其中页面默认是VB,如果需要指定,在页面顶部插入<%@ language="JavaScript" %>来说明。

    VB对于大小写不敏感,js则敏感,需要注意。同时我自己觉得vb语法比较随意,先学的是ASP.NET,C#的语法就较为规范一点。最起码写完给个;号以表示结束,ASP就不用分号结尾。

    ASP变量的声明和使用:

     1 <!DOCTYPE html>
     2 <html>
     3 <body>
     4 
     5 <%
     6 Dim UserName
     7 name="阿三"
     8 response.write("你可以叫我: " & UserName)
     9 %>
    10 
    11 </body>
    12 </html>
    View Code

    声明他用的Dim,我觉得和JQury中那个var类似。都不表示具体的类型,无类型。至于&和C#中的“+”的作用相同,拼接字符串。 

    ASP根据时间来判定输出什么内容(VB脚本--IF语句):

     1 <!DOCTYPE html>
     2 <html>
     3 <body>
     4 <%
     5 dim h
     6 h=hour(now())
     7 
     8 response.write("<p>" & now())
     9 response.write("</p>")
    10 If h<12 then
    11    response.write("Good Morning!")
    12 else
    13    response.write("Good day!")
    14 end if
    15 %>
    16 </body>
    17 </html>
    View Code

    因为我现在没有可测试的工具,所以有的想法只能先记录一下。

    其实我有点搞不懂为什么要这样单行输出,P标记写在一起应该没啥问题。

    if 条件 then 

    为True执行 某代码块

    else

    执行某代码

    end if    以它说明整个if语句结束。

    ASP数组使用For循环遍历取值:

     1 <!DOCTYPE html>
     2 <html>
     3 <body>
     4 
     5 <%
     6 Dim Name(5),i
     7 Name(0) = "A"
     8 Name(1) = "B"
     9 Name(2) = "C"
    10 Name(3) = "D"
    11 
    12 For i = 0 to 3
    13       response.write(Name(i) & "<br>")
    14 Next
    15 %>
    16 
    17 </body>
    18 </html>
    View Code

    看着这个to就有点懵,后来通过栗子发现,它表示从0到3,且等于3。与C#中有点差别,呐你看

    For (i=0;i<4;i++)

    {}

    ASP子程序

    当用VBScript编写的ASP文件调用VBScript或JavaScript子程序时,可以使用call关键字调用,后面跟子程序名称。

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <%
     5 sub vbproc(num1,num2)
     6 response.write(num1*num2)
     7 end sub
     8 %>
     9 </head>
    10 <body>
    11 
    12 <p>Result: <%call vbproc(3,4)%></p>
    13 
    14 </body>
    15 </html>
    View Code

    如果子程序需要参数,分两种情况:

    使用call,参数必须在括号里面,即参数必须用括号括起来。

    不使用call,参数则不需要用括号括起来。<%vbproc 3,4 %>;

    如果子程序不需要参数参数,括号可选,括不括看你个人爱好。

    当用JavaScript编写的ASP文件调用VBScript或JavaScript子程序时,必须在子程序后面使用括号

    子程序就好比如JQury中的方法,funcation zcx(){},我第一次听到这个名词的时候有点糊。

    ASP表单

    request.QueryString收集的是method=“get”的表单中的值。

     1 <!DOCTYPE html>
     2 <html>
     3 <body>
     4 <form action="demo_reqquery.asp" method="get">
     5 Your name: <input type="text" name="fname" size="20" />
     6 <input type="submit" value="Submit" />
     7 </form>
     8 <%
     9 dim fname
    10 fname=Request.QueryString("fname")
    11 If fname<>"" Then
    12       Response.Write("Hello " & fname & "!<br>")
    13       Response.Write("How are you today?")
    14 End If
    15 %>
    16 </body>
    17 </html>
    View Code

    该方法从表单传出的信息对所有的用户是可见的(如输出的值会显示在网页的地址栏上),对发送的信息的数量也有限制。

    request.Form收集使用method=“post”的表单中的值,信息不可见,且数量没有限制。

     1 <!DOCTYPE html>
     2 <html>
     3 <body>
     4 <form action="demo_simpleform.asp" method="post">
     5 Your name: <input type="text" name="fname" size="20" />
     6 <input type="submit" value="Submit" />
     7 </form>
     8 <%
     9 dim fname
    10 fname=Request.Form("fname")
    11 If fname<>"" Then
    12       Response.Write("Hello " & fname & "!<br>")
    13       Response.Write("How are you today?")
    14 End If
    15 %>
    16 </body>
    17 </html>
    View Code

    对于表单中取到值,用 & &包裹起来,类似于在ADO.net写数据的增删改中,数据库中的每一项用“+ +”包裹起来一样;而前面也看到了,在输出变量时,只用&开头,这里有点小疑问。感觉都是包裹一个变量数据,都统一用&&包裹或&开头行不行?

    转载于:https://www.cnblogs.com/qinsikao/p/8931987.html

    展开全文
  • asp简介

    2018-04-20 14:49:55
     ASP 指 Active Server Pages (动态服务器页面) ASP 是一项微软公司的技术 ASP 是在 IIS 中运行的程序 IIS 指 Internet Information Services (Internet 信息服务) IIS 是 Windows 2000 及 Windows 2003 的...

    ASP 是什么?

        ASP 指 Active Server Pages (动态服务器页面)

        ASP 是一项微软公司的技术

        ASP 是在 IIS 中运行的程序

        IIS 指 Internet Information Services (Internet 信息服务)

        IIS 是 Windows 2000 及 Windows 2003 的免费组件

        IIS 同时也是 Windows NT 4.0 的可选组件    

        此可选组件可通过因特网下载

        PWS 的体积更小 - 不过拥有 IIS 的完整功能

        PWS 可在 Windows 95/98 的安装 CD 中找到

    ASP 文件是什么?

        ASP 文件和 HTML 文件类似ASP 文件可包含文本、HTML、XML 和脚本

        ASP 文件中的脚本可在服务器上执行。

        ASP 文件的扩展名是 ".asp"

    ASP 和 HTML 有何不同?

        当浏览器请求某个 HTML 文件时,服务器会返回这个文件

        而当浏览器请求某个 ASP 文件时,IIS 将这个请求传递至 ASP 引擎。ASP 引擎会逐行地读取这个文件,并执行文件中的脚本。

        最后,ASP 文件将以纯 HTML 的形式返回到浏览器。

    ASP 能为你做什么?

        动态地编辑、改变或者添加页面的任何内容

        对由用户从 HTML 表单提交的查询或者数据作出响应

        访问数据或者数据库,并向浏览器返回结果

        为不同的用户定制网页,提高这些页面的可用性

        用 ASP 替代 CGI 和 Perl 的优势在于它的简易性和速度

        由于 ASP 代码无法从来浏览器端察看,ASP 确保了站点的安全性。

        优秀的 ASP 编程可将网络负载降至最低

    重要事项:由于 ASP 在服务器上运行,浏览器无需支持客户端脚本就可以显示 ASP 文件!

    展开全文
  • ASP实战之HTML入门

    千人学习 2019-06-24 13:35:06
    从零基础知识开始讲解HTML的各类基础语法和各类标签元素的知识点,同时我们会讲解和服务器端ASP的数据之间的交互;手把手的讲解每个知识点,剖析每个知识点,然后一行一行敲写代码进行现场实战、演示、讲解;同步...
  • asp.net 实现用户登录和注册——基于webform模式

    万次阅读 多人点赞 2019-03-17 12:06:45
    最近在写asp课程设计,网站登录注册的功能怎么能少,捣鼓了两天终于弄出点东西来了。 环境:Windows10 + VS2015 + 自带LocalDB 看一下效果: 1、注册页面: 如果用户重名: 2、登录页: 3、注册或者...

        最近在写asp课程设计,网站登录注册的功能怎么能少,捣鼓了两天终于弄出点东西来了。

        环境:Windows10 + VS2015 + 自带LocalDB

        看一下效果:

        1、注册页面:

    如果用户重名:

     

    2、登录页:

     

    3、注册或者登录好了会跳到Home页面并且显示当前的用户

     

    下面看看关键代码:

    ①注册前台页面Register.aspx:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="Album.OnlineAlbum.Register" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>注册</title>
        <style>
            	form{
      
       
        color:#575454;  
        width:500px;
        margin:20px auto;
        font-size:15px;
    	}
    .label{
        color:red;
        font-size:12px;
        font-family:'Lucida Console';
    }
           
    input.Tb{
        border-radius:5px;
    
    }
    
         .user_name{ width:240px; height:38px; line-height:38px; border:1px solid #000; background:url(login_img_03.png)  no-repeat left center; padding-left:30px; }  
    .user_name input{ width:230px; height:36px; border:1px solid #fff;color:#666;}  
    .password{ width:240px; height:38px; line-height:38px; border:1px solid #dfe1e8; background:url(login_img_09.png)  no-repeat left center; padding-left:30px; }  
    .password input{ width:230px; height:36px; border:1px solid #000;color:#666;}  
    .transButton {
        border:solid 1px;
        background-color:transparent;
    }
    #btnRegister{
      
        font-size:14px;
    }
    #linkToLogin{
        text-decoration:none
    }
    #ckItem{
        text-decoration:none
    }
    body{
           background-image:url("rbg.jpg");
    }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        
                    <h2>欢迎注册OA</h2>
          
                    <h3>每一天,记录美。</h3>
           
                    
           
                    <br />
    
           <asp:ScriptManager ID="ScriptManager1" runat="server">
                   </asp:ScriptManager> 
           
         
               <asp:TextBox runat="server" ID="rUserNameText"   Height="40px" Width="490px" CssClass="Tb"></asp:TextBox>
    
                   <br />  
               <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                 <ContentTemplate>
                      <asp:CustomValidator ID="CustomValidator1" runat="server" 
        ControlToValidate="rUserNameText" ErrorMessage="*" 
        onservervalidate="CustomValidator1_ServerValidate">
    </asp:CustomValidator>
                 </ContentTemplate>
               
                 </asp:UpdatePanel>
                    <br />
                <asp:TextBox runat="server" ID="rPsdText"  TextMode="Password" Height="40px" Width="490px" CssClass="Tb"></asp:TextBox>
                <br /> 
             <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                 <ContentTemplate>
     <asp:CustomValidator ID="CustomValidator2" runat="server" 
        ControlToValidate="rPsdText" ErrorMessage="*" 
        onservervalidate="CustomValidator2_ServerValidate">
    </asp:CustomValidator>
                 </ContentTemplate>
               
                 </asp:UpdatePanel>
                <br />
               <asp:TextBox runat="server" ID="rrPsdText"  TextMode="Password" Height="40px" Width="490px" CssClass="Tb" ></asp:TextBox>
               <br />
          <asp:UpdatePanel ID="UpdatePanel3" runat="server">
                 <ContentTemplate>
           <asp:CustomValidator ID="CustomValidator3" runat="server" 
        ControlToValidate="rrPsdText" ErrorMessage="*" 
        onservervalidate="CustomValidator3_ServerValidate">
    </asp:CustomValidator>
                 </ContentTemplate>
               
                 </asp:UpdatePanel>
               
             <br />
             <table>
                <tr>
                    <td>
                        <asp:CheckBox ID="CheckBox1" runat="server" Checked="true" />
                    </td>
                    <td>
                         <span>同意</span>  <asp:LinkButton runat="server" Text="服务条款" ID="ckItem"></asp:LinkButton>
                    </td>
                    <td>
                                               
                                               
                               
                    </td>
                    <td>
                      
                        <asp:LinkButton ID="linkToLogin" runat="server" Text="已有账号?登录" OnClick="linkToLogin_Click"></asp:LinkButton>
                    </td>
                </tr>
            </table>
            
               
          
    
           
    
            <asp:Button ID="btnRegister" runat="server" CssClass="transButton" Height="49px" Text="注    册" Width="500px" OnClick="btnRegister_Click" />
                     
        
        </form>
        </body>
            <script type="text/javascript">  
            function watermark(id, value) {  
                var obj = document.getElementById(id);
                var isPsdMode = false;
                if (obj.type == "password")
                {
                    obj.type = "text";
                    isPsdMode = true;
                }
                obj.value = value;  
                obj.style.color = "Gray";
                //获取焦点事件  
                obj.onfocus = function () {
                    
                    obj.style.color = "Black";
                    if (isPsdMode)
                    {
                        obj.type = "password";
                    }
                    if (this.value == value) {  
                        this.value = '';  
                    }  
                };  
                //失去焦点事件  
                obj.onblur = function () {  
                    if (this.value == "") {
                        if (isPsdMode) {
                            obj.type = "text";
                        }
                        this.value = value;  
                        obj.style.color = "Gray";
                    }  
                    else {  
                        obj.style.color = "Black";
                    }  
                };  
            }  
            window.onload = function () {  
                var arr = [{ 'id': 'rUserNameText', 'desc': '用户名' }, { 'id': 'rPsdText', 'desc': '密码' },{ 'id': 'rrPsdText', 'desc': '确认密码' }];
                for (var i = 0; i < arr.length; i++) {  
                    watermark(arr[i].id, arr[i].desc);  
                }  
            };  
        </script> 
    </html>
    

     

      注册后台页面Register.aspx.cs:

     

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    
    namespace Album.OnlineAlbum
    {
        public partial class Register : System.Web.UI.Page
        {
            private bool UserNameIselgal = false;
            private bool PsdIselgal = false;
            private bool CanRegister = false;
    
            protected void Page_Load(object sender, EventArgs e)
            {
                
            }
    
    
            protected void linkToLogin_Click(object sender, EventArgs e)
            {
                Response.Redirect("Login.aspx");
            }
    
            protected void btnRegister_Click(object sender, EventArgs e)
            {
                Session["User"] = rUserNameText.Text;
                Session["Psd"] = rPsdText.Text;
    
                string connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True";
                SqlConnection conn = new SqlConnection(connStr);
    
              
                try
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand("select count(*) from UserTable where UId=@UId", conn);
                    cmd.Parameters.Add("@UId", SqlDbType.Char);
                    cmd.Parameters[0].Value = Session["User"];
                    int count = (int)cmd.ExecuteScalar();
    
                    if (count > 0)
                    {
    
                        Response.Write("<script>alert('用户名已存在!')</script>");
                    }
                    else
                    {
                       
                        CanRegister = true;
                    }
                }
                catch
                {
                    Response.Write("检测重名异常");
                }
    
                finally
                {
                    conn.Close();
                }
    
                if (CanRegister)
                {
                    try
                    {
                        conn.Open();
                        string strIns = "insert into  UserTable(UId, Psd) values(@UId, @Psd)";
                        SqlCommand cmd = new SqlCommand(strIns, conn);
                        cmd.Parameters.Add("@UId", SqlDbType.NChar);
                        cmd.Parameters.Add("@Psd", SqlDbType.NChar);
    
                        cmd.Parameters["@UId"].Value = Session["User"];
                        cmd.Parameters["@Psd"].Value = Session["Psd"];
    
                        cmd.ExecuteNonQuery();
                    }
                    catch
                    {
                        Response.Write("注册异常");
                    }
                    finally
                    {
                        conn.Close();
    
                    }
                }
                CanRegister = CanRegister && UserNameIselgal && PsdIselgal;
                if (CanRegister)
                {
                    Session["CurrentUser"] = rUserNameText.Text;
                    Response.Redirect("Home.aspx");
                }
              
            }
    
            protected void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
            {
                if (rUserNameText.Text.Equals("用户名"))
                {
                    CustomValidator1.ErrorMessage = "*用户名为空";
                    args.IsValid = false;
                } else if (System.Text.RegularExpressions.Regex.IsMatch(rUserNameText.Text, "^[0-9a-zA-Z]+$") &&
                        rUserNameText.Text.Length > 5 && rUserNameText.Text.Length < 11)
                        {
                        args.IsValid = true;
                        UserNameIselgal = true;
                        }
                     else
                    {
                    CustomValidator1.ErrorMessage = "*用户名由6~10位数字和字母构成";
                    args.IsValid = false;
                     }
    
              
            }
    
            protected void CustomValidator2_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
            {
                if (rPsdText.Text.Equals("密码"))
                {
                    CustomValidator2.ErrorMessage = "*密码为空";
                    args.IsValid = false;
                }
    
                else if (System.Text.RegularExpressions.Regex.IsMatch(rPsdText.Text, "^[0-9a-zA-Z]+$") &&
                  rPsdText.Text.Length > 4)
               {
                    args.IsValid = true;
                }
                else
                {
                    CustomValidator2.ErrorMessage = "*密码由全数字和字母构成且不少于5位";
                    args.IsValid = false;
                }
            }
    
            protected void CustomValidator3_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
            {
                if (rrPsdText.Text.Equals("") ||rrPsdText.Text.Equals("确认密码"))
                {
                    args.IsValid = false;
                    CustomValidator3.ErrorMessage = "*确认密码为空";
                }
                else if (!rrPsdText.Text.Equals(rPsdText.Text))
                {
                    args.IsValid = false;
                    CustomValidator3.ErrorMessage = "*两次密码不一致";
                }
                else
                {
                    PsdIselgal = true;
                    args.IsValid = true;
                }
            }
        }
    }

        ②登录前台页面Login.aspx:

        

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Album.OnlineAlbum.Login" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>登陆</title>
         <style>
            	form{
      
       
        color:#575454;  
        width:500px;
        margin: auto;
        font-size:15px;
        margin-top:260px;
    	}
       #spanpsd{
           margin-left:125px;
       }
       #spanuser{
           margin-left:110px;
       }
       div{
           margin:30px auto;
           align-content:center;
       } 
       .textbox{
           border:solid 1px;
           background:rgba(0, 0, 0, 0);
       }
       #LinkButton1{
           text-decoration:none;
           color:lightblue;
            margin-left:230px;
           
       }
       #Button1{
           border-radius:2px;
           border:solid 1px;
        background-color:transparent;
        margin-left:150px;
         margin-top:10px;
       }
      body{
                background-image: url("lbg.jpg");
            }
      
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
            <div>
                <div>
                    <span id="spanuser">用户名:</span>
                    <asp:TextBox ID="TextBox1" runat="server" CssClass="textbox" Height="30px" Width="240px"></asp:TextBox>
                </div>
    
                <div>
                    <span id="spanpsd">密码:</span>
                    <asp:TextBox ID="TextBox2" runat="server" CssClass="textbox" Height="30px" Width="240px" TextMode="Password"></asp:TextBox>
                </div>
    
                <div>
                    <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">没有账号?注册</asp:LinkButton>
                    <br />
                    <asp:Button ID="Button1" runat="server" Text="登 录" Width="270px" Height="40px" OnClick="Button1_Click" />
                </div>
            </div>
               
        </form>
    </body>
    </html>
    

        登录后台页面Login.aspx.cs:

        

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace Album.OnlineAlbum
    {
        public partial class Login : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
               
            }
    
           
    
            protected void LinkButton1_Click(object sender, EventArgs e)
            {
                Response.Redirect("Register.aspx");
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                string connStr = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True";
                SqlConnection conn = new SqlConnection(connStr);
    
                try
                {
    
    
                    conn.Open();
                    SqlCommand cmd = new SqlCommand("select count(*) from UserTable where UId=@UId and Psd=@Psd", conn);
                    cmd.Parameters.Add("@UId", SqlDbType.Char);
                    cmd.Parameters.Add("@Psd", SqlDbType.Char);
                    cmd.Parameters[0].Value = TextBox1.Text;
                    cmd.Parameters[1].Value = TextBox2.Text;
                    int count = (int)cmd.ExecuteScalar();
                    if (count == 1)
                    {
    
                        Session["CurrentUser"] = TextBox1.Text;
                        Response.Redirect("./Home.aspx");
    
    
                    }
                    else
                    {
                        Response.Write("<script>alert('用户名或密码错误')</script>");
                    }
                }
                catch
                {
                    Response.Write("<script>alert('登录异常')</script>");
                }
    
                finally
                {
                    conn.Close();
                }
    
            }
        }
    }

        ③Home.aspx:

        

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="Album.OnlineAlbum.Home" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title>Online Ablum</title>
        <style>
            #page_header{
               height:20px;
               margin-left:10px;
            }
        </style>
    </head>
    <body>
       
        
    
            <form runat="server">
               
              
                 <asp:LinkButton runat="server" OnClick="Unnamed2_Click" ID="btnToReg">注册</asp:LinkButton>
              
             <asp:LinkButton runat="server" OnClick="Unnamed1_Click" ID="btnToLog">登录</asp:LinkButton>
              
            </form>
             
       
     </body>
    </html>
    

        home.aspx.cs:

        

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace Album.OnlineAlbum
    {
        public partial class Home : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["CurrentUser"] != null)
                    btnToReg.Text = Session["CurrentUser"].ToString();
            }
    
            protected void Unnamed1_Click(object sender, EventArgs e)
            {
                Response.Redirect("Login.aspx");
            }
    
            protected void Unnamed2_Click(object sender, EventArgs e)
            {
                Response.Redirect("Register.aspx");
            }
        }
    }    

       Web.config:

    <?xml version="1.0" encoding="utf-8"?>
    <!--
      有关如何配置 ASP.NET 应用程序的详细信息,请访问
      http://go.microsoft.com/fwlink/?LinkId=169433
      -->
    <configuration>
    
      
    <connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <appSettings>
        <add key="ValidationSettings:UnobtrusiveValidationMode" value="none"/>
      </appSettings>
      <system.web>
        <compilation debug="true" targetFramework="4.5.2"/>
        <httpRuntime targetFramework="4.5.2"/>
        <httpModules>
          <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/>
        </httpModules>
      </system.web>
      <system.codedom>
        <compilers>
          <compiler language="c#;cs;csharp" extension=".cs"
            type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
            warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
          <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
            type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
            warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
        </compilers>
      </system.codedom>
      <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules>
          <remove name="ApplicationInsightsWebTracking"/>
          <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"
            preCondition="managedHandler"/>
        </modules>
      </system.webServer>
    </configuration>

     

    附上项目代码,需要积分下载。

     ps:这是我一个在线相册系统的一部分,完整项目源码见github,可以不用积分下载,不过你得理清我写的东西。

    展开全文
  • ASP.NET项目大概构造 最近,因为期末作业,于是写了一个ASP.NET项目,很简单,写了几天,感觉还行,于是分享一下。 .NET框架使用的语言有很多,而我的ASP.NET项目用的是C#。实话说,我这是第一次用C#写,感觉和...

    ASP.NET项目大概构造

    最近,因为期末作业,于是写了一个ASP.NET项目,不是很难,用vs2017写的(vs还可以的,挺好用的,特别是前端的路径选择真的是好啊!!!),写了几天,感觉还行,于是分享一下。
    vs2017安装使用:
    https://blog.csdn.net/qq_36556893/article/details/79430133
    .NET框架使用的语言有很多,而我的ASP.NET项目用的是C#。实话说,我这是第一次用C#写,感觉和java差不多。那我现在就简单说一下我的ASP.NET项目如何写的:
    我的页面构造(不好看,有点混乱,现在有点后悔-。-):
    在这里插入图片描述
    在这里插入图片描述

    前端:

    1.页面:和html有点不同:

      <tr>
                            <td style="text-align:center;" class="form-text">
                                用户名:
                            </td>
                            <td class="form-input">
                                <asp:TextBox ID="tbUSerName" runat="server">
                                </asp:TextBox>
                              <asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="tbUserName" ErrorMessage="用户名不能为空"></asp:RequiredFieldValidator> 
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align:center;" class="form-text">
                                密&nbsp;&nbsp;&nbsp;码:
                            </td>
                             <td>
                                <asp:TextBox ID="tbPassword" runat="server" TextMode="Password">
                                </asp:TextBox>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tbPassword" ErrorMessage="密码不能为空"></asp:RequiredFieldValidator> 
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2" style="text-align:center;">
                                <asp:Button ID="btLogin" runat="server" OnClick="btLogin_Click" Text="登录" />
                            </td>
                        </tr>
    

    显示效果如下:

    2.css样式:和html差不多,没大有区别

    引入css样式:

    <link rel="stylesheet" href="../css/addcss.css" />
    

    后台:因为我用的是web窗体,所以会自动生成后台:

    在这里插入图片描述
    页面加载时想调用这个方法:Page_Load
    点击事件按钮调用的方法:btLogin_Click(object sender,EventArgs e):可以自动生成

    1.跳转:

     Response.Redirect("FirstPage.aspx");
    

    2.前端弹窗:像js的alert(“”)

     this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('登陆成功!')</script>");
      return;
    

    3.获取前端页面的值:

    第一种方法:
    前端id.属性

    string strName = tbUSerName.Text;
     string strPwd = tbPassword.Text.Trim();
    

    第二种方法:
    Request[id]

    //下面的包括了单选框,复选框,下拉框,input等
    string id = Guid.NewGuid().ToString("N");//生成uuid:只能用ndbpx
                string name = Request["name"];
                string age = Request["age"];
                // string sex1 = sex.SelectedValue;
                string sex = Request["sex"];
                string phone = Request["phone"];
                string grade = Request["grade"];
                string hobbies = "";
                foreach(ListItem item in hobby.Items)
                {
                    if (item.Selected)
                    {
                        hobbies += item.Value + ",";
                    }
                }
                if (name == "" || age == "" || sex == "" || phone == "" || grade == "" || hobbies == "")
                {
                    this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('信息填写不完整!')</script>");
                    return;
                }
                string remarks = Request["remarks"] == null ? "" : Request["remarks"];
    

    4.生成UUID:

    string id = Guid.NewGuid().ToString("N");//生成uuid:注意:只能用ndbpx,自行百度
    

    c#生成UUID的方法:https://blog.csdn.net/csj1314520/article/details/53033447

    5.项页面输出内容,使页面显示后台传出的数据

    前台:

    <asp:Label ID="lblMsg" runat="server" Text="" Class="selectd"></asp:Label>
    

    后台:

    lblMsg.Text = "请重新选择";
    

    6.页面之间通信:

    a->b
    a页面后台代码发送:

     Session["id"] = str[0];
                    Session["name"] = str[1];
                    Session["age"] = str[2];
                    Session["sex"] = str[3];
                    Session["phone"] = str[4];
                    Session["grade"] = str[5];
                    Session["hobby"] = str[6];
                    Session["remarks"] = str[7];
                    Response.Redirect("update.aspx");
    

    b页面后台代码接收:

    id = (string)Session["id"];
                name.Text = (string)Session["name"];
                phone.Text = (string)Session["phone"];
                sex.Text = (string)Session["sex"];
                age.Text = (string)Session["age"];
                string grade1 = (string)Session["grade"];
                ListItem item1 = grade.Items.FindByValue(grade1);
                if (item1 != null)
                {
                    item1.Selected = true;
                }
                char c = ',';
                string[] str = ((string)Session["hobby"]).Split(c);
                foreach (string val in str)
                {
                    ListItem item = hobby.Items.FindByValue(val);
                    if (item != null)
                    {
                        item.Selected = true;
                    }
                }
                  remarks.Text = (string)Session["remarks"];
    

    7.连接数据库:ADO.NET操作数据库

    sqlserver数据库下载:
    https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=community&rel=15
    安装教程:https://blog.csdn.net/xyy410874116/article/details/26349465
    修改代码里的MySqlCon,这一步用来连接到数据库,至关重要。

    在“服务器资源管理”处选中数据库,然后可以在“属性”窗口找到“连接字符串”,复制其内容,赋给MySqlCon。比如我修改后是:
    Data Source=MS-20180307VTBY\SQLEXPRESS;Initial Catalog=member;Integrated Security=True
    在这里插入图片描述

    完成这些操作后,就可以在form里写代码来修改数据库了。

    8.与数据库的操作:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data.SqlClient;
    using System.Data;
    namespace WebApplication1.ado
    {
        public class Member
        {
            private string MySqlCon = "Data Source=MS-20180307VTBY\\SQLEXPRESS;Initial Catalog=member;Integrated Security=True";    //在vs中的数据库的详细信息中查找复制
    
            //其实是相当于提供一个可以传参的函数,到时候写一个sql语句,存在string里,传给这个函数,就会自动执行。
            public DataTable ExecuteQuery(string sqlStr)      //用于查询;DataTable
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                DataTable dt = new DataTable();
                SqlDataAdapter msda;
                msda = new SqlDataAdapter(cmd);
                msda.Fill(dt);
                con.Close();
                return dt;      //返回查询出的数据表
            }
            public Boolean ExecuteQuery1(string sqlStr)      //用于查询;Boolean
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                SqlDataReader dr = cmd.ExecuteReader();
                Boolean b = false;
                if (dr.HasRows)
                {
                    b = true;
                }
                else
                {
                    b = false;
                }
                con.Close();
                return b; //返回boolean表示是否查询出数据
            }
            public string[] ExecuteQuery2(string sqlStr)      //用于查询;string[]
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                SqlDataReader dr = cmd.ExecuteReader();
                string[] str = new string[8];
                if (dr.HasRows)
                {
                    dr.Read();
                    dr["sex"].ToString();
                    for(int i = 0; i <= 7; i++)
                    {
                        str[i] = (dr.GetString(i)==null|| dr.GetString(i).Length==0)?"": dr.GetString(i);
                    }
                }
                else
                {
                    
                }
                con.Close();
                return str; 
            }
            public int ExecuteUpdate(string sqlStr)      //用于增删改;
            {
                SqlConnection con = new SqlConnection(@MySqlCon);
                con.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = con;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = sqlStr;
                int iud = 0;
                iud = cmd.ExecuteNonQuery();
                con.Close();
                return iud;    //返回受影响的行数
            }
    
        }
    }
    

    如:
    查询:

    string str = "<table border='1' width='100%'><tr>";
                Member member = new Member();
                string sql = "select * from member";
                DataTable table = member.ExecuteQuery(sql);
                //输出表的列名
                for(int i = 0; i < table.Columns.Count; i++)
                {
                    str = str + "<th colspan=\"2\" style=\"text - align: center; \">" + table.Columns[i].ColumnName + "</th>";
                }
                str = str + "</tr>";
                //输出表的数据
                for(int i = 0; i < table.Rows.Count; i++)
                {
                    DataRow row = table.Rows[i];
                    str = str + "<tr>";
                    for(int j = 0; j < table.Columns.Count; j++)
                    {
                        str = str + "<td colspan=\"2\" style=\"text - align: center; \">" + row[j]+"</td>";
                    }
                    str = str + "</tr>";
                }
                str = str + "</table>";
                lblMsg.Text = str;
    

    详解在:https://blog.csdn.net/kiss__soul/article/details/80316788
    *

    问题解决:

    可能会出现一些问题,如:WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
    其实就是缺少路径或者运行空间
    详解:https://blog.csdn.net/ayang1986/article/details/45042909
    好了,暂时就先这些吧,其实这asp.net和java的某些框架差不多,如果看不懂的话,我还有完整项目(包括数据库文件,是sqlServer数据库)在“我的资源”里,可以下载,直接能运行,里面注解很清晰。

    项目下载:

    https://download.csdn.net/download/weixin_43075298/10890259

    展开全文
  • ASP标签

    千次阅读 2018-01-26 22:49:46
    3.jsp标签: 3.1简介 EL表达式可以替换jsp表达式,但是EL表达式局限:不能条件判断,不能赋值,不能迭代jsp标签:替代 jsp脚本,完成条件判断,赋值,迭代等等功能。 ... 1)jsp内置标签(动作标签):使用的...
  • asp.net发布网站的详细步骤

    万次阅读 多人点赞 2017-11-07 16:03:51
    1、用VS2013打开解决方案。   2、选中解决方案,点击鼠标“右键”—>从弹出...3、待第2步“清理解决方案”结束后,选中“解决方案”—>点击鼠标“右键”—>在弹出对话框中,选择“重新生成解决方案”。...
  • 基于ASP.Net写的一个购物网站

    千次阅读 热门讨论 2020-04-17 11:03:16
    本网站前端利用了如下技术... 首先,我们需要建立一个网站的首页。 网站的首页当然要按照自己的想法来做,但是如果你还没有明确的想法要怎么做自己的网页,可以向我一样,仿照其他购物网站 的首页来设计自己网站...
  • asp

    2020-06-05 23:30:10
    jjj 博文链接:https://wanghongwei.iteye.com/blog/237872
  • 简单的ASP表单提交到后台的源码

    热门讨论 2020-07-30 23:30:36
    这是一个简单的带后台的表单提交asp源码
  • 概述 本项目使用最新的Tornado开发。实现了在线提问,回答,评论等功能。使用到Tornado的generator,长轮询等等技术, 支持MySQL的异步连接。 详细 ...项目介绍:本项目最初是为了模仿StackOverflow的练手项目,...
  • asp增加数据库表的字段代码

    千次阅读 2010-01-28 08:52:00
    下面是最具技术含量的函数了,哈哈~增加数据库字段function addziduan(ziduanming,ziduanleixing)on error resume next fldname = ziduanming if ziduanleixing=1 or ziduanleixing=4 then fldtype = "VarChar" ...
  • HTML+ASP+JS使用POST提交表单

    千次阅读 2018-09-11 11:25:01
    有些时候需要用JS处理数据后再提交表单,那么可以使用下面这个方法进行提交:   &lt;head&gt; &lt;script&gt; function testjsFunc() { /*处理数据*/ ... document.getElementByI...
  • 800个网址导航站登陆入口大放送(二)

    万次阅读 2008-05-05 13:52:00
    800个网址导航站登陆入口大放送(二) ...
  • 部分google hacking的搜索内容

    万次阅读 2011-09-05 22:58:36
    inurl:index.php?id= inurl:trainers.php?id= inurl:buy.php?category= inurl:article.php?ID= inurl:play_old.php?id= inurl:declaration_more.
  • 7000个源码批量下载

    万次阅读 2011-05-19 11:08:00
    7000个源码批量下载 < type="text/javascript" language="JavaScript">document.title="7000个源码批量下载 - "+document.title <br />http://asp.lt263.com/soft/SaGuestBook.rar 安全天使字符界面留言...
  • 拿站常用关键字

    万次阅读 2012-06-04 10:36:53
    1、到GoogLe,搜索一些关键字,edit.asp? 韩国肉鸡为多,多数为mssql数据库!  2、到Google ,site:cq.cn inurl:asp  3、利用挖掘鸡和一个asp木马. 文件名是login.asp 路径l_keylink" href=...
  • 获取webshell权限的45种方法

    万次阅读 2013-08-30 10:07:06
    1, 到GoogLe,搜索一些关键字,edit.asp? 韩国肉鸡为多,多数为MSSQL数据库! 2, 到Google ,site:cq.cn inurl:asp 3, 利用挖掘鸡和一个ASP木马. 文件名是login.asp 路径组是/manage/ 关键词是went.asp 用'or'='...
  • ASP最简单的连接MySql数据库详细教程

    万次阅读 2019-05-24 17:39:00
    1.下载安装mysql-connector-odbc-5.2.5-winx64.msi 下载地址 2.打开控制面板,选择“管理工具” 3. 选择ODBC 数据源(64 位) ...4.打开ODBC数据源,设置用户DSN,选择添加MySqlODBC 5.2 ANSI Driver ...
1 2 3 4 5 ... 20
收藏数 827,757
精华内容 331,102
关键字:

asp