JSP概述

    在JSP出现之前,java体系的动态网页是由servlet来生成的。但由于用Servlet生产动态网页非常麻烦,难于维护,必须由程序员来编写,页面设计人员如果不懂java代码,根本无法维护。经过进化就产生了JSP。JSP把原来在Servlet中用out.print()方法输出来的html元素,都直接写在页面,简单很多。

    其实,JSP并不能直接在java的容器里面运行,JSP文件在“编译”前都需要“翻译”,把JSP文件转换成Servlet。一个JSP文件翻译成一个对应的Servlet,而Servlet是java类,java容器编译Servlet并运行它们。最终返回浏览器的文件还是由Servlet产生的。我们写的所有JSP,最终都会被JSP容器转换成Servlet,再由Servlet产生页面返回浏览器。JSP之所以存在,是因为写JSP页面比直接写Servlet容易多,简单直观,而容器可以把JSP转换成Servlet,可以很大程度上节省工作量和减轻工作难度。

 

      在JSP页面中,JSP元素可以分为三大类:JSP指令元素、JSP动作元素、JSP脚本元素。

      一、JSP指令元素仅仅是在“翻译”阶段使用的,即把JSP翻译成Servlet。JSP指令元素只有“三个”:page、taglib、include。但每个指令可能有若干个属性。比如:page指令有contentType属性、有import属性等。

 

    二、 jsp动作元素又可分为“三种”:JSP标准动作元素,JSP标准标记库(JSTL)动作元素,自定义动作元素。

  1. JSP标准动作元素”是早期就存在的JSP规范定义的标准动作元素,它是由jsp作为前缀的标签。例如:
    <jsp:useBean ……>就是JSP标准动作元素。
  2. JSP标准标记库(JSTL)动作元素:是在JSP发展到后才来产生的,他主要由:1.核心库(core)、2.国际化和格式化库、3.关系数据库访问库、4.XML处理库、5.函数库,这五个库组成。每个库的标签都对应相应的标签前缀,比如:核心库里面的标签前缀是c,<c:out……>。由于现在的Web一般都采用MVC模式,所以JSTL中的关系数据库访问库一般比较少用到。而在用纯JSP设计的Web中一般会用到。
  3. 自定义动作元素:如果觉得JSTL还不够用,你还可以开发自定义的定制动作。自定义动作元素在这里不作介绍。

      三、JSP脚本元素:JSP脚本元素在JSTL还没发展起来时,是JSP代码的主要组成部分,在JSP脚本里面可以写各种各样的java代码来完成各种任务。但JSP页面中大量使用JSP脚本元素会使JSP页面凌乱,而且JSP页面使用JSP脚本元素不方便编程任务的分工。可以说,JSTL就是为了解决JSP脚本元素带来的问题而产生的。有了JSTL后,可以用JSTL取代JSP脚本元素(但JSTL还在完善中,有时不能100%的取代JSP页面中的JSP脚本元素)。EL表达式也是JSP在后来引进的。他可以为JSP标记的属性等动态赋值,比JSP表达式更加简单易用。


    在“JSP标准动作元素”和“JSP标准标记库(JSTL)动作元素”中,有些动作的功能是相同或相似,你可以任意选择其中一种来用。但因为“JSP标准标记库(JSTL)动作元素”是后来才制定,它通常功能更强,而且书写更简单,一般建议选用JSTL中的标记。


在JSP中用bean,有很强的捕获提交参数的功能,形如:
<jsp:useBean id="userInfo" class="org.abc.jsp.UserInfoBean">
   <jsp:setProperty name="userInfo" property="*"/>
</jsp:useBean>
只要你表单中输入域的名字跟Bean中的属性名一样,它就会自动把输入域中的值赋给bean的那个属性。

 

JSP有主要有10个重要内置对象:out,response,request,session,application,cookie,page,pageContext,config,exception。

 

JSP有11个动作元素:<jsp:useBean>,<jsp:getProperty>,<jsp:setProperty>,<jsp:include>,<jsp:forward>,<jsp:param>,<jsp:plugin>,<jsp:attribute>,<jsp:body>,<jsp:element>,<jsp:text>

 

 

你可能感兴趣的:(JSP概述)