深入理解JSP

JSP(Java server page)是Java EE规范最基本成员,他是Java Web开发的重点知识,尽管我们一直在用。但其原理知之甚少。今天重点研究一些JSP核心内容以及其工作原理。

JSP和Servlet的本质是一样的,由于JSP终于须要编译成Servlet才干运行,换句话说JSP是生成Servler的草稿文件。

JSP比較简单。就是在HTML中嵌入Java代码,或者使用JSP标签。包括使用用户自己定义标签,从而能够动态的提供内容。早起JSP应用比較广泛,一个web应用能够所有由JSP页面组成,仅仅须要少量的JavaBean就可以,可是这样导致了JSP职责过于复杂,这是Java EE标准的出现无疑是雪中送炭,因此JSP慢慢发展成单一的表现技术,不再承担业务逻辑组件以及持久层组件的责任。

JSP基本原理

JSP的本质是servlet,当用户指定servlet发送请求时,servlet利用输出流动态生成HTML页面。由于包括大量的HTML标签。

静态文本等格式导致servlet的开发效率极低,所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中。起静态的部分无需Java程序控制,仅仅有那些须要从数据库读取或者须要动态生成的页面内容才使用Java脚本控制。

因此JSP页面内容有下面两部分组成

静态部分:HTML标签

动态部分:Java脚本

JSP的4种基本的语法

JSP凝视

JSP凝视用于标注程序开发过程中的开发提示,不会输出到client。<%-- 凝视内容 --%>

JSP声明

JSP声明用于声明变量和方法。在JSP中声明方法看起来非常特别。似乎不须要定义类就能够直接定义方法,方法似乎能够脱离类独立存在。实际上JSP声明会转换成servlet的成员变量或成员方法,因此JSP声明仍然符合Java语法。<%! 声明部分 %>

输出JSP表达式

<%=表达式 %>

JSP脚本

曾经JSP应用非常广泛。通俗点讲不论什么能够运行的Java代码都能够通过JSP脚本嵌入到HTML页面中。

<% Java脚本 %>

JSP的3个预编译指令

page指令

该指令是针对当前页面的指令。通常位于JSP页面的顶端,一个JSP页面能够使用多条page指令。

include指令

用于指定包括还有一个页面的指令。使用include指令能够将一个外部文件嵌入到当前JSP文件里,同一时候解析这个页面中的JSP。include即能够包括静态文本,又能够包括动态JSP页面。

taglib指令

用于定义和訪问自己定义标签。

JSP的7个动作指令

forword指令

用于将页面响应转发到还有一个页面,既能够转发到静态的HTML,也能够转发到动态的JSP页面,或者转发到容器中的servlet。

param指令

用于运行參数,必须与其支持參数的标签一起使用。本身不能单独使用。由于单独的param指令没有实际意义。

include指令

用于动态引入一个JSP页面,它是一个动态include指令,也用于包括某个页面,不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。

plugin指令

用于下载JavaBean或applet到client运行。

useBean指令

创建一个JavaBean的实例

setProperty指令

设置JavaBean实例的属性值

getProperty指令

输出JavaBean实例的属性值

JSP脚本中的9个内置对象

application对象

javax.servlet.ServletContext的实例,该实例代表JSP所属的web应用本身。能够用于JSP页面,或者servlet之间交换信息。

config对象

javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息

exception对象

java.lang.Throwable的实例,该实例代表其它页面中的异常和错误。

out对象

javax.servlet.jsp.JspWriter的实例,该实例代表JSP的输出流。用于输出内容,形成HTML页面。

page对象

代表页面本身,通常没有太大用处。

pageContext对象

javax.servlet.jsp.PageContext的实例。该对象代表JSP页面的上下文,使用该对象能够訪问页面中的共享数据。

request对象

javax.servlet.http.HttpServletRequest的实例。该对象封装了一次请求。client请求的參数都被封装在这个对象里。

response对象

javax.servlet.http.HttpServletResponse的实例,代表服务器对client的响应,通常非常少使用该对象直接响应,而是使用out对象,除非须要生成非字符响应。

session对象

javax.servlet.http.HttpSession的实例。该对象代表一次会话,当client浏览器与网站连接时,会话開始,当client关闭浏览器是会话结束。

时间: 2024-10-14 08:05:17

深入理解JSP的相关文章

JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期

JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期. JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet. 以下是JSP生命周期中所走过的几个阶段: 编译阶段: servlet容器编译servlet源文件,生成servlet类 初始化阶段: 加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法 执行阶段: 调用与JSP对应的servlet实例的服务方法 销毁阶段: 调用与JSP

如何理解jsp页面的“&lt;base href=&quot;&lt;%=basePath%&gt;&quot;&gt;”

jsp文件里通常有以下代码: 这里的<base href="<%=basePath%>">是什么意思呢? 我在W3School网站上查了html中的base标签,解释如下: <base> 标签为页面上的所有链接规定默认地址或默认目标. 通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白. 使用 <base> 标签可以改变这一点.浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有

J2EE总结(三)——深入理解JSP开发工作原理

一.JSP及其工作原理 1.JSP(JavaServer page)Java服务器页面,从名字上看,它类似于ASP,并且是在服务端编写的一种技术. 2.用于开发动态web页面的技术 为什么它可以用来开发动态web页面呢?这与它在编写时用到的技术有关.它采用HTML来定义页面的结构,但是在jsp中允许编写Java代码,并且允许开发人员在页面中使用request,response,out等对象实现与浏览器的交互,所以jsp也是一种动态web页面开发技术. 举个例子: 输出当前的时间,在html中嵌套

深入理解JSP/Servlet Session会话管理机制

HTTP 是一种无状态协议,这意味着每次客户端检索网页时,都要单独打开一个服务器连接,因此服务器不会记录下先前客户端请求的任何信息.它与FTP.Telnet等协议不同,FTP等协议可以记住用户的连接信息. 会话(Session)是指一个终端用户与交互系统进行通信的时间间隔,通常指从登陆系统到注销系统之间所经过的时间以及如果需要的话,可能还有一定操作空间.JSP有四种方式实现会话跟踪功能. Cookie 服务器在响应请求时可以将一些数据以"键-值"对的形式通过响应信息保存在客户端.当浏览

servlet和Jsp生命周期解读

一.servlet的工作工程 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应.常用的tomcat.jboss.weblogic都是Servlet容器)中的,其生命周期是由容器来管理. 二.Servlet生命周期 Servlet是运行在Servlet容器(有时候也叫Servlet引擎,是web服务器和应用程序服务器的一部分,用于在发送的请求和响应

Java Web学习(10):JSP结构与生命周期

JSP结构 网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面.容器负责截获对JSP页面的请求.我们使用内嵌JSP容器的Apache来支持JSP开发. JSP容器与Web服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于JSP网页的特殊元素. 下图显示了JSP容器和JSP文件在Web应用中所处的位置. JSP处理 以下步骤表明了Web服务器是如何使用JSP来创建网页的: 1)就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器. 2)Web

J2EE的13 规范之解读JSP

什么是JavaServer Pages? JSP(全称Java ServerPages)是由SunMicrosystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态 生成HTML.XML或其他格式文档的Web网页的技术标准. 从上面的话不难看出JSP的核心是:能够及时响应客户请求的动态网页开发技术.它使用JSP的标签在HTML网页中插入Java代码.标签通常以 <%开头以%>结束. JSP的本质是Java servlet,主要用于实现Javaweb应用程序的用户

JSP 生命周期

转自:http://www.w3cschool.cc/jsp/jsp-life-cycle.html —————————————————————————————————————————————————————————————————— 理解JSP底层功能的关键就是去理解它们所遵守的生命周期. JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet. 以下是JSP生命周期中所走过的几个阶段: 编译阶段: Servelet

Java Web开发基础(2)-JSP

上一篇博我粗略的介绍了一下Servlet.粗略是由于博主也刚刚学习这部分的内容,还不是非常懂所以无法讲的非常精细.可是本着二八原则,我还是先继续学习.所以,这篇博客接着JSP的内容.由于.这两个内容关联性还是比較强的,学习的过程也应该是互相促进的. 简单介绍 概述:JSP(Java Server Page)简单的说是一种动态网页技术.它通过在HTML网页中嵌入可以生成动态内容的程序代码.来实现静态内容和动态内容在终于呈现给client的统一. 也就是说在HTML页中可以存在着JavaBean,J