当前位置: 首页 > news >正文

网站代理如何做国外旅游哪几个网站做攻略好

网站代理如何做,国外旅游哪几个网站做攻略好,免费咨询问题,做网站用asp还是php好做asp.net开发的对.aspx,.ascx和.ashx都不会陌生。关于它们#xff0c;网上有很多文章介绍。“纸上得来终觉浅#xff0c;绝知此事要躬行”#xff0c;下面自己总结一下做个笔记。1、.aspx Web窗体设计页面。Web窗体页由两部分组成#xff1a;视觉元素#xff08;html、服…做asp.net开发的对.aspx,.ascx和.ashx都不会陌生。关于它们网上有很多文章介绍。“纸上得来终觉浅绝知此事要躬行”下面自己总结一下做个笔记。1、.aspx Web窗体设计页面。Web窗体页由两部分组成视觉元素html、服务器控件和静态文本和该页的编程逻辑(VS中的设计视图和代码视图可分别看到它们对应得文件)。VS将这两个组成部分分别存储在一个单独的文件中。视觉元素在.aspx 文件中创建。2、.ascx asp.net的用户控件,是作为一种封装了特定功能和行为这两者要被用在Web应用程序的各种页面上的Web页面被开发的。一个用户控件包含了html、代码和其他Web或者用户控件的组合并在Web服务器上以自己的文件格式保存其扩展名是*.ascx。asp.net里的缺省配置并不允许Web客户端通过url来访问这些文件但是这个网站的其他页面可以集成这些文件里所包含的功能。3、.ashx  前面两个都太熟悉了这个才是要讲的重点。 1、使用举例 .ashx文件是主要用来写web handler的。使用.ashx 可以让你专注于编程而不用管相关的web技术。我们熟知的.aspx是要做html控件树解析的.aspx包含的所有html实际上是一个类所有的html都是类里面的成员这个过程在.ashx是不需要的。ashx必须包含IsReusable属性这个属性代表是否可复用通常为true而如果要在ashx文件用使用Session必须实现IRequiresSessionState接口. 一个简单的实现修改登录用户密码的示例 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Web.SessionState; namespace Test {     public class HandlerTest : IHttpHandler, IRequiresSessionState     {         public void ProcessRequest(HttpContext context)         {             context.Response.ClearContent();             context.Response.ContentType  text/plain;             context.Response.Cache.SetCacheability(HttpCacheability.NoCache); //无缓存             string action  context.Request.Params[action]; //外部请求             if (action  modifyPwd) //用户改密码             {                 string oldPwd  context.Request.Params[pwd];                 //在ashx文件用使用Session必须实现IRequiresSessionState接口                 //Session[LogedUser]是登录用户的会话,用户名和密码都是test                 if (oldPwd.ToUpper() ! ((context.Session[LogedUser]) as Customer).Password.ToUpper()) //用户输入的旧密码和当前登录用户的不相同                 {                     context.Response.Write(旧密码输入错误!);                 }                 else                 {                     context.Response.Write(旧密码输入正确!);                 }             }             context.Response.End();         }         public bool IsReusable         {             get             {                 return true;             }         }     } } 客户端的调用js和页面部分 % Page LanguageC# AutoEventWireuptrue CodeBehindASHXTest.aspx.cs InheritsASHXTest % !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlnshttp://www.w3.org/1999/xhtml head runatserver     titlemytest/title     script typetext/javascript         function $(s) { if (document.getElementById) { return eval(document.getElementById(  s  )); } else { return eval(document.all.  s); } }         function createXMLHTTP() {             var xmlHttp  false;             var arrSignatures  [MSXML2.XMLHTTP.5.0, MSXML2.XMLHTTP.4.0,                          MSXML2.XMLHTTP.3.0, MSXML2.XMLHTTP,                          Microsoft.XMLHTTP];             for (var i  0; i  arrSignatures.length; i) {                 try {                     xmlHttp  new ActiveXObject(arrSignatures[i]);                     return xmlHttp;                 }                 catch (oError) {                     xmlHttp  false; //ignore                 }             }             // throw new Error(MSXML is not installed on your system.);              if (!xmlHttp  typeof XMLHttpRequest ! undefined) {                 xmlHttp  new XMLHttpRequest();             }             return xmlHttp;         }         var xmlReq  createXMLHTTP();         // 发送ajax处理请求(这里简单验证旧密码的有效性)         function validateOldPwd(oTxt) {             var url  /HandlerTest.ashx?actionmodifyPwdpwd  escape(oTxt.value); //.ashx文件             xmlReq.open(get, url, true);             xmlReq.setRequestHeader(If-Modified-Since, 0);             xmlReq.onreadystatechange  callBack;             xmlReq.send(url); // 发送文本         }         function callBack() {             if (xmlReq.readyState  4) {                 if (xmlReq.status  200) {                     alert(xmlReq.responseText); // 接收文本                 }                 else if (xmlReq.status  404) {                     alert(Requested URL is not found.);                 } else if (xmlReq.status  403) {                     alert(Access denied.);                 } else                     alert(status is   xmlReq.status);             }         }     /script /head body     form idform1 runatserver     div         input idtxtOldPwd typetext οnblurvalidateOldPwd(this) /     /div     /form /body /html 分析 a、以前我们通常都是通过一个简单的aspx文件实现的功能其实通过ashx也可以。 笔者曾经写过的一篇ajax:数据传输方式简介 通过对比我们发现aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了html的过程但是ashx也可以处理html的一些逻辑只是通常都不这么用。理论上ashx比aspx要快。 b、还是在相同的旧文里我们知道数据传输的几种方式其实ashx都可以实现修改ashx文件里context.Response.ContentType 即可这里不再赘述了。 2、ashx特别适合于生成动态图片生成动态文本(纯文本jsonxmljavascript等即可)等。  3、.ashx文件有个缺点它处理控件的回发事件非常麻烦。处理数据的回发通常都需要一些.aspx页的功能只有自己手动处理这些功能还不如直接建一个aspx文件来处理。所以一般使用.ashx输出一些不需要回发处理的项目即可。 4、总结 aspx--PPage ascx--CControl ashx--HHttpHandler 当浏览器访问web服务器我们最终接收到的还是html文本。浏览器通过渲染引擎解释这些标签在屏幕上展现出可见的效果。而asp.net不过就是我们应用的一种平台技术来变相解释html的说白了它就是为了提高生产率它的技术术语再多本质上还是html范畴内的东西如果你不通过那些动态页面技术完全利用html和浏览器当然包括js技术来实现动态页面效果那么你会发现效果有了代码量也相当可观.所以说web开发的底层就是一堆的html标签无论是asp.net还是jsp都是对html某种方式的包装是html的产物。 在VS中右击项目添加新项我们找到.ashx文件在新建项模板中叫做“一般处理程序”那么这个一般处理程序用来干吗的呢 我们可以这样地简单理解嗯不需搞得太复杂它就类似.aspx文件用于处理传入到服务器的HTTP请求但它不会像.aspx文件那样要返回处理结果和大量HTML它可以返回简单的字符串、图片等。 大家知道HttpHandle需要在Web.Config文件中进行相应的配置那么如果不配置呢能否直接使用可以的来动手玩玩。 1、在项目中添加一个.ashx文件并改写默代码如下 using System; using System.Web;   public class imageHandle : IHttpHandler {          public void ProcessRequest (HttpContext context) {         context.Response.ContentType image/jpeg;           string imgPath ~/images/{0}.jpg;         //根据请求的查询字符串显示对应图片         switch (context.Request.QueryString[id])         {             case 1:                 context.Response.WriteFile(context.Server.MapPath(string.Format(imgPath, 1)));                 break;             case 2:                 context.Response.WriteFile(context.Server.MapPath(string.Format(imgPath, 2)));                 break;             case 3:                 context.Response.WriteFile(context.Server.MapPath(string.Format(imgPath, 3)));                 break;             default:                 //默认显示第一张图片                 context.Response.WriteFile(context.Server.MapPath(string.Format(imgPath, 1)));                 break;         }     }       public bool IsReusable {         get {             return true;         }     }   } 我简单说一下这个类根据请求的查询参数返回对应的图片所以你可以随便准备3张图片做测试。 2、做好.aspx页面。 % Page LanguageC# AutoEventWireuptrue CodeFileDefault.aspx.cs Inherits_Default %   !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd html xmlnshttp://www.w3.org/1999/xhtml head runatserver     title/title /head body     form idform1 runatserver     div         div             img idimg srcimages/1.jpg height300px /         /div         a href# οnclickGetImg(1)1/a          a href# οnclickGetImg(2)2/a          a href# οnclickGetImg(3)3/a     /div     /form /body /html 这个例子是这样的有三个链接分别为1、2、3点击后显示对应的图片。 . 我们在不配置Web.Config的情况下应用了HttpHandle下面我配置一下Web.Config文件。 找到HttpHandlers节并添加一个节点。 add verb* pathloadimg typeimageHandle validatefalse/ 然后把.aspx页面也改一下。 script typetext/javascript     function GetImg(index) {         var myImg document.getElementById(img);         myImg.src ./loadimg?id index;     } /script 这时候神奇地发现无效了。咋回事呢是不是没有把文件放进App_Code的原因 把.ashx文件扔到App_Code目录下结果发现还是不行。 于是我不用.ashx文件直接新建一个.cs文件把刚才.ashx里面的C#代码复制过去并把类名改一下接着运行。 这回成功了是不是就说明在Web.Config中配置的httpHandler对于.ashx中定义的类是无效的
http://www.yutouwan.com/news/289038/

相关文章:

  • 自己做网站平台旅游网站开发 结束语
  • 网站建设工作动态证件查询官网入口
  • 开设一个网站的费用dede修改网站密码
  • 表格我做视频网站网站开发checklist
  • 自动发货网站怎么做网站设计开发
  • 腾讯大浙网 网站开发个人网站如果做
  • 建网站赚钱方法如何用wordpress做企业
  • 常德建设局官方网站济南网站建设方案
  • 简单网站开发工具莱芜雪野湖风景区门票
  • 高端网站建设价格商务网站规划与设计实训报告
  • 哪个网站上网好网站的跳出率
  • 网站建设 音频插件淘宝关键词查询工具哪个好
  • 免费发广告帖子的网站北京赛车网站建设
  • 网站升级维护要多久小程序制作
  • 百度站长推送自助建网站哪个便宜
  • 网上书城网站开发的结论和不足百度seo排名原理
  • 网站拒绝了您的访问网页价格表
  • 网站运营建设的培训班wordpress教程主题
  • asp.net 网站开发项目化教程微信建站网站
  • 爱站网关键词查询网上做任务网站有哪些
  • 做网站如何寻找客源彩票网站为啥链接做两次跳转
  • 网站服务器上的跳转选择怎么做做营养的网站
  • 网站推广怎么样临沂网站建设设计公司
  • 酒类营销网站广州高端网站建设定制
  • 手机网站开发方式广州全网推广
  • 珍爱网建设网站的目的芝罘区网
  • 网站建设研究背景wordpress百度移动落地页
  • joomla 网站建设教程wordpress系统和插件下载
  • 做展厅 参考什么网站汉字域名注册
  • 惠州网站建设培训网站关键词排名快速提升