定义
JSP(Java Server Pages),是一种运行在服务端,使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。
动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码
JSP 网页就是用另一种方式来编写 Servlet
。除了解释阶段外,JSP 网页几乎可以被当成一个普通的 Servlet 来对待
特点
- 以 Java 语言作为脚本语言;
- JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序
- JSP开发的WEB应用可以
跨平台使用
,既可以运行在 Linux 上也能运行在 Windows 上
执行的过程
服务器对JSP页面的请求处理过程:
-
浏览器发送一个 HTTP 请求给服务器。
-
Web 服务器识别出这是一个对
JSP 网页
的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。 -
JSP 引擎从磁盘中载入 JSP 文件,然后将它们
转化为 Servlet
。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。一般情况下,JSP 引擎会检查 JSP 文件对应的 Servlet 是否已经存在,并且检查 JSP 文件的修改日期是否早于 Servlet。如果 JSP 文件的修改日期早于对应的 Servlet,那么容器就可以确定 JSP 文件没有被修改过并且 Servlet 有效。这使得整个流程与其他脚本语言(比如 PHP)相比要高效快捷一些。
-
JSP 引擎
将 Servlet编译成可执行类
,并且将原始请求传递给 Servlet 引擎。 -
Web 服务器的某组件将会调用
Servlet 引擎
,然后载入并执行 Servlet 类
。在执行过程中,Servlet 产生HTML 格式
的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。 -
Web 服务器以
静态 HTML 网页
的形式将 HTTP response 返回到您的浏览器中。 -
浏览器处理 HTTP response 中动态产生的HTML网页,和在处理静态网页一样。
基本语法
页面结构
在HTML中插入JAVA程序构成
- Tmeplate data
JSP引擎不处理的部分,如HTML的内容。这些数据会直接传送到客户端的浏览器 - JSP元素
<% JSP元素内容 %>,由JSP引擎处理,必须符合JSP语法。- 注释
HTML中的注释:< ! - -注释 - ->
JAVA中的注释://, /**/
JSP特有的注释:- 带有JSP表达式的注释:< ! - -注释 <%=表达式%> - ->
- 隐藏的注释:<% - - 注释 - -%> //浏览器查看源代码也看不到
- 脚本元素
脚本元素是嵌入到JSP程序中的java代码,客户端不可见,由服务器执行- 声明标识
<%!
声明;
%>,用于声明变量和定义函数 - JSP表达式
<%=
表达式 %>,由服务器计算,返回结果后,在客户端浏览器显示 - 脚本程序
<% 程序代码片 %>,服务器执行的代码,得到结果后,在客户端浏览器显示
- 声明标识
- 指令标签
指令标签用于提供和JSP页面相关的信息,设置整个JSP页面
范围内有效的属性
,例如页面的编码方式、语法、信息等
<%@
指令 属性1 = “值1”,属性2=“值2”……%>
常用指令:- page:设定整个JSP页面的一些属性和他们的值
属性: language,import,contentType…… - include:在该指令位置,静态插入一个文件,该文件可以是JSP文件、HTML文件、文本文件,Java文件等
属性:file - taglib:开发者自定义新的标签
属性:uri,prefix
- page:设定整个JSP页面的一些属性和他们的值
- 动作元素
动作元素也成为动作标签,用于实现特殊的功能
,语法以XML为基础,使用时区分大小写。
<jsp:动作元素>-
<jsp:include>:向当前页面中包含其他文件
属性:page,flush -
<jsp:forward>:将客户请求转发到另外一个JSP,HTML或相关的资源页面上,该元素所在的当前的页面将不再被执行
-
<jsp:param> <jsp:params>
向需要包含的动态页面或要转向的页面传递参数
区别:
<jsp:param>:经常与其他元素,如<jsp:include>,<jsp:forward>一起使用
<jsp:params>:只能和<jsp:plugin>一起使用,用于向Applet或Bean传递参数 -
<jsp:plugin>,<jsp:fallback>:
在页面插入Java Applet小程序或者javabean对象,它们能够在客户端运行
当使用<jsp:plugin>加载Java小程序或者javabean失败时,可以通过<jsp:fallback> 向用户输出提示信息,因而两者经常一起使用
-
- 注释
内置对象
JSP内置对象指在JSP中内置的、无需定义即可在页面中直接使用的对象,由JSP容器自动提供
- 请求对象:request
- 响应对象:response
- 会话对象:session
- 多客户端共享对象:application
- 输出对象:out
- 页面对象:page
- 页面上下文对象:pageContext
- 配置对象:config
- 异常对象:exception
JSP中应用JavaBean
- 创建JavaBean
<jsp:useBean id=“给javabean实例起的名字” class=“java的类名” scope=“JavaBean实例的有效范围” /> - 设置并获取JavaBean属性
<jsp:setProperty name=“JavaBean实例” property=“JavaBean实例的属性” />
<jsp:getProperty name=“JavaBean实例” property=“JavaBean实例的属性” value=字符串 />
<jsp:getProperty name=“JavaBean实例” property=“JavaBean实例的属性” value="<%= expression%>" />