日期:2014-05-16  浏览次数:20382 次

对于JSP基本模式的理解
                                                  Web相关原理的解析
      不久前接触了web的一些基本知识以及应用,渐渐地发觉web的东西要比java开发一个软件或是使用一个类来得容易些了,不清楚是自己真的理解到了点上了呢,还是web这玩意根本就不是技术含量很多的东西?总之就先谈谈我对于web的理解吧。
      web这东西,不懂的人肯定只是认为它就是网页,就是能在浏览器上面显示的一个一个网页,因为我自己一开始也是这样看待web的。而在接触了一段时间后才稍微了解了它的城府有多深了。其实页面在web里面只是一个成员,是负责显示内容给用户看的那一块而已,这页面用到的就是一种浏览器能识别并解释执行的标记语言——HTML,而这种语言目前就我看来,没什么技术性的东西,就是按照语言规范拼接字符串,然后发送到浏览器上面显示,就这样简单。至于HTML的语法规则,都是一些固定的东西,只需要知道有什么显示功能的语法和熟练就够了,不用浪费精力去硬背那些语法规则。
      当然了,只使用HTML写页面的话,写出来的页面是属于静态页面,因为没有逻辑处理模块辅助,也就是说页面上的任何动作最多就是弹出其他设定好的页面或消息框而已。所以要想实现页面的动态效果,就必须借助HTML以外的东西了,像脚本语言啊,或是与HTML结合使用的JSP啊,都能实现动态页面的效果。下面的就说说脚本语言跟JSP,不过理解上的重点是JSP的机制上。
      脚本语言:
      为什么叫做脚本,也许是因为它是作为辅助HTML或是其他网页语言(比如说XML或XHTML)实现动态功能的工具来使用的,就好比一个人的腿脚一样,是基础。不过我认为称做嵌入语言更为形象吧,因为它的地位应该跟HTML是平等的,只是分工不同而已,而不是互相分离就不能使用的关系。这个有点扯远了,还是回到正题,脚本语言就是在HTML中帮助处理页面上的动作和逻辑事件的语言,在页面上是不可见的,就相当于一个在页面后台处理的对象。常见的脚本语言有javascript和PHP,使用的规则都不是很难,跟HTML一样都是敲写熟练就可以的,至于逻辑处理上的function方法实现,就跟java或是其他编程语言差不多的逻辑了,这个不再累述。
      JSP:
      JSP就是java、HTML代码的混合使用语言结构,为什么要使用混合体呢,是因为我们想要将逻辑模块跟页面显示模块分离,从而达到不同模块各自的修改更加容易,而JSP刚好就满足这个要求。 其实满足这个要求的主要有三种方法,一种是通过Servlet来做中间桥梁,一种是在java逻辑处理上将拼接好的HTML语句通过Servlet的response隐对象向浏览器输出,还有一种就是在HTML中嵌入java代码。由于这三种方法中数JSP这个方法最让编程语言满意了,所以它流行得比较快。
      我们都知道,一旦页面模块跟逻辑处理模块分离的话,数据传送就成了主要的问题,正所谓各个模块要有联系才能形成一个整体嘛,那么这两个不同的模块依靠什么联系呢?其实就如上面的三种方法所说的,这三种做法都能够做到数据传送的目的。但第三种方法是将另外的模块试图嵌入到本身这个被执行的模块中来达到联系的目的。嵌入的规则也不是很复杂,因此更多的编程者青睐于这种可视化程度比较高的做法,这就是JSP。而上面所说的第一种方法虽然能够做到逻辑层与现实层的彻底分离,并且编程思路上比较容易整理,但是使用起来我觉得是三种方法中最繁琐的,也许有人对它情有独钟,不过很可惜,我不喜欢这个做法,所以对第一种做法就没做多深入的了解了。不过我们可以发现,这三种方法的抽象层面上目的是一样的,无非就是想综合显示与逻辑来达到页面的动态效果,而且三种方法的实现思路都如出一辙,区别只是实现的重心放在页面上、java上还是这两者的中间桥梁Servlet上而已。事实证明,放在页面上的JSP做法还是比较方便编程的。当然了,其他做法也有它们的优势,选择哪一种还是见仁见智吧!
      以上就是我目前对于学到的web方面知识的理解,某些技术点上的描述可能有出入,望大家指点指点。