当前位置:灰灰分享 > 慢生活 > 如何写出优秀的微课脚本

如何写出优秀的微课脚本

  • 发布:2024-08-04 16:25:57
  • 27次

2015年以来,“微课”成为了信息化教学的标志性元素。

如何写出优秀的微课脚本

和传统课堂的区别是:微课承担了课前翻转的重要角色,如果我们的微课不够吸引学生,学生大可以从屏幕前离身而去。

创作优秀的微课作品成为了信息化时代教师的必备技能。

不管见识了多少微课,一旦我们动手制作,很多老师仍会处于摸不着方向的状态,不知从哪里开始。

本次分享的内容,就是从微课的开始说起,这个开始就是

微课脚本

脚本,通常指表演戏剧、拍摄**等所依据的底本或书稿的底本。微课作为一种呈现形式,同样需要一个底本/文稿。

一个微课作品的诞生需要两个过程:一是前期的脚本设计,二是后期的录制合成。

和教学设计相类似,我们在决定制作微课后的第一件事,不是去想画面如何呈现,而应该对所讲授内容进行设计,以帮助我们理清内容的逻辑关系,把问题讲得清楚且生动有趣。

有的老师会说:“画面特别重要啊!我觉得只要用了3D、MG的微课就很容易吸引观众,我就苦于做不出那些酷炫的动画效果。”

脚本设计和酷炫画面谁更重要呢? 举个例子

上图是2016年两部**的对比:耗资7.5亿、汇集李连杰、范冰冰、梁家辉等大腕的**《封神》最后以2.9分无人问津的结局惨淡收场;而**《摔跤吧!爸爸》,我们很难见到特效与酷炫的画面,却赢得极高的口碑。

著名的翻转课堂开创者萨尔曼可汗,同样也是以极富逻辑的思路而非丰富的画面收获了大量的学习者。下图是他的教学画面

从**角度来说,剧本是**的核心,从微课角度来说,脚本设计比酷炫画面更重要:一个优秀的微课作品,一定是依靠优秀的脚本作支撑!教师制作微课时,应该把重心和精力放在脚本设计中。

脚本的设计,只需要以下四步:

Step1 选择合适的课题

并不是所有的知识点都适合做微课。能够被选作微课的课题应该满足下面三个条件:小、巧、精

小: 小是指知识主题小, 一个微课只讲一个特定的知识点或一个问题,3~9分钟就能将其讲清楚,如果牵扯到其他知识点,则另设微课。

巧: 巧是指所选题材是教学中的重难点。微课是是为了解决学生学习中存在的问题,所以在选题上要尽量挑选平时学生学习中容易混淆、出错的内容进行制作,使之成为解决重难点的有力武器。

精: 微课的课题应当是精选的,其内容必须且只能用呈现。如果使用黑板教学或进行活动实践的教学效果更佳,则不符合微课的选题。如制作面包怎样发酵的微课,教师口述或都不能直观表达,将其制作成动态演示就成为了必需。

Step2 确定脚本的类型

这一步是要根据我们的具体内容来确定脚本类型。脚本包括四种类型:知识原理类、技能操作类、问题解决类、案例故事类。

我们用一道连线题来理解这四种类型:请从下列微课题目辨识它们分别属于哪种类型

请思考10秒钟

答案如下

确定脚本类型的目的是为下一步作准备,因为每种类型将会有不同的设计思路。接下来,就是最重要的第三步

Step3 理清内容的逻辑

有时我们会出现看完一个微课,仍然云里雾里的现象,比如下面这个设计

上图中,你能看出来就餐礼仪是先入座还是先订餐吗?只有就餐词语,那订餐词语就不交待了吗?

上述问题之所以让人搞不清楚,问题就出在逻辑上,不符合人的认识规律,会让学生“越听越懵”——老师你到底在讲什么?

逻辑思维可以帮助我们把微课讲清楚。不同的微课类型,有不同的方法来“讲清楚” 。

■知识原理类 :用“是什么”“为什么”“怎么做”的方式进行讲解,即2W1H法,如“管理创新”

■技能操作类: 可以用一个操作错误作为引爆点,分析其错误的关键点,继而讲解正确的操作方法,最后进行总结。

■问题解决类: 既然是问题,我们可以先提出问题,继而分析问题、讲解技能,最后得出问题的解决方案。如要《Reservation(前台接待)》一课中,教师首先展示了学生在用英语进行前台接待中遇到的尴尬问题,通过讲解最后呈现优化后的效果。 ( 点击文末阅读原文可查看此微课 )

■案例故事类: 用 故事来讲解知识点往往可以收到很好的效果,这是因为比起直接的讲解,观众更喜欢听故事。

集齐故事的元素(时间、地点、人物、情节),创建故事的层次(开端、发展、高潮、结尾),故事可以开讲了。

如在设计“认识咖啡的三大类”时,将每种类别的咖啡豆拟人化,取名为《豆豆秀》,将这三颗豆豆放置于“豆豆PK赛”的情节中,每种豆豆作自我介绍,这样的微课设计形象而生动,极易获取学生的专注。 (文末阅读原文可查看此微课)

做到了讲清楚,基本上已经完成了脚本设计,但是如果我们还希望作品出彩,不妨再继续最后的一步。

Step4使用诙谐的语言

使用接地气的语言与学生对话,多使用“我们”而非“你”,可以加入当下流行词,让微课与学生“打成一片”。

如在微课《羊毛毡服饰展示与制作》中,教师穿插了当时的流行语“都教授”、“亲,淘宝爆款哦~”等诙谐的语言,充满了趣味性。

Step1选择合适的课题

Step2 确定脚本的类型

Step3理清内容的逻辑

Step4 使用诙谐的语言

以上,就是如何写出优秀微课脚本的全部内容。

呃...... 好看的皮囊千篇一律,有趣的灵魂万里挑一。

So,对于脚本而言,长什么样是次要的,重要的还是做好脚本设计的四个步骤。

如果前后期都由教师自己完成,就文案而言,只需要一个配音稿,标注清楚框架与层次即可。

如果教师只做前期脚本,需要他人协助完成后期画面,为方便与后期的沟通,就需要诸如画面呈现、时间节点、情感表现等内容预设,可在文末 阅读原文 中查看规范的脚本模板。 (模板仅供参考)

-END-

“点击”‘阅读原文’查看本文提及的微课脚本及作品

案例二十四:童言童语

写文案脚本的意思是写下你想提前拍摄的的内容,比如台词,这样可以避免拍摄时忘记文字和遗漏的尴尬。脚本是将文案翻译成的形式来表达,比如哪个部分是关键,哪个部分要拍摄,镜头要分割等等。使用大型脚本框架,可以更快地提高效率。

短运营实时更新

链接:s://pan.baidu/s/1mv4lP_Sn4ofvk3aBVrxIUw

?pwd=2D72

提取码:2D72?

包含:快手赚钱全攻略 、火神社7成佣金暴利带车 抖推猫开创星座号小程序新玩法 云递联盟雷神9月9日安卓硬改伪新机教程 臻曦无人直播 敢死队8.7苹果手机抖音自动养号教程!无需任何插件和物理!轻松助你解决不适宜! 火神社号新机制与不刷赞撸养生茶玩法,轻松日赚1000+教程 媒老板·8堂0基础直播带货课 9.12J总不适宜公开和全平台实时转播技术 秋叶号训练营 9.9日398火神社号新机制与不刷赞撸养生茶 抓住2020年最大风口,小白也能做一个赚钱的号!(赠送爆款拆解) 云递联盟雷神9月8日实时转播技术 云递联盟雷神9月4日直播间破不适宜 鸭子工作室不适宜公开 无人直播时间同步技术 陈江熊直播课程 等

Bash 脚本进阶,经典用法及其案例

童言童语的案例如下:

诺诺:一个妈妈不够,要去超市再买一个回来。买一个会讲故事的妈妈,一个会做游戏的妈妈,一个会唱歌跳舞的妈妈。

虓虓:奶奶,你再生个爸爸嘛!一个上班,一个陪我玩,要不就再生个妈妈!

点点:妈妈,我什么都不想吃,就想和你在一起!”

点评:无论是“买一个妈妈”还是“再生一个妈妈”,都是孩子因父母陪伴不足而造成情感缺失的内心呐喊。父母的陪伴和呵护,是孩子心理安全感的重要来源。凡是童年获得充足而又高质量陪伴的孩子日后都会情绪积极稳定、乐于交往、敢于探究。爱他,就多陪陪他吧!

今天我们就来用发展心理学聊聊“童言无忌”后面的儿童思维特点。

01

小朋友眼中:万物都是活的

在小孩子的眼中,万物都有生命。为什么?因为这样世界对他们来说就更容易理解。

理解这个世界需要感官,还需要抽象思维。感官能帮助我们理解具象的东西,就是那些能用眼睛看到、用手摸到、用耳朵听到、用嘴尝到、用鼻子闻到的东西,比如苹果、照片、泉水声、蛋糕香味。

但对于抽象的东西,就是那些摸不着看不到的东西,比如良心、诚实、逻辑,就要靠抽象思维了。

抽象逻辑思维是一种高级的思维能力。认知心理学家有一个观点,孩子要在11、12岁以后才能说具备了初步的抽象逻辑思维能力。

那对于学龄前阶段的孩子来说,能用来理解世界的手段就更加有限了。他们能够依靠的基本就是自己的感官,也就是说他们只能理解感官能体验到的东西。

而对于无法在现实中摸得着、看得见的东西他们就无法理解了,因为这需要抽象理解能力。

比如,刚死去的人跟睡着的人看起来很像,但孩子能理解“他睡着了”,但无法理解“他死了”。睡着了是具体的、可以体验的,而死亡是抽象的、无法体验的,所以孩子无法理解死亡这样的抽象概念。

在这种情况下,把其他东西看成是跟自己一样有生命的,就让世界变得更容易理解了。在萌娃眼里,自己有什么感觉,其他东西也就会有什么感觉,于是这个世界就很好预测和把握了。

所以,如果一个小萌娃问你:“桌子有没有腿?”,你可能会想“你不是看见桌子有腿吗?”而萌娃想的则是:“那它为什么不走路呢?”

02

小朋友最擅长“以己度人”

作为成年人,我们都能自觉或不自觉地想象自己站在别人的角度会看到什么、会得出什么结论。

这种心理活动对大人或大孩子来说是频繁而自然进行的,频繁而自然到连我们自己都经常意识不到。所以我们会想当然地认为其他人都这样做。但其实这个能力很高级,并非人天生就有。

孩子小时候这个能力是很差的,他们往往只能站在自我的角度看世界,而很难站在别人的角度思考,就像上面那个让老师来讲自己梦里情景的小孩子。

可以说,小孩子是以自我为中心的,但这不是成人世界里的自私,而是一种认知能力不够成熟导致的理解世界的方式。

成人和小孩子之间的这种能力差异经常会产生喜剧效果。

有一位爸爸就因为不了解孩子这种思维方式而吃了哑巴亏。他本来想逗孩子,一边用手拍打自己的脸,一边对孩子说“打自己”,想让孩子模仿自己。可结果,孩子反手就给了爸爸一巴掌,然后哈哈大笑。

这位爸爸不知道,孩子要能站在爸爸的角度思考“你像我这样打自己”,才能像他期望的那样做,但孩子只会站在自己的角度想“爸爸让我像他这样打他”。

03

小朋友不知道想法是隐秘的

孩子的坦诚总会出乎大人的意料。孩子为什么不会把得罪人的大实话藏在肚子里呢?

三四岁以前的孩子不知道自己的想法是隐秘的,以为每个人了解的信息都是一样的。他们还不知道人和人的想法互不相同,即使对同一个东西,不同的人也会有不同的想法。

他们以为自己心里的想法即使自己不说,其他人也知道,因此他们从不撒谎。即使到了三四岁以后学会撒谎,孩子猜测他人内心意图和目的的能力也还需要不断提高。

在这个过程中孩子就会说出很多让大人意想不到的话,就像开头那个三岁女孩以为爸爸跟她讲小时候挨饿的事是为了解释为什么来家里吃饭。

04

小朋友没有成见

类似的还有:一位爸爸带孩子玩。爸爸把一把小铲子插到土里,对孩子说:“我插进去,你把它拔出来。”孩子拔了下没拔动。爸爸就说:“你摇一摇,摇松了就好拔了。”孩子听了看看爸爸,然后站起身来开始摇晃自己的身子。

我们能够准确应对生活中的各种日常事务要归功于大脑的一种能力,就是生成很多“内隐知识”。

所谓内隐知识,就是那些你以为理所当然知道的知识。比如,当我们听到那位爸爸说“你先摇一下”的时候,我们想都不用想就知道他说的是摇一下当下正在谈论的铲子,而不是摇一下我们自己。

实际上,在成长过程中,我们已经生成了很多脚本来支撑日常生活,比如见陌生人见朋友见师长该怎么做,到超市怎么买东西,进餐馆吃饭先做什么后做什么等等。

这些脚本都是我们的内隐知识,它帮助我们“自动”地做出正确的选择,但我们自己意识不到我们已经做出了选择。

但小孩子还没有形成这些脚本,所以他们要依靠非常有限的生活经验来做选择,自然就会闹出很多笑话。

除了上面那些特点,孩子对世界的理解跟大人还有很多不同,表现出来都能承包大人的笑点,比如:

妈妈问孩子:“大的好,还是小的好?”孩子说:“大的好。”妈妈又问:“那你长大是当大坏蛋还是小坏蛋?”孩子说:“当大坏蛋。”

小孩子的思维是非黑即白的二元思维,在他们的眼里,事情只能分为两个极端。所以,小小的他们像是教条主义者,常常要维护一种极端的规则,而不懂在现实中的通融和变化。

童言无忌给我们带来欢乐,也提醒我们:孩子不是小大人。我们不能以大人的观点和想法来评价孩子,更不能揠苗助长,不妨让我们一边欣赏这些童真童趣,一边静待花开吧。

Bat脚本处理ftp超强案例分析

前言:在linux中,Bash脚本是很基础的知识,大家可能一听脚本感觉很高大上,像我当初刚开始学一样,感觉会写脚本的都是大神。虽然复杂的脚本是很烧脑,但是,当我们熟练的掌握了其中的用法与技巧,再多加练习,总有一天也会成为得心应手的脚本大神。脚本在生产中的作用,想必我我不说,大家也都知道,脚本写的6,可以省下很多复杂的操作,减轻自己的工作压力。好了,废话不多说,接下来,就是Bash脚本的用法展示。

(1)用法格式

if 判断条件 1 ; then

条件为真的分支代码

elif 判断条件 2 ; then

条件为真的分支代码

elif 判断条件 3 ; then

条件为真的分支代码

else

以上条件都为的分支代码

fi

逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if。

(2)经典案例:

① 判断年纪

分析:请输入年纪,先判断输入的是否含有除数字以外的字符,有,就报错;没有,继续判断是否小于150,是否大于18。

② 判断分数

分析:请输入成绩,先判断输入的是否含有除数字以外的字符,有,就报错;没有,继续判断是否大于100,是否大于85,是否大于60。

(1)用法格式

case $name in;

PART1)

cmd

;;

PART2)

cmd

;;

*)

cmd

;;

esac

注意:case 支持glob 风格的通配符:

*: 任意长度任意字符

: 任意单个字符

[] :指定范围内的任意单个字符

a|b: a 或b

(2)案例:

判断yes or no

分析:请输入yes or no,回答Y/y、yes各种大小写组合为yes;回答N/n、No各种大小写组合为no。

(1)用法格式

① for name in 列表 ;do

循环体

done

for (( exp1; exp2; exp3 )) ;do

cmd

done

exp1只执行一次,相当于在for里嵌了while

③ 执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束

列表的表示方法,可以glob 通配符,如{1..10} 、*.sh ;也可以变量引用,如: `seq 1 $name`

(2)案例

① 求出(1+2+...+n)的总和

分析:sum初始值为0,请输入一个数,先判断输入的是否含有除数字以外的字符,有,就报错;没有判断是否为0,不为0进入for循环,i的范围为1~输入的数,每次的循环为sum=sum+i,循环结束,最后输出sum的值。

② 求出(1+2+...+100)的总和

分析:i=1,num=0;当i<=100,进入循环,若i 2取余=1,则sum=sum+i,i=i+1。

(1)用法格式

while 循环控制条件 ;do

循环

done

循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true” ,则执行一次循环;直到条件测试状态为“false” 终止循环

(2)特殊用法(遍历文件的每一行):while read line; do控制变量初始化  循环体done < /PATH/FROM/SOMEFILE或 cat /PATH/FROM/SOMEFILE | while read line; do  循环体done依次读取/PATH/FROM/SOMEFILE文件中的每一行,且将行赋值给变量line

(3)案例:

① 100以内所有正奇数之和

分析:sum初始值为0,i的初始值为1;请输入一个数,先判断输入的是否含有除数字以外的字符,有,就报错;没有当i<100时,进入循环,判断 i 2取余 是否不为0,不为0时为奇数,sum=sum+i,i+1,为0,i+1;循环结束,最后输出sum的值。

(1)用法

unitl 循环条件 ;do

循环

done

进入条件:循环条件为true ;退出条件:循环条件为false;刚好 和while相反 ,所以不常用,用while就行。

(2)案例

监控xiaoming用户,登录就杀死

分析:每隔0.5秒扫描,直到发现xiaoming用户登录,杀死这个进程,退出脚本,用于监控用户登录。

(1)用法

select variable in list

do

 循环体命令

done

① select 循环主要用于创建菜单,按数字顺序排列的示菜单项将显示在标准错误上,并显示PS3 提示符,等待用户输入

② 用户输入菜单列表中的某个数字,执行相应的命令

③ 用户输入被保存在内置变量 REPLY 中

④ select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 按 命令终止脚本。也可以按 ctrl+c退出循环

⑤ select 和 经常和 case 联合使用

⑥ 与for循环类似,可以省略 in list, 此时使用位置参量

(2)案例:

生成菜单,并显示选中的价钱

分析:PS3是select的提示符,自动生成菜单,选择5break退出循环。

(1)语法

continue [N]:提前结束 第N层的本轮 循环,而直接进入下一轮判断;最内层为第1层

break [N]:提前结束 第N层 循环,最内侧为第1层

例:while CONDTITON1; do  CMD1if CONDITION2; then  continue / breakfi  CMD2done (2)案例:

① 求(1+3+...+49+53+...+100)的和

分析:做1+2+...+100的循环,当i=51时,跳过这次循环,但是继续整个循环,结果为:sum=2449

② 求(1+3+...+49)的和

分析:做1+2+...+100的循环,当i=51时,跳出整个循环,结果为:sum=625

(1)作用

用于将参数列表list左移指定次数,最左端的那个参数就从列表中删除,其后边的参数继续进入循环

(2)案例:

① 创建指定的多个用户

分析:如果没有输入参数(参数的总数为0),提示错误并退出;反之,进入循环;若第一个参数不为空字符,则创建以第一个参数为名的用户,并移除第一个参数,将紧跟的参数左移作为第一个参数,直到没有第一个参数,退出。

② 打印直角三角形的字符

true 永远返回成功结果

: null command ,什么也不干,返回成功结果

false 永远返回错误结果

创建无限循环

while true ;do

 循环体

done

(1)用法

for name in 列表 ;do

{

循环体

}&

done

wait

(2)实例:

搜寻自己指定ip(子网掩码为24的)的网段中,UP的ip地址

分析:请输入一个IP地址例192.168.37.234,如果格式不是0.0.0.0 则报错退出;正确则进入循环,IP变量的值为192.168.37. i的范围为1-254,并行ping 192.168.37.1-154,ping通就输出此IP为UP。直到循环结束。

trap ' 触发指令' 信号,自定义进程收到系统发出的指定信号后,将执行触发指令,而不会执行原操作

trap '' 信号,忽略信号的操作

trap '-' 信号,恢复原信号的操作

trap -p ,列出自定义信号操作

信号可以3种表达方法:信号的数字2、全名SIGINT、缩写INT

1) SIGHUP: 无须关闭进程而让其重读配置文件

2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

3) SIGQUIT: 相当于ctrl+

9) SIGKILL: 强制杀死正在运行的进程

15) SIGTERM :终止正在运行的进程(默认为15)

18) SIGCONT :继续运行

19) SIGSTOP :后台休眠

9 信号,强制杀死,捕获不住

① 打印0-9,ctrl+c不能终止

分析:i=0,当i<10,每休眠1秒,i+1,捕获2信号,并执行echo press ctrl+c

② 打印0-3,ctrl+c不能终止,3之后恢复,能终止

分析:i=0,当i3时,解除捕获2信号。

1、生成随机字符 cat /dev/urandom

 生成8个随机大小写字母或数字 cat /dev/urandom |tr -dc [:alnum:] |head -c 8

2、生成随机数 echo $RANDOM

 确定范围 echo $[RANDOM%7] 随机7个数(0-6)

  echo $[$[RANDOM%7]+31] 随机7个数(31-37)

3、echo打印颜色字

echo -e "33[31malong33[0m" 显示红色along

echo -e "33[1;31malong33[0m" 高亮显示红色along

echo -e "33[41malong33[0m" 显示背景色为红色的along

echo -e "33[31;5malong33[0m" 显示闪烁的红色along

color=$[$[RANDOM%7]+31]

echo -ne "33[1;${color};5m*33[0m" 显示闪烁的随机色along

一个关于JSP脚本程序的案例

前言 公司有几百台windows服务器 每次程序更新 如果是一台台拷数据 只怕安排十个人 一天都不一定做得完 所以就必须研究个全自动更新方案来 于是就想到了FTP 做个主FTP站 在几百台客户机上启动BAT脚本 每 秒检测一次 如果主站有更新程序 就自动下载更新 几分钟内 上 台windows服务器 都可以全自动更新程序完毕 相当实用 现把当初研究BAT的脚本思路贴出来 希望对大批量运维人员一个方向 当然 批量更新服务器 每个公司有它自己的解决办法 这个BAT的方式不是最优的 可以用shell 可以用perl 也可以用python等脚本解决 一 FTP命令说明 在windows系统中因为FTP是一个程序 如果在bat脚本中直接调用FTP的命令 在执行时总会弹出命令行窗口 循环在>FTP光标这 所以要换种方式 利用 S:filename 更多的命令请输入 h查看 FTP登录成功后 需要下载远程单个文件时 使用get命令 如果下载多个文件时 用mget 它支持通配符 在使用mget时 需要对每一个文件都进行选择Y/N 如果想不交互的下载全部的文件 可以输入一次prompt命令关闭交互方式 Mput和mget命令要注意两个问题 Ⅰ 不能对目标文件指定命字 在命令行上所有的文件都视做源文件 Ⅱ mput mget两个命令不能对目录进行上传与下载 只能对文件 Ⅲ Prompt 每次执行一个这个命令 就在on off之间循环 ftp脚本开始时 prompt默认为on 所以一般在上传 下载文件时 执行一次prompt 把交互式的on关掉 变为off 文件的传输方式 Binary 二进制传输 Ascii ascII传输 在FTP文件传输过程中 ASCII传输HTML和文本编写的文件 而二进制码传输可以传送文本和非文本(执行文件 压缩文件 等) 具有通用性 二进制码传输速度比ASCII传输要快 所以在建立bat脚本时 一般输入bin命令 启用二进制传输 如果用ASCII模式传输非文本文件 可能会显示一堆乱码 如果是上传一些CGI脚本 有可能将无法运行这类脚本 而在浏览器上看到server error的错误 Ascii和binary模式的区别是回车换行的处理 binary模式不对数据进行任何处理 asci模式将回车换行转换为本机的回车字符 比如Unix下是\n Windows下是\r\n Mac下是\r unix系统下行结束符是一个字节 即十六进制的 A 而ms的系统是两个字节 即十六进制的 D A 所以当你用ascii方式从unix的ftp server下载文件时(不管是二进制或者文本文件 redhat的 vsftp默认是binary ascii默认关闭) 每检测到一个字节是 A 就会自动插入一个 D 所以如果你的文件是二进制文件比如可执行文件 压缩包什么的 就肯定不能用了 如果你的文件就是unix下的文本文件 你用 ascii模式是正确的 要是误用了binary模式 你在windows上看这个文件是没有换行的 里面是一个个的黑方块 在用FTP客户端传输文件时 因为这些软件都做得比较智能化 它可以根据后缀 自动启用传输模式 所以不用担心出问题 二 实例求证 环境说明 上有一FTP服务器端(windows版) FTP用户名为lgh 密码为 该用户的根目录为D \lgh 里面文件见下图 sql rar是sql bat的压缩文件 大家注意看图 我等下会在后面的实例中引用这个文件 把mget get prompt bin ascii等ftp命令诠释得一清二白

 

实例一 直接BAT调用FTP命令 ftpbat bat内容 (***大家建立bat文件不要命名为ftp bat 执行时会有问题***)

 复制代码 代码如下:

 ftp open lgh get sql rar bye

 

从图上的结果看 bat脚本直接调用xp的FTP命令是不行的 执行时H:\>ftp会一直死循环 我这里的XP系统是SP 的 其它版本的 我没有作测试 如果有不同 欢迎大家留言告之 实例二 用put get上传 下载单个文件 把XP机器上H:\js目录下文件flower zip上传到FTP服务器 把FTP服务器中的sql rar文件下载到XP机器上的H:\JS目录 ftp get put bat内容如下

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo get sql rar >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

 

 我们来看看结果 见下面两张图 从XP系统上看 H盘的JS目录 多了个sql rar FTP服务器上的根目录多了个flower zip 这说明 刚才的脚本完成正常的执行了 达到了预期的目的

 

实例三 用put get上传 下载多个文件 在XP机器上把flower zip复制一次 改名为flower zip 在XP机器上把把第二次实例下载的sql rar文件删除 以免影响到本次操作 在FTP服务器上把第二次实例上传的flower zip文件删除 以免影响到本次操作 把XP机器上H:\js目录下文件flower zip 和flower zip上传到FTP服务器 ftp get put many bat内容如下

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo put flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

 

 到FTP服务器上查看根目录 看flower zip与flower zip是否已成功上传 从图上看 只成功上传了flower zip文件

 刚那个ftp get put many bat脚本里echo put flower zip flower zip>> %ftpfilename% flower zip是传输的最后一个文件 是不是用put时 意味着bat在处理上传时 只认最后一个文件呢 我们再多加个文件flower zip 来验证

 在XP机器上把flower zip复制一次 改名为flower zip在FTP服务器上把第二次实例上传的flower zip文件删除 以免影响到本次操作

 ftp get put many bat内容修改如下

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo put flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

 

 结果 还是只成功上传了flower zip 因bat双击时 执行过程会一闪而过 我们看不到执行过程 到命令行去执行下 看到底出了什么问题

 命令行 执行ftp get put many bat脚本 从执行情况看 flower zip三个文件都是put的 但在传输时 却只传了flower zip 真不解 有知道的朋友吗?给点方向

 再换个方式 用通配符* 试试 ftp get put many bat内容修改如下

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo put flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

 在FTP服务器上把上传的flower文件全部删除 以免影响到本次操作执行ftp get put many bat 结果只有flower zip文件上传成功了 呵 flower zip文件 怎么都不能上传 ?

 其实用put传输多个文件 完全可用重复的方式取代 比如 ftp get put many bat内容修改如下

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

实例四 用mput mget上传 下载多个文件 在FTP服务器上删除有关flower的文件

 ftp mget mput many bat内容如下:

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

 双击ftp mget mput many bat后 发现系统弹出一窗口后 就卡住了 停止不前

 原因是用了mput命令 但没有用Prompt关闭交互

 ftp mget mput many bat内容修改如下:

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

 再次执行ftp mget mput many bat 结果见下图

 用通配符*试试在FTP服务器上删除有关flower的文件ftp mget mput many bat内容修改如下:

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo mput flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

照样成功上传有关flower* zip文件 因为结果与上一步是一样的 所以就不抓图了 实例五 用ascii在windows系统间传输非文本文件 把XP电脑上的rmb jpg通过ascii传到FTP服务器的根目录

 

 ftp get ascii bat内容修改如下:

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo ascii >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo put rmb jpg>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

执行ftp get ascii bat后 发现rmb jpg可以正常上传 并且可以正常打开 那 这个现象与前面所以的ascii不能传输非文本东西有出入 这是怎么回会事呢 这是因为 FTP服务器是WINDOWS系统 XP电脑上的bat脚本也是在windows系统上运行的 所以bat在windows系统里用FTP传输文件 不管是用ascii 还是用binary 都是可以的 接下来我们再做一个实验 FTP服务器选centos 再测下ascii传输非文本文件问题 实例六 用ascii在windows系统与linux系统间传输非文本文件 在RHEL 位系统上建立一vsftpd服务器 上面说过redhat默认启用二进制传输 关闭了ascii码传输 所以我们还要修改一下vsftpd的配置文件 修改/etc/vsftpd/nf文件 允许客户端进行ascii传输 并重启vsftpd

 

 把rmb jpg放到FTP服务器 大家注意下H:\js目录下只有ftp getascii bat文件

 ftp getascii bat文件内容修改如下

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo asc >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

执行ftp getascii bat 看结果 rmb jpg文件有下载到XP电脑里 双击这个文件 发现图像乱码 文件被破坏了 都是ascii码传输惹的祸

 换bin传输 测试一下在XP电脑上删除rmb jpg文件 再双击ftp getascii bat文件 去从LINUX的FTP服务器下载一个rmb jpg文件

 修改ftp getascii bat 把ascii改给二进制传输

 复制代码 代码如下:

 @echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:\js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%

结果 文件正常下载 图像也显示正常 lishixinzhi/Article/program/qrs/201401/30223

首先都是动态网页制作脚本,php现在最流行,引起源代码开放,且写起来随意!

其次是asp.net

编程语言可选的有vb.net,c#.net,j#等

数据库推荐使用sql server

php

编程语言使用php语言

数据库使用mysql

jsp

编程语言自然是ja

数据库可选的有sql server, mysql等

最后ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP用脚本语言VBScript(Ja script)作为自己的开发语言。

PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Ja和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(: //)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。

JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Ja上的不凡造诣,将Ja从Ja应用程序和Ja Applet之外,又有新的硕果,就是JSP,Ja Server Page。JSP可以在Serverlet和JaBean的支持下,完成功能强大的站点程序。

三者都提供在 HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet并由Ja虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP 、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP 、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP 、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

技术特点

ASP:

1. 使用VBScript 、 JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。

2. 无须compile编译,容易编写,可在服务器端直接执行。

3. 使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。

4. 与浏览器无关(Browser Independence), 客户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。Active ServerPages 所使用的脚本语言(VBScript 、 Jscript)均在WEB服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。

5.Active Server Pages能与任何ActiveX scripting语言兼容。除了可使用VB Script或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其它脚本语言,譬如REXX 、Perl 、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model) 对象。

6. 可使用服务器端的脚本来产生客户端的脚本。

7. ActiveX Server Components(ActiveX 服务器组件 )具有无限可扩充性。可以使用Visual Basic 、Ja 、Visual C++ 、COBOL等程序设计语言来编写你所需要的ActiveX Server Component 。

PHP:

1?数据库连接

PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的群组合。你还可以自己编写的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松地修改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。但PHP提供的数据库接口支持彼此不统一,比如对Oracle, MySQL,Sybase的接口,彼此都不一样。这也是PHP的一个弱点。

JSP:

1?将内容的产生和显示进行分离

使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和Beans中,那么其它人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JaBeans群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。

2?强调可重用的群组件

绝大多数JSP页面依赖于可重用且跨平台的组件(如:JaBeans或者Enterprise JaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。

3?用标识简化页面开发

Web页面开发人员不会都是熟悉脚本语言的程序设计人员。JaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容产生所需要的。标准的JSP标识能够存取和实例化 JaBeans组件,设定或者检索群组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。

通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。

JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为用Ja技术家族的一部分,以及Ja 2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用。

由于JSP页面的内置脚本语言是基于Ja程序设计语言的,而且所有的JSP页面都被编译成为Ja Servlet,JSP页面就具有Ja技术的所有好处,包括健壮的存储管理和安全性。

作为Ja平台的一部分,JSP拥有Ja程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。

应用范围

ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,只能执行于微软的服务器产品,IIS(Internet Information Server) (windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的组件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的群组合来扩充,Unix下的COM实现起来非常困难。

PHP3可在Windows,Unix,Linux的Web服务器上正常执行,还支持IIS,Apache等一般的Web服务器,用户更换平台时,无需变换PHP3代码,可即拿即用。

JSP同PHP3类似,几乎可以执行于所有平台。如Win NT,Linux,Unix。在NT下IIS通过一个外加服务器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的执行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JaBean甚至不用重新编译,因为Ja字节码都是标准的与平台无关的。

性能比较

有人做过试验,对这三种语言分别做回圈性能测试及存取Oracle数据库测试。

在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而ASP、PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)。

数据库测试中,三者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP则 需要 73 秒。

前景分析

目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多用JSP。

用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。

ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Ja的Ja Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。

三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都用JSP/Servlet。比较出名的如IBM的E-business,它的核心是用JSP/Servlet的Web Sphere。它们都是通过CGI来提供支持的。但去年10月后它推出了Enfinity,一个用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。

总之,ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或使用动态页面的朋友可根据三者的特点选择一种适合自己的语言。

个人心得:如果做个人网站,可以用ASP,方便管理和修改代码,如果说是想数千人同时浏览网站,最好是用PHP,只有PHP才是最稳定的!

阅读全文阅读全文

猜你喜欢

随便看看