博文

首个字母大写(2010-10-22 11:22:00)

摘要:有时候我们需要首字母大写,不必每次都编辑文章了,用css实现更方便 .post-body p:first-letter {color:#444;display:inline;float:left;font:3.1em Georgia,arial;text-transform:uppercase;margin:0 0.12em 0 0;}

有两个注意的!
p:first-letter
表示p标记下面第一个字母执行
text-transform:uppercase;
......

阅读全文(2030) | 评论:1

ewebeditor编辑器IE8不弹窗终极解决办法(2010-10-08 16:24:00)

摘要:  ewebeditor编辑器在ie浏览器 ,ie8 ,ie7 ,maxthon下有有错误的解决方法: 找到include文件夹下的editor.js文件 找到: if(element.YUSERONCLICK)eval(element.YUSERONCLICK + “anonymous()”); if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()"); 替换为: try{
        if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “anonymous()”);
    }
    catch(e){
        if (element.YUSERONCLICK) eval(element.YUSERONCLICK + “onclick(event)”);
    }
 try{
        if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "anonymous()");
    }
    catch(e){
        if (element.YUSERONCLICK) eval(element.YUSERONCLICK + "onclick(event)");
    }......

阅读全文(26257) | 评论:5

异常详细信息: System.Web.HttpException: 响应在此上下(2010-07-26 10:37:00)

摘要:异常描述: 异常详细信息: System.Web.HttpException: 响应在此上下文中不可用 ============================================== 导致错误: 在类中直接用了:Response.Write(); ============================================== 解决方案:
只有你的页面是ASP.NET调用的,你的Page类里的Response对象才有意义。 
如果你需要在你自己的类里调用 Response,请用System.Web.HttpContext.Current.Response。 System.Web.HttpContext.Current.Response.Write();......

阅读全文(3770) | 评论:0

用ASP.NET实现文件的保护性下载基础篇(2010-07-13 17:19:00)

摘要:  【IT168 技术】许多时候,我们需要在因特网上提供文件下载服务,但是又要防止未经授权的下载,这时该怎么办?本文将为读者详细介绍一种使用ASP.NET实现的HTTP处理程序的解决方案。   一、文件保护性下载的需求   如果我们需要在站点上出售数字形式的商品,如电子书、数字油画等,那么如何在供授权用户正常下载的同时又阻止非授权用户非法下载您的产品呢? 通过Forms身份验证,只能使这个问题得到部分解决。本文中,我将讲解如何防止某些用户访问站点上的某些文件;即使这些文件能够被这些用户直接浏览。   解决这个问题的方法有多种,但是有些方法本身就有问题。本文中,我们将考察软件供应厂商常用的一些技术,然后再介绍一种新的解决方案。需要注意的是,这里介绍的是针对ASP.net站点的。   二、常见的文件保护技术   我们中很多人都有网上购买软件的经验,所以可能领教过用于文件下载的常见保护措施。下面,我们对它们进行考察。   压缩文件口令保护   这种保护方法比较简单,它不是防止您下载文件,而是防止未经授权的人员从压缩文件中提取文件的内容,因为WinZip和许多其他压缩程序都提供了口令保护功能。然而,这种方法的缺点也很明显,如果您允许某人访问该文件内容,那就必须给他提供口令,之后,您却无法阻止这个人将口令传给其他人。实际上,如果您搜索互联网的话,会发现各种各样的口令遍地都是。采用这种保护措施的时候,只能指望授权用户是有道德的人,不会将口令外传。或者,将这种保护措施提供一个层次,为每个人生成一个不同口令的压缩文件,然后传给他。 当然,这需要一个文件存储解决方案,因为需要能控制发送给用户的文件。这导致第二种文件保护方法。   电子邮件   许多软件供应厂商并不会把文件张贴到它们的网站上,而是向购买该软件的用户发送一封电子邮件,告知下载详细信息,或者直接连同文件一块发过去。 电子邮件可以包含文件下载链接,并限定该链接的有效时间。有时候,软件供应商还可以将这种这种技术跟口令保护相结合。文件一旦交到用户手里,剩下的保护措施就靠软件许可和注册了。其他基于电子邮件的解决方案还有动态生成文件名方法。   临时文件名   一些软件供应厂商会使用GUID或者其它的秘密的命名技术生成一个难以猜测的文件名,同时还可以令文件只能在规定时间内下载。   三、技术分析   虽然这......

阅读全文(1852) | 评论:1

CGI与ISAPI的区别(2009-07-29 08:01:00)

摘要:

一 CGI原理及其性能

1) CGI概念
CGI即通用网关接口(Common Gateway Interface),它是一段程序,运行在服务器上,提供同客户端HTML页面的交互,通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML接收的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页。

2)CGI程序语言
事实上,任何一种程序语言,只要能在服务器主机上利用CGI接口来编写应用程序,都可以叫作CGI程序语言。目前最为流行的CGI程序语言有四种:C,Shell,Perl和VisualBasic,其它一些语言也有许多人在用,如TCL,Fortran及AppleScript等。

3)CGI程序的执行
CGI 程序一般是个可执行程序。编译好的CGI程序一般要集中放在一个目录下。具体存放的位置随操作系统的不同而不同。CGI程序的执行一般有两种调用方式:第一种是通过URL直接调用,如:“http://202.114.2.182/cgi-win /cgi.exe”,在浏览器的URL栏里直接写入上述描述就可以调用该程序;另一种方式,也是主要的方式,是通过交互式主页里的FORM栏调用,通常都是用户在填完一张输入信息Form后按确认按钮启动CGI程序。

4)CGI工作的主要流程
CGI工作的主要流程是:1.一个用户请求激活一个CGI应用程序;2.CGI应用程序将交互主页里用户输入信息提取出来;3.将用户输入的信息传给服务器主机应用程序(如数据库查询〕;4.将服务器处理结果通过HTML文件返回给用户;5.CGI进程结束。

5)CGI的性能评价
CGI 的跨平台性能极佳,几乎可以在任何操作系统上实现,如DOS、WINDOWS、UNIX、OS/2、Macintosh等。实现CGI的编程语言也有很多选择。CGI的应用程序一般都是一个独立的可执行程序,和WWW服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求。这样,每有一个用户请求,都会激活一个CGI进程,当用户请求数量非常多时,会大量挤占系统的资源如内存,CPU时间等,造成效能低下。


二 ISAPI原理及其性能

1)I......

阅读全文(1588) | 评论:0

Hashtable 哈希表(2009-04-06 09:56:00)

摘要: Hashtable
一,哈希表(Hashtable)简述

   在.NET work中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似key/的键值对,其中key通常可用来快速查找,同时key是区分大小写;用于存储对应于key的值。Hashtable中key/键值对均为object类型,所以Hashtable可以支持任何类型的key/键值对.

二,哈希表的简单操作

在哈希表中添加一个key/键值对:HashtableObject.Add(key,);
在哈希表中去除某个key/键值对:HashtableObject.Remove(key);
从哈希表中移除所有元素:            HashtableObject.Clear();
判断哈希表是否包含特定键key:       HashtableObject.Contains(key);
下面控制台程序将包含以上所有操作:
using System;
using System.Collections; //使用Hashtable时,必须引入这个命名空间
class hashtable
{
   public static void Main()
   {
   Hashtable ht=new Hashtable(); //创建一个Hashtable实例
   ht.Add("E","e");//添加key/键值对
   ht.Add("A","a");
   ht.Add("C","c");
   ht.Add("B","b");

   string s=(string)ht["A"];
   if(ht.Contains("E")......

阅读全文(1162) | 评论:0

什么是反射(2009-03-22 01:24:00)

摘要:  提纲:
1、 什么是反射
2、 命名空间与装配件的关系
3、 运行期得到类型信息有什么用
4、 如何使用反射获取类型
5、 如何根据类型来动态创建对象
6、 如何获取方法以及动态调用方法
7、 动态创建委托

1、什么是反射
        Reflection,中文翻译为反射。
        这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型 (class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:
        Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并创建该类型的实例。
Type类可以获得对象的类型信息,此信息包含对象的所有要素:方法、构造器、属性等等,通过Type类可以得到这些要素的信息,并且调用之。
MethodInfo包含方法的信息,通过这个类可以得到方法的名称、参数、返回值等,并且可以调用之。
诸如此类,还有FieldInfo、EventInfo等等,这些类都包含在System.Reflection命名空间下。

2、命名空间与装配件的关系
        很多人对这个概念可能还是很不清晰,对于合格的.Net程序员,有必要对这点进行澄清。
        命名空间类似与Java的包,但又不完全等同,因为Java的包必须按照目录结构来放置,命名空间则不需要。
        装配件是.Net应用程序执行的最小单位,编译出来的.dll、.exe都是装配件。
   ......

阅读全文(2203) | 评论:0

程序员从小培养思维方式(2009-02-24 15:21:00)

摘要:某日,老师在课堂上想考考学生们的智商,就问一个男孩: “树上有十只鸟,开枪打死一只,还剩几只?”
男孩反问:“是无声手枪,还是其他没有声音的枪么?”
“不是.”
“枪声有多大?”
“80~100分贝.”
“那就是说会震的耳朵疼?”
“是.”
“在这个城市里打鸟犯不犯法?”
‘不犯.”
“您确定那只鸟真的被打死啦?”
“确定.”老师已经不耐烦了,”拜托,你告诉我还剩几只就行了,OK?”
“OK.鸟里有没有聋子?”
“没有.”
“有没有鸟智力有问题,呆傻到听到枪响不知道飞的?”
“没有,智商都在200以上!”
“有没有关在笼子里的?”
“没有.”
“边上还有没有其他的树,树上还有没有其他鸟?”
“没有.” “方圆十里呢?” “就这么一棵树!”
“有没有残疾或饿的飞不动的鸟?”
“没有,都身体倍棒.”
“算不算怀孕肚子里的小鸟?”
“都是公的.”
“都不可能怀孕?”
“………,决不可能.”
“打鸟的人眼里有没有花?保证是十只?”
“没有花,就十只.” 老师脑门上的汗已经流下来了,
下课铃响起,但男孩仍继续问:“有没有傻的不怕死的?”
“都怕死.”
“有没有因为情侣被打中,自己留下来的?”
“笨蛋,之前不是说都是公的嘛!”
“同志可不可以啊!”
“………….,性取向都很正常!”
“会不会一枪打死两只?”
“不会.”
“一枪打死三只呢?”
“不会.”
“四只呢?”
“更不会!”
“五只呢?”
“绝对不会!!!”
“那六只总有可能吧?”
“除非你他妈的是猪生的才有可能!一枪只能打死一只!”
“…好吧,那么所有的鸟都可以自由活动么?”
“完全可以.”
“它们受到惊吓起飞时会不会惊慌失措而互相撞上?”
“不会,每只鸟都装有卫星导航系统,而且可以自动飞行.”
“恩,如果您的回答没有骗人,”学生满怀信心的回答,“打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩.”
老师推推眼镜,强忍着要昏倒的感觉,颤抖地说道:“你可以去当程序员了……”......

阅读全文(2600) | 评论:5

如何培养面向对象(OO)的思维方式 (1)(2009-02-24 14:21:00)

摘要:  2008-05-24 05:08:36.0     浏览:73     来源:赛迪博客 关键词: 我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。

我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思路上去。

举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。

然后考虑用Java来实现,既然是OOP,就不能什么代码都塞到main过程里面,于是就设计了三个类:


一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送;
一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;
一个主类负责从命令读参数,处理命令行参数,调用发email的类。

把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。

仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。

这样的分析方法其实是不适用于Java这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比Java实现起来轻松的多,逻辑上也清楚的多。

我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,......

阅读全文(2198) | 评论:0

关于初学者要怎么样学习WEB编程(2009-02-11 22:32:00)

摘要:
 
    最近很多人在WEB编程开发这个版块发表帖子,例如"我是初学者,我应该从哪里开始学 习","我的某方面不好,对WEB编程有没有影响","学习WEB编程的话要从什么地方写起,ASP ASP.NET PHP JAVA 先学哪个,后学哪个."等等,类似这种求救贴挺多的,为了让大家大致了解 一下WEB编程到底是什么,我们应该如何学习WEB编程.于是我就转载这篇文章顶置一下,希望大 家看后有个了解.
     呵呵,WEB编程吗?其实大家不要把它想得太高深的东西,认为它是遥不可及的,不可逾越的 .其实未然,其实
WEB编程语言挺简单的,千万不要把它神话了.我认为想要提高WEB编程水平,就是多敲打代码, 多看书,多看写别人的例子,多写一些项目,像"留言本啊,会员系统啊"等小例子,这样你的水平 才能提高,曾经有个大三学长告诉我,他写个项目,就把这一学期的知识都掌握起来,这是当然的 ,因为项目要涉及到各个方面的知识,不懂要自己查书,这样一来不就把知识都掌握起来了
1.我该学什么语言?
ASP、ASP.NET、PHP、JAVA……面对各种各样的WEB编程语言,你是不是被弄昏了头脑呢?该学 什么?“学JAVA吧!”许多高手说。并且还举了很有说服力的例子:“学ASP只要两个月,学 JAVA要一年,如果先学ASP再学JAVA,所用时间仍然是一年,但学了JAVA再学ASP,所用时间将 不到两个月。”这句话没错,的确是这样的。但是刚入门的初学者都能学JAVA?把每个人都看 得这么高?一些初学者把JAVA当成自己的入门语言,结果能学到最后的只有少部分人!我们不 能奢望所有初学者都是在十分熟悉网站制作的情况下才开始接触WEB编程的,实际上,很多人 就是在学习WEB编程的过程中逐渐深入了解网站制作的,要是所有人都选择JAVA作为“入门级 语言”…… 初学者应该根据自身情况来选择语言,如果你刚开始接触网站制作,应该去学ASP 、PHP,因为ASP、PHP很好学,基础最重要;当然,还有ASP.NET,它是微软力推的产品。除非 你已经做了很多年的网站对此有些了解,否则别急着学JAVA,你会因此神经衰弱的。
2.切忌同时学......

阅读全文(2564) | 评论:0