【Wed Jul 13 2016 15:26:49 GMT+0800】
1. JSP运行原理

上图显示了JSP的基本运行原理。首先由浏览器向Web服务器提出访问JSP页面的请求(Request),然后由JSP容器负责将JSP转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行。最后由Web服务器将执行结果响应(Response)给客户端浏览器。
JSP需要转换成Servlet是因为JSP的执行效率要低于Servlet,但这仅限于第一次执行。由于JSP在第一次执行后即被编译成类文件,当再次重复调用时,如果JSP容器没有发现该JSP页面修改的痕迹,就会直接执行编译后的类文件而不是重新编译Servlet。因此除了第一次的编译会花比较久的时间外,之后的JSP和Servlet的执行速度就几乎相等。当然,如果JSP容器检查到JSP页面被修改过,则需要重新进行编译。
2. JSP基本语法
2.1注释
JSP注释可以分为两种。一种是可以在客户端显示的注释,称为客户端注释(HTML注释);另一种是客户端不可见,仅供服务器端JSP开发人员可见的注释,称为服务器端注释(隐藏注释)。
|
客户端 注释 |
<!--comment[<%= expression%>]-->
|
产生一个注释并通过JSP引擎将其发送到客户端。JSP注释有一个不同就是可以使用表达式。表达式的内容是动态的,页面的每次读取和刷新都有可能是不同的内容。 |
<!-- 现在时间:<%= (new java.util.Date()).toLocaleString()%>--> |
||
|
服务器端 注释 |
<%/* comment */%> <%--comment--%> |
写在JSP程序中的注释并不发给客户端。 |
注意:用隐藏注释标记的字符会在JSP编译时被忽略掉它不会在源代码中显示,也不会显示在客户的浏览器中。
2.2声明
JSP中的声明,用于声明JSP程序中使用的变量、方法等,其声明方式与Java相同(因为声明最终将被发送到服务器端作为Java语句解释),其语法格式为:
<%! declaration;[ declaration;]… %>
例如:
<%! int i=2004; %> <%! int a,b; int c; %> <%! public String[] StrArray; %> <%! int time = Calendar.getInstance().get(Calendar.AM_PM); %>
如上例所示,使用此种方法在JSP中对变量和方法进行声明,可以一次声明多个变量或者多个方法,只要最后以“;”结尾即可。
对变量进行声明的方法也并非仅此一种,使用表达式同样可以进行变量的声明。
2.3表达式
表达式元素表示的是一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,然后显示出来。其基本语法为:
<%=expression%>
例如:
<%=(new java.util.Date()).toLocaleString() %>
2.4程序段
2.5JSP指令
嵌入JSP页面成分主要有如下3种:脚本元素(Scripting Element)、指令(Directive)和动作(Action)。脚本元素用来嵌入Java代码;JSP指令用来从整体上控制Servlet的结构;动作用来引入现有的组件或者控制JSP引擎的行为。JSP的指令元素主要包括:Page指令、Include指令以及Taglib指令。它们都是JSP中的编译指令。编译指令就是告诉JSP的引擎,如何处理其他的JSP网页。
2.5.1 include指令
include指令会在JSP页面被编译成Servlet时引入其中包含的HTML文件或JSP文件(也可能是其他类型的文件,具体允许包含哪些类型的文件需要根据Web服务器的情况而定)。JSP include指令的基本语法如下:
<%@ include file="relative URL" %>
浙公网安备 33010602011771号