抛开JSP直接从JSF入手
曾几何时学Java Web编程必从JSP开始成了Java Web程序员们公认的定律好比少林寺的武僧习武之初一定先蹲几年马步一样在论坛上我经常看到过来人以先知的口吻教导初来乍到的菜鸟想搞Java Web编程的话必须先从JSP入手然后再研究某某框架云云两年前这是正确的但现在这样的教条已经过时了
年的第一次鸦片战争当英国人敲开清政府闭关锁国的大门时据我所知少林寺的武僧恐怕没有帮上什么忙吧纵然武艺高强下盘稳固可是在枪炮面前血肉之躯如何抵挡得了呢?技术在进步时代不同了现在JSP已经不是Java Web的必经之路了如果你是初学者别听信那些过来人三年前的经验直接以JSF作为你Java Web的跳板站在巨人的肩膀上也许用不了多久你就能超越曾经教导过你的前辈了
这不是作者信口雌黄哗众取宠从JSF入手是你不甘人后敢为人先的绝佳机会你没有必要再为什么JSP费神了如果说三年前JSF刚刚诞生时稚嫩的JSF尚需JSP扶上马送一程尚需借助JSP的名义和程序员们混个脸熟的话那么三年后的今天当JSF已经发展到版本时JSP也许到了该退休的时候了即便JSP生命力顽强还能撑几年发挥点余热也已经不值得你费九牛二虎之力苦苦追随了在我看来JSP更适合作为一种底层技术退到幕后像Servlet一样默默奉献把发展的空间让给更能提高程序员生产力的后起之秀
不必担心有人说你眼高手低好高骛远JSF是一个新的框架它并不需要你有深厚的技术底子你只需知道组件事件JavaBean这些基本概念就可以放手去干了玩过网络游戏的人都知道在游戏中装备有着举足轻重的作用同样作为一个程序员选择一项领先的编程技术对于你的生产力也是至关重要的
从JSP开始学习Java Web编程就像笨人玩网络游戏把自己当成一架机器在网吧里无休止地打怪练级只有苦劳没有功劳聪明的玩家花钱买一个装备瞬间就把自己送入强手的行列JSF就是这样的装备能够让你马上成为Java Web编程的熟手而且JSF还是免费的
JSF对程序员技能的要求
初学Java Web编程的程序员能否跳过JSP从JSF直接入手只要看看JSF对于程序员的技能有什么基本要求就明白了前文提到过JSF是一个Java Web用户界面的框架JSF的设计目标是填平桌面编程和Java Web编程之间的鸿沟模糊桌面编程和Web编程的界限让有着桌面编程经验的程序员能够快速地进入Web编程的领域并以他们熟悉的方式编写代码用他们惯常的思维考虑问题甚至用完全类似的工具设计界面调试程序
事实上经过这么多年的发展桌面编程不论是在Java下还是在C++下已经没有什么区别了所以只要你有过桌面编程的经历不管是Java的还是C++的你都可以借助JSF立即着手编写功能强大的Java Web程序
所以有限的桌面编程经验就是JSF对程序员的要求概括起来所谓桌面编程经验其实就是
第一理解UI组件的概念知道如何拖放组件到界面上如何设置组件的属性
第二理解事件和事件驱动知道如何编写事件例程对事件作出响应
第三掌握面向对象的基本知识以便理解JavaBean的技术(这其实很简单只是符合一定规范的Java类而已)
第四熟悉HTTP协议的一些基础知识为你进入JSF高级编程作好准备
这就是全部对于一般的Java Web编程JSF要求具备这些技能就足够了至于Web应用和桌面应用的不同之处JSF会为你处理无需你费心站在更高的高度用同样的眼光看待桌面应用和Web应用是JSF领先于其他Java Web框架的根源所在