一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

Asp.net MVC2中使用Ajax的三种方式

      在Asp.net MVC中,我们能非常方便的使用Ajax。这篇文章将介绍三种Ajax使用的方式,分别为原始的Ajax调用、Jquery、Ajax Helper。分别采用这三种方式结合asp.net mvc去实现一个史上最简单的留言板。     首先看一下原始的Ajax的调用的      定义CommentController,代码如下:

    在Asp.net MVC中添加一个custom_ajax.js,加入下面使用ajax的脚本代码,调用AddCommentServer方法。

    在View中引入此脚本,创建一个简单的表单,并添加触发的代码:

    添加下面脚本:

 

   效果:与方式一效果一样

    1、首先了解一下Ajax Helper下面四种方法。         a、Ajax.ActionLink():它将渲染成一个超链接的标签,类似于Html.ActionLink()。当它被点击之后,将获取新的内容并将它插入到HTML页面中。         b、Ajax.BeginForm():它将渲染成一个HTML的Form表单,类似于Html.BeginForm()。当它提交之后,将获取新的内容并将它插入到HTML页面中。         c、Ajax.RouteLink():Ajax.RouteLink()类似于Ajax.ActionLink()。不过它可以根据任意的routing参数生成URL,不必包含调用的action。使用最多的场景是自定义的IController,里面没有action。         d、Ajax.BeginRouteForm():同样Ajax.BeginRouteForm()类似于Ajax.BeginForm()。这个Ajax等同于Html.RouteLink()。     这个例子中使用Ajax.BeginForm(),下面具体了解Ajax.BeginForm()的参数。看下面代码

    actionName:AddComment(action的名字)     controllerName:CommentController(Controller的名字)     ajaxOptions:          HttpMethod:Ajax的请求方式,这里为POST           UpdateTargetId :Ajax请求的结果显示的标签的ID,这里为comments          InsertionMode:将Ajax结果插入页面的方式,这里将ajax的结果放置到comments的后面 2、实现:     在CommentController中添加IndexAjaxHelp方法。

      根据IndexAjaxHelp生成View表单IndexAjaxHelp.aspx,定义表单:

    要在此View中添加下面两个脚本文件:

   这样就行了,我们发现比用Jquery方便很多,但是使用Jquery将灵活很多。      3、效果:和方式一样。 总结:本文非常的简单,在asp.net mvc中实现了3中ajax的调用方式,实现了一个最简单的留言板程序。推荐使用Jquery和Ajax Helper这两种。Ajax Helper使用非常简单,Jquery比较灵活。 更新:三种方式都实现了一个最简单的留言板程序 参考:     ASP.NET MVC 2 In Action     Pro ASP.NET MVC 2 Framework, Second Edition   代码:http://files.cnblogs.com/zhuqil/AjaxDemo.rar   作者:朱祁林出处:http://zhuqil.cnblogs.com本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。  

龙生   14 Jun 2013
View Details

生成缩略图

龙生   06 Jun 2013
View Details

PHP中一些通用和易混淆技术点的最佳编程实践

我们使用的是哪个 PHP 版本? 带有 Suhosin-补丁的PHP 5.3.10-1ubuntu3.6, 安装于 Ubuntu 12.04 LTS. PHP如同是网络世界的百年老龟。它的外壳上刻有一个丰富的,令人费解的,粗糙的历史。在一个共享主机的环境下,它的配置可能会限制你能做什么事情。 为了保留一丝明智,我们需要只专注于一个版本的PHP。截至2013年4月30,该版本是 带有Suhosin补丁的PHP5.3.10-1ubuntu3.6 。如果你使用apt-get从一个Ubuntu12.04 LTS服务器来安装PHP的话,你所得到的版本就是这个。换句话说,许多人在默认情况下已经很明智地使用了它。 您可能会发现本文这些解决方案能工作于不同或更旧版本的PHP。如果是这样的话,就要由你来研究在这些旧版本中的细微错误或安全问题的影响了。 保存密码 使用 phpass 库计算密码的哈希值进行比较。 用 phpass 0.3 进行的测试。 散列化是在把用户密码保存进数据库之前对其进行保护的标准方法。许多常见的散列算法,如MD5,乃至SHA1,用于存储密码都是不安全的,因为黑客可以使用这些散列算法轻松破解密码。 要散列化密码最安全的方法是使用bcrypt算法。开源的phpass 库用一个易于使用的类来提供这个功能。 例子: view source print? 01 <?php 02 // 包含phpass库 03 require_once('phpass-0.3/PasswordHash.php'); 04 05 // 初始化散列器为不可移植(这样更安全) 06 $hasher= newPasswordHash(8, false); 07 08 // 计算密码哈希值。$hashedPassword 将会是一长为60个字符的字符串. 09 $hashedPassword= $hasher->HashPassword('my super cool password'); 10 11 // 你现在可以安全地保存$hashedPassword到数据库中! 12 13 // 通过比较用户输入内容(产生的哈希值)和我们之前计算出的哈希值,来判断用户是否输入了正确的密码 14 $hasher->CheckPassword('the wrong password', $hashedPassword); // 返回假 15 16 $hasher->CheckPassword('my super cool password', $hashedPassword); // 返回真 17 ?> 陷阱 很多来源会建议你在计算密码的哈希值之前先给密码加点“作料”。这是个好主意,phpass已经利用HashPassword() 函数中的一部分代码来为你给密码加了作料。 这就意味着你并不需要自己再亲自做这个了。 进一步阅读 […]

龙生   04 Jun 2013
View Details

ASP

asp已经诞生18年了,是我工作用的第一门语言。 ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是 .asp。现在常用于各种动态网站中。   发展史 从1996年ASP诞生到2012年已经过去了17年。在这短短的17年中,ASP发生了重大的变化,直到现在的ASP。 asp的第一版是0.9测试版,自从1996年ASP1.0诞生,它给Web开发界带来了福音。早期的Web程序开发是十分繁琐的,以至于要制作一个简单的动态页面需要编写大量的C代码才能完成,这对于普通的程序员来说有点难了。而ASP却允许使用VBScript这种的简单脚本语言,编写嵌入在HTML网页中的代码。在进行程序设计的时候可以使用它的内部组件来实现一些高级功能(例如Cookie)。它的最大的贡献在于它的ADO(ActiveX Data Object),这个组件使得程序对数据库的操作十分简单,所以进行动态网页设计也变成一件轻松的事情。因此一夜之间,Web程序设计不再是想像中的艰巨任务,仿佛很多人都可以一显身手。 到了1998年,微软发布了ASP 2.0。它是Windows NT4 Option Pack的一部分,作为IIS(Internet Information Services,互联网信息服务) 4.0的外接式附件。它与ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。 到了2000年,随着Windows 2000的成功发布,这个操作系统的IIS(Internet Information Services,互联网信息服务) 5.0所附带的ASP 3.0也开始流行。与ASP 2.0相比,ASP 3.0的优势在于它使用了COM+,因而其效率会比它前面的版本要好,并且更稳定。 2001年,ASP·NET出现了。在刚开始开发的时候,它的名字是ASP+,但是,为了与微软的·NET计划相匹配,并且要表明这个ASP版本并不是对ASP 3.0的补充,微软将其命名为ASP·NET。ASP·NET在结构上与前面的版本大相径庭,它几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发环境可以实现更加模块化的、功能更强大的应用程序。   网页特点ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。与HTML相比,ASP网页具有以下特点:⑴利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;⑵ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;⑶服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;⑷ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;⑸ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等;⑹由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取;⑺ 方便连接ACCESS与SQL数据库;⑻开发需要有丰富的经验,否则会留出漏洞,让骇客(cracker)利用进行注入攻击。ASP也不仅仅局限于与HTML结合制作WEB网站,而且还可以与XHTML和WML语言结合制作WAP手机网站。但是其原理也是一样的。   工作原理当在Web站点中融入ASP功能后,将发生以下事情:1、用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。2、浏览器向服务器发出请求。3、服务器引擎开始运行ASP程序。4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。5、页面信息发送到浏览器。   生成txtFileName = "idcpcw.txt" '要保存的文本文件名Set fso = CreateObject("Scripting.FileSystemObject") '建立fso对象Set MyFile = fso.CreateTextFile(Server.mapPath(TxtFileName), True) '建立对象MyFile.WriteLine "文本的内容" & uuu '将name的值写入文本文件,uuu为数据库的数据MyFile.WriteLine "文本的内容" & uuu '同上[1] 

龙生   31 May 2013
View Details

MT620 直接线刷2.3.7最终版本80359方法

一、准备工作 WTPTP驱动程序 Tahiti_Multiflash110624.zip 刷机包

龙生   28 May 2013
View Details

“该项目中不存在目标PipelinePreDeployCopyAllFilesToOneFolder“解决方法

今天编译spacebuilder程序,发现编译可以通过,但是在发布时,却出现了如下的错误信息: 错误 110 该项目中不存在目标“PipelinePreDeployCopyAllFilesToOneFolder”。 E:\工作项目\开发程序\aspcool\Spacebuilder_V3.2.0.1_SDK\Spacebuilder\Web\Web.csproj 0 0 Web 经过在网上搜索,发现下面的解决方法: 用记事本打开出错的项目文件(A.csproj). 末尾 <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '10.0'" />  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />  <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />--> 修改为 <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '10.0'" />  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />--> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 经过测试,发布成功,谢谢smodi的方法。 转自:http://club.aspcool.com/News.aspx/T-3

龙生   28 May 2013
View Details

验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate

当runat="server"的表单通过修改action提交数据到其它页面时,也会引发这个问题。 如:   document.forms[0].action = "AttachmentAdd.aspx";document.forms[0].submit();   主要的原因是提交了名为__VIEWSTATE的数据,ASP.NET的验证视图状态的时候失败。 有提交前禁用__VIEWSTATE即可:   $("#__VIEWSTATE").attr("disabled", true);document.forms[0].action = "AttachmentAdd.aspx";document.forms[0].submit();   下面是网络上其它解决这个问题的建议,希望对你有所帮助:   1、去掉 runat="server" 2、添加enableEventValidation="false" enableViewStateMac="false"  或在webconfig中添加<pages enableEventValidation="false" enableViewStateMac="false" /> 3、在webconfig中添加:<machineKey validation="3DES" validationKey="319B474B1D2B7A87C996B280450BB36506A95AEDF9B51211" decryption="3DES" decryptionKey="280450BB36319B474C996B506A95AEDF9B51211B1D2B7A87" /> 参考: MSN 上关于machinekey: http://msdn.microsoft.com/zh-cn/library/w8h3skw9(v=VS.80).aspx http://msdn.microsoft.com/zh-cn/library/dtkwfdky(v=VS.80).aspx 4、不使用跨页面提交,提交到本页后在page.load中redirect. 5、使用 <asp:Button runat="server" PostBackUrl="~/Register/DoRegister.aspx" Text="提交" />   转自:http://www.cnblogs.com/deoing/archive/2012/02/04/2337658.html

龙生   27 May 2013
View Details

2008-06-01 00:52 J2SE J2EE J2ME的区别

  J2SE J2EE J2ME的区别多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用。 Java2平台包括标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本:Standard Edition(标准版) J2SE 包含那些构成Java语言核心的类。比如:数据库连接、接口定义、输入/输出、网络编程Enterprise Edition(企业版) J2EE 包含J2SE 中的类,并且还包含用于开发企业级应用的类。比如:EJB、servlet、JSP、XML、事务控制Micro Edition(微缩版) J2ME 包含J2SE中一部分类,用于消费类电子产品的软件开发。比如:呼机、智能卡、手机、PDA、机顶盒 他们的范围是:J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类 应用场合,API的覆盖范围各不相同。笼统的讲,可以这样理解:J2SE是基础;压缩一点,再增加一些CLDC等方面的特性就是J2ME;扩充一点,再增加一些EJB等企业应用方面的特性就是J2EE。 补充一点J2EE更恰当的说,应该是JAVA2企业开发的技术规范,不仅仅是比标准版多了一些类。jdk,j2ee,j2se,j2me的概念区别1.JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包。J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和 针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本对于初学者,都是从J2SE入手的。 2. j2ee和j2se的区别:j2ee是在j2se的基础上添加了一系列的企业级应用编程接口.j2ee包含有很多的技术!其中有你熟悉的jsp,servlet,jdbc,jme等13中技术!j2ee主要是用来做B/S结构的应用程序!也就是说是基于浏览器和服务器的!j2se给我的感觉只需要一个容器就够了,j2ee支持分布式组件可以同时存在多个容器  1、J2EE到底是什么? J2EE,是sun公司提出的一个标准,符合这个标准的产品叫“实现”;其中你下载的sun公司的j2ee开发包中就有一个这样的“实现”,而jboss,weblogic,websphere都是j2ee标准的一个“实现”。由于jboss,weblogic,websphere自身带有j2ee的api,所以可以不使用sun的j2ee实现。 2、j2ee sdk和j2sdkee的区别 其实你可以把j2ee sdk和j2sdkee当成是一回事,官方叫法为 j2ee sdk。不过如果你仔细推敲,也可以用下面的方法来理解:j2eesdk就是jdk,这个是开发ejg必须要安装的,j2sdkee是j2ee开发环境,这也是要安装的,其实如果你安装了jboss的话,就不用全部安装j2sdkee了,只要把其中的一个名为j2ee的文件复制过去就可以了,也就是说jdk是必须要装的,而j2sdkee则不需要,看你用什么做容器了。  3、装过j2ee sdk还需要装j2se sdk吗? 在sun的网站下载J2ee1.4时,有两种下载包: 一种是j2ee1.4 sdk完整包(all in one),包含j2ee server,j2se, sample, api doc; j2ee 好像包含j2se 几乎所有东西.我看 j2ee里也有一个jdk ,它下面的lib和j2se下面的lib一样大(同版本的).但jre不一样大,因为j2ee比j2se多了好多,如java.servlet.* ,java.servlet.http.* 等. j2ee 是让你用来开发 j2ee specification 的东西.如果是用于web 服务器,不装j2ee也行,只要装一个jre (连j2se都不用装),外加一个servlet引擎(如tomcat)就够了. 看下面这个,一目了然: j2se == jdk == bin + demo + include + jre + lib + src.rar //SUN官方的jdk1.4.2 j2ee == jdk + …. //这里的 jdk 和上面的只有 jre 文件不一样大,原因上文已说. 另一种为单独的j2ee server,安装前需要先安装j2se sdk。 不管哪个,安装完成后,都要设置java_home,j2ee_home,classpath环境变量,再运行j2ee server即可。 为了方便开发者,Sun把Java区分为J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)、J2ME(Java 2 Micro Edition)和Java Card四种平台。J2SE是所有Java技术的基础,不管开发人员要开发什么平台的Java应用程序,都必须先从J2SE学起。J2EE技术着重于企业服务器端的应用。J2ME主要针对嵌入式系统,包括手机、PDA等。针对手机应用程序的开发,Sun还提供了免费的J2ME Wireless Toolkit。Java Card技术用来开发可以植入IC智能卡中的应用程序。   以上四种平台的软件开发包(Software Development Kit,SDK)都是免费的,可以从Sun的网站下载。当然,只用SDK未免太不讲究,我们需要开发工具来提高开发效率。这样的工具叫做集成开发环境(Integrated Development Environment,IDE)。以往,Borland JBuilder和IBM Eclipse这两个IDE最受Java程序员的青睐,而Sun自己的IDE却名不见经传。2004年以后,Sun把自己的IDE摆放到重要的位置,努力推进NetBeans和Java Studio的开发。前者是完全用Java撰写的开放源代码的工具,而后者则是重量级的官方开发工具。Sun的开发工具可谓根正苗红,Java程序员终于可以沐浴Sun(阳光)普照了!   转自:http://hi.baidu.com/mlgzkj/item/adc9c3bf54206ff062388efe

龙生   18 May 2013
View Details

asp.net 在线阅读pdf

FlashPaper是一个虚拟打印机,可将word文件转化成swf格式文件(.doc .xls .txt .pdf等文件都可以正常生成SWF格式)。最近简单学习了在ASP.NET页面中调用FlashPaper将word文件转化成swf格式文件的方法。 (1)安装FlashPape:下载FlashPape压缩包,解压缩后,运行初始化目录中的初始化.bat,然后安装FlashPaperDriverInstall2.exe,即FlashPaper打印机。特别注意,在有的机器上要更改Macromedia FlashPape的端口,应为FlashPape2PrinterPort,如果是LPT1这个端口,当然打印不出来了。 (2)为页面中的按钮编写事件处理代码:

示例代码3:

{ string fppath = System.Configuration.ConfigurationManager.AppSettings["Flashpaper"]; string outpath = filepath.Substring(0, filepath.LastIndexOf('.')) + ".swf"; string param = fppath + " " + filepath + " -o " + outpath; Process p = new Process(); p.StartInfo.FileName = "C:\\WINDOWS\\system32\\cmd.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; //p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; try { p.Start(); string strOutput = null; p.StandardInput.WriteLine(param); p.StandardInput.WriteLine("exit"); strOutput = p.StandardOutput.ReadToEnd(); Console.WriteLine(strOutput); p.WaitForExit(); p.Close(); } catch (Exception ex) { throw ex; } }

龙生   13 May 2013
View Details

volatile

就象大家更熟悉的const一样,volatile是一个类型修饰符(type specifier)。它是被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。

龙生   09 May 2013
View Details
1 150 151 152 175