一般处理程序是一个后缀名为.ashx的代码文件,该文件的类实现了IHttpHandler接口,这个类用于负责处理它所对应的URL的访问请求,并接受客户端发送的请求信息和发送响应内容。
Get和Post请求方式
Get和Post是向服务器发送请求的两种方式,其中,Get请求是将需要提交给服务器的数据放在URL地址中,而Post请求则是将请求数据封装到请求报文中进行发送。
Request对象获取从客户端向服务器的请求信息
使用Request对象可以获取从客户端向服务器端的请求信息,根据请求情况的不同有三种方式:
string name = context.Request.QueryString[“Name”]; //get请求
string name = context.Request.Form[“Name”]; //post请求
string name = context.Request[“Name”]; //get和post请求
Response对象用于将服务器响应数据发送到客户端
context.Response.Write(“登录成功”); //发送数据
context.Response.Redirect(“http://www.itcast.cn”); //跳转页面
IsPostBack用于标志是否第一次访问页面
相对路径与绝对路径
相对路径是指该文件位于当前文件的哪个位置,并用.\标记上级目录,…\标记上上级目录。
绝对路径是指全部路径一般由C:/(磁盘)开始全部标出。
页面跳转的方式
实现跳转的方式有很多中,可以使用context.Response. Redirect()方法,也可以使用context.Server. Transfer()方法,还可以使用Execute()方法实现页面跳转。其中,它们的区别在于,Execute()是Server对象中用于重定向的方法,此方法用于将执行从当前页面转移到另一个页面,并将执行的结果返回到当前页面。它类似于C#中的方法调用,在方法调用处跳转到被调方法体中,被调方法执行完毕后将结果返回到原调代码处,继续往下执行。Transfer()方法进行重定向,是用于将执行从当前页面转移到另一个页面,不同于Execute()方法的是,执行该方法后不会再返回到当前页面。而使用Redirect()方法进行页面跳转时,浏览器端发送了两次请求,首先发送请求后服务器返回303状态,浏览器端接收到303的返回状态后再次发送请求到跳转到的页面。
ASP.NET内置对象
Cookie用于在浏览器端存储一定数据,使用方法如下:
HttpCookie cookie = new HttpCookie(“Login”); //创建一个Cookie
//采用键值对方式添加要存储的信息
cookie.Values.Add(“Name”, “John”);
cookie.Expires = DateTime.Now.AddYears(1); //设置Cookie为1年
//把Cookie放到当前页面的Response对象里面
Response.Cookies.Add(cookie);
string name = cookie.Values[“Name”]; //获取Cookie中的值
Session用于在服务器端保存数据,同时会发送一个SessionID到客户端浏览器,根据SessionID找到保存的数据
Session[“ItemCount”] = 0; //设置Session的值
int i = (int)Session[“ItemCount”]; //获取Session的值
在Cookie中存放的信息存在安全隐患,而且有可能存在用户的浏览器Cookie被禁用,那么Cookie功能将会失效,Session存放服务器端较为安全,可以存放用户名密码等安全数据
Server用于对服务器上的资源进行访问。
//获取服务器的计算机名称
string machineName = Server.MachineName;
//获取请求超时值(以秒计)
int timeOut = Server.ScriptTimeout;
//获取当前目录在服务器的物理路径
string path = Server.MapPath(".");
Application是用于创建全局变量来检索和保存数据的对象、
Application[“Visitors”] = 0; //设置对象的值
Application.Lock(); //锁定当前对象
Application.UnLock(); //解锁当前对象
数据的增删改查
在web.config中添加数据库连接字符串
/connectionStrings>
/add name=“itcast” connectionString=“server=.;uid=sa;pwd=123456;database=User_info”/>
/connectionStrings>
前标/替换为<
在需要查询的地方
string str = ConfigurationManager.ConnectionStrings[“itcast”].ConnectionString;
string sql = “select * from User_info”;
SqlDataReader reader = SqlHelper.ExecuteReader(sql, null);
通过SQL获取一张表
SqlHelper.ExecuteDataTable(sql,ps);
执行sql语句
SqlHelper.ExecuteNonQuery(sql,ps);