JSP起源
在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序代码产生,整个Servlet程序的代码将非常臃肿,编写和维护都将非常困难。为了弥补Servlet的缺陷,SUN公司在Servlet的基础上推出了JSP(Java Server Pages)技术作为解决方案。
JSP是简化Servlet编写的一种技术,它将Java代码和HTML语句混合在同一个文件中编写,只对网页中要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态HTML页面的方式编写。
JSP初识
JSP页面是由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件,JSP页面的文件扩展名必须为 . jsp。
JSP的组成
JSP = HTML + JAVA脚本(代码片段) + JSP动态标签
JSP基本语法
JSP脚本
JSP脚本就是Java代码片段,共分为三种:
- <% %> Java语句
- <%= %> Java表达式
- <%! %> Java定义类成员
JSP页面中的静态HTML内容称之为JSP的模板元素,在静态的HTML内容之中可以嵌套JSP的其他各种元素来产生动态内容和执行业务逻辑。
JSP模板元素定义了网页的基本骨架,即定义了页面的结构和外观。
JSP表达式
JSP的表达式提供了将一个变量或表达式的计算结果输出到客户端的简化方式,它将要输出的变量或表达式直接封装在<%= %>中。
JSP表达式中的变量或表达式的计算结果将被转换成一个字符串,然后被插入进整个JSP页面输出结果的相应位置处。
JSP表达式中的变量或表达式后面不能有分号(;),JSP表达式被翻译成Servlet程序中的一条out.print()语句。
JSP的脚本片段
指嵌套在<% %>中的一条或多条Java程序代码,可以定义变量、执行基本的程序运算、调用其他Java类、访问数据库、访问文件系统等普通的Java程序所能实现的功能。
在JSP脚本片段中可以直接使用JSP提供的隐式对象来完成WEB应用程序特有的功能。
JSP脚本片段中的Java代码将被原封不动地搬进由JSP页面翻译成的Servlet的jspServlet方法中,所以,JSP脚本片段之中只能是符合Java语法要求的程序代码,除此之外的任何文本、HTML标记、其他JSP元素都必须在脚本片段之外编写。
JSP注释
格式:<%-- --%>
内置对象out
out对象在JSP页面中无需创建就可以使用,它的作用就是用来向客户端输出。
其中<%= %>与out.print()功能是相同的,例如:
<%=s1%>等同与<% out.print(s1) ; %>
<%="hello"%>等同于<% out.print("hello") ; %>
JSP原理
JSP就是Servlet。web容器(Servlet引擎)接收到以 . jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。
每个JSP页面在第一次被访问时,JSP引擎将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由web容器像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译程的Servlet程序。如图所示当客户端访问a.jsp时的执行顺序。
JSP规范也没有明确要求JSP中的脚本程序代码必须采用Java语言,JSP中的脚本程序代码可以采用Java语言之外的其他脚本语言来编写,但是,JSP页面最终必须转换成JavaServlet程序。