仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1113|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA编程:挑选jsp而不是servlet作为BS前台支流方...

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:50:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的js|servlet|毛病|计谋|支流原文
很多人以为JSP是JAVA向微软ASP应战的乐成产物,到明天,环绕着JSP计划开展出了TAG/EL等手艺,JSP作为JAVA的BS前台界面计划看来已是没法逆转。但在我看来,JAVA选择JSP这类表达情势,恰好是它最失利的中央,是对ASP的一种低劣的仿照,它原本能够做得更好的,乃至大概据此让微软完全加入服务器范畴,但终极,却大概成为足以令JAVA终极失利的严重计谋偏向性毛病。
JAVA到明天仍具有微软一切言语所不具有的长处,就以C#而言,只不外是形似而神不似。java最基本的中央不在于它的OOP,不在于它是C++的语法优化,这些都不主要,而在于它的假造机机制,使它成为最好的跨平台的服务器言语;而C#不管何等语法类似,都没法改动如许一个实际:它只是微软CLI中的言语中的一种,它再乐成,也充其量是代替了在windows运转的JAVA;某种水平上,C#是一种必定没有需要存在的言语,在CLI中,只必要一种就够了,象VB.net。
JAVA到软件天下带来的最年夜的影响是令软件真正呈现了分层开辟,呈现真实的三层布局。只管有些家伙吹捧他们的软件是N层布局(真不要脸!),实在究实在则,都只不外是传统的CS式的两层布局的变种,不克不及把函数每加一个就称为一层噢!JAVA呈现表现了软件的制造性头脑,但JAVA犯的毛病最年夜的中央就在于他毫无制造性地仿照了ASP,而且,居然把JSP作为两头件的次要会见手腕加以开展。这是一个严重的掉误,大概,假如有一天JAVA逝世失落的话,就逝世在这个掉误下面。

ASP的是仿照最早的livewire式的jsp和cofusion,livewire也是自己最早在项目中打仗的jsp,与厥后的javajsp毫无不异的地方。这类netscape公司的"jsp"与asp有配合的特性,就是完整没有面向对象的特征,是地道的剖析性剧本言语,厥后的PHP也是如许的产物,PHP实质上能够看做是Cscript。这些言语的呈现原意是要满意那些不懂盘算机言语,从HTML美工转行的半吊子程序员的才能必要,美其名为让美工能够写静态网页水平。不外,这个开辟设想成了互联网呈现以来最年夜的笑话之一,美工式的程序员一直不克不及写真实的静态网页,反而让真实的程序员往做了美工的活了,最典范的产物就是struts。

java与此完整纷歧样,它是一种必要编译的言语,具有完整的面向对象的才能;以是,它假如可以发扬这类特性,打败其他的几种剧本是毫无坚苦的。了局,SUN的天赋的笨伯们(我以为这类称号最客不雅,既是天赋,也是笨伯),选择了用装甲车往和捷达争取出租车市场,做起了JSP。而我以为,servlet才应当是它最好的开展偏向。明天,我已健忘了现在是甚么缘故原由令我保持了jsp而利用servlet作为项目办理计划的;只记得厥后完整保持jsp是因为分身两种情势在传送变量和地点时十分庞大,还不如光用一种。明天当我觉得我现在错了,而标签/EL等手艺的呈现会令JSP分歧往昔而再次在严重项目当选用JSP时,(个中一个缘故原由也是谁人笑话的持续,但愿不懂JAVA的保护职员能够在交货后自已保护体系前台),跟着项目标进进,我记起了现在保持JSP的缘故原由:一个是事先的代码办理十分坚苦,JSP体系基础上与其他PPP类程序一样是不成保护的;另外一个缘故原由就是JSP没法基于模板举行保护。前者因为tag等的呈现而减缓了,(夙昔也能够利用includesevlet的举措到达靠近的效果),后者仍旧一样,关头就在于不克不及复盖已有的代码。而在servlet中,重载一个办法是很简单的。

很多人觉得servlet难写,在doget/dopost/init/等中必要塞进那末多的办法;实在,这是一种曲解,这类曲解是没有熟悉到servlet实质上是一种javaclass,能够容易私有公有的办法,也能够承继,能够重载等等。因而,在servlet中很简单就能够构成一个全体系跟随的模板,一改一同改。相反,觉得写servlet就是在doget顶用out.println输入的,是把写JSP的了解带进了servlet;JSP编译成servlet后,也恰是这个模样的。以是它不存在承继的代价。

那末关于庞大的html界面怎样到达与jsp一样的简便嵌进呢?实在很复杂。我事先的办理计划是利用${xxx}标志预置默许的体例,然后把这些带有大批html代码的标志的文件存在某个目次;在sverlt初始化时经由过程文件字撙节读进,利用一个字符串剖析的组件(明天还在用呢)把标志转化为响应的实践静态变量。这恰好就是明天的号称开始进的EL表达式言语的办理办法。真的,我一点都不以为有写servlet比一样平常的网页程序难在甚么中央。某种水平上,我以为自已做了一个jsp注释引擎出来了。

那末这类本地货的jsp和真实的jsp有甚么区分呢?最年夜的区分就在于它是把jspp仅仅当作是为servlet服务的html代码库,而不是serlvet为jsp服务。换言之,这里的jsp是相似于明天的tile/Jspfragment的工具。一个小小的不同,带来的效果完整纷歧样,由于它能够完全的发扬出java面向对象和承继的特性;乃至能够象PB那样将全部项今朝台作为一个类"承继"出来,再扩大和重整必要修正的中央。而这类才能,是那些"P"言语永久不成能做到的。可是,SUN恰恰跟在微软屁股前面往低劣地仿照JSP。

无妨回忆一下在BS前台最多见到的架构是甚么?是一个年夜的网站上年夜部分版面具有相似的框架结构,每一个分栏中只要个中某处纷歧样。JSP能够很简单地共用个中一样的部分;但关于个中纷歧样的部分就力所不及。因为JSP不克不及构成顶级模板,而每个年夜分栏中部内容纷歧样,以是独一的举措就是每个年夜分栏拷贝出一个jsp文件来取得一个顶级框架模板;明显,这意味着对每个文件的不异框架部分举行保护;项目越年夜,如许往后变动的事情量越年夜。这时候侯真的有点吊唁servlet的功效了,对这类需求,只必要写好一个servlet,其他的servlet承继它,然后重载它的中心内容办法,就弄惦了。以后要到达相似请求的独一举措,仿佛只能是在顶级页面中利用if-else/equal-notequal判别里include分歧的内容文件。舍此,另有甚么好举措吗?

JAVA的BS前台的准确的思绪应当是以一个能够订制承继办法的servlet为中心,然后能够分化一些象jsp如许的文件,相似明天的jsp中手艺都能够用到这些JSP文件中。也就是说,中心应当是一个能够定制的servlet,而不是供应一个工具,把jsp编译成不成变的servlet。顶级文件应当是servlet,而不该该是JSP,这就是我所说的。
我一团体是不成能与全部JSP社区尴尬刁难的,不成能一团体完成SUN几千个开辟工程师的事情,既然SUN的某个天赋年夜笨伯选择了JSP作为JAVA在BS的表达支流,到明天,假如我仍利用JAVA作为前台界面程序的话,最好就是随年夜流尺度,而在几年前,JSP完整不是尺度,情形是纷歧样了。不外,从明天实践的体验来讲,我仍旧激烈地以为,SUN犯了一个严峻的办法性毛病。更加遗憾的是,SUN没有做到的事变,让微软在ASP.net中有所表现了,所幸微软的工具历来不盘算跨平台移植的,以是SUN另有一点时机。
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
谁可相欹 该用户已被删除
沙发
发表于 2015-1-21 16:00:24 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
海妖 该用户已被删除
板凳
发表于 2015-1-30 20:40:50 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
莫相离 该用户已被删除
地板
发表于 2015-2-6 15:52:16 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-8 12:20:18 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-2-12 02:39:56 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
深爱那片海 该用户已被删除
7#
发表于 2015-3-2 20:57:42 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
简单生活 该用户已被删除
8#
发表于 2015-3-4 01:54:23 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
蒙在股里 该用户已被删除
9#
发表于 2015-3-11 06:23:16 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
金色的骷髅 该用户已被删除
10#
 楼主| 发表于 2015-3-13 00:46:19 | 只看该作者
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
小魔女 该用户已被删除
11#
发表于 2015-3-14 01:39:42 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
12#
发表于 2015-3-18 23:14:05 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
兰色精灵 该用户已被删除
13#
发表于 2015-3-22 22:10:55 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
变相怪杰 该用户已被删除
14#
发表于 2015-3-25 02:45:01 | 只看该作者
是一种为 Internet发展的计算机语言
柔情似水 该用户已被删除
15#
发表于 2015-4-14 23:02:46 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
透明 该用户已被删除
16#
发表于 2015-4-17 03:05:00 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
飘飘悠悠 该用户已被删除
17#
发表于 2015-4-17 06:47:44 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
因胸联盟 该用户已被删除
18#
发表于 2015-5-1 01:10:51 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
若相依 该用户已被删除
19#
发表于 2015-5-4 02:49:28 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
分手快乐 该用户已被删除
20#
发表于 2015-5-6 19:57:02 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表