1. JSP初始化 → JSP执行 → JSP清理
jspInit() → _jspService(HttpServletRequest request, HttpServletResponse response) → jspDestroy()
调用时如果没有调用创建 jspInit() → _jspService(...)
如果存在未更改_jspService(...)
如果存在并更改jspDestroy() → jspInit() → _jspService(...)
2.脚本程序
脚本程序可以包含任意量的Java语句、变量、方法或表达式。代码片段将会被编译到_jspService方法中
脚本程序的语法格式:<% 代码片段 %>
3.JSP声明
一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,必须先声明这些变量和方法然后才能使用它们。相当于声明类的属性和方法。
JSP声明的语法格式:<%! declaration; [ declaration; ]+ ... %>
4.JSP表达式
一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。相当于调用out.print(“表达式”);
JSP表达式的语法格式:<%= 表达式 %>
5.JSP注释
<%-- 注释 --%> JSP注释,注释内容不会被发送至浏览器甚至不会被编译
<!-- 注释 --> HTML注释,通过浏览器查看网页源代码时可以看见注释内容
6.JSP指令元素
JSP指令语法格式:<%@ directive attribute="value" %>
指令
描述
<%@ page ... %> |
定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等 |
<%@ include ... %> |
包含其他文件 |
<%@ taglib ... %> |
引入标签库的定义,可以是自定义标签 |
(1)Page指令
属性
描述
buffer |
指定out对象使用缓冲区的大小 |
autoFlush |
控制out对象的 缓存区 |
contentType |
指定当前JSP页面的MIME类型和字符编码 |
errorPage |
指定当JSP页面发生异常时需要转向的错误处理页面 |
isErrorPage |
指定当前页面是否可以作为另一个JSP页面的错误处理页面 |
extends |
指定servlet从哪一个类继承 |
import |
导入要使用的Java类 |
info |
定义JSP页面的描述信息 |
isThreadSafe |
指定对JSP页面的访问是否为线程安全 |
language |
定义JSP页面所用的脚本语言,默认是Java |
session |
指定JSP页面是否使用session |
isELIgnored |
指定是否执行EL表达式 |
isScriptingEnabled |
确定脚本元素能否被使用 |
eg:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.util.Date" %>
(2)Include指令
<%@ include file="relative url" >
Include指令中的文件名实际上是一个相对的URL。如果您没有给文件关联一个路径,JSP编译器默认在当前路径下寻找。
(3)Taglib指令
<%@ taglib uri="uri" prefix="prefixOfTag" >
JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
7.JSP行为/动作元素
JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。
行为标签只有一种语法格式,它严格遵守XML标准:<jsp:action_name attribute="value" />
语法
描述
jsp:include |
用于在当前页面中包含静态或动态资源 |
jsp:useBean |
寻找和初始化一个JavaBean组件 |
jsp:setProperty |
设置 JavaBean组件的值 |
jsp:getProperty |
将 JavaBean组件的值插入到 output中 |
jsp:forward |
从一个JSP文件向另一个文件传递一个包含用户请求的request对象 |
jsp:plugin |
用于在生成的HTML页面中包含Applet和JavaBean对象 |
jsp:element |
动态创建一个XML元素 |
jsp:attribute |
定义动态创建的XML元素的属性 |
jsp:body |
定义动态创建的XML元素的主体 |
jsp:text |
用于封装模板数据 |
常见的属性
所有的动作要素都有两个属性:id属性和scope属性。
id属性:id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。
scope属性:该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application。
<jsp:include>动作元素
属性
描述
page |
包含在页面中的相对URL地址。 |
flush |
布尔属性,定义在包含资源前是否刷新缓存区。 |
<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty<jsp:useBean id="user" class="com.gqshao.test.sys.rbac.domain.User" />
<jsp:setProperty name="user" property="loginName" value="admin" />
<jsp:getProperty name="user" property="loginName" />
<jsp:forward>
<jsp:forward page="Relative URL" />
jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page
8.JSP隐含对象
JSP支持九个自动定义的变量,江湖人称隐含对象。这九个隐含对象的简介见下表:
对象
描述
request |
HttpServletRequest类的实例 |
response |
HttpServletResponse类的实例 |
out |
PrintWriter类的实例,用于把结果输出至网页上 |
session |
HttpSession类的实例 |
application |
ServletContext类的实例,与应用上下文有关 |
config |
ServletConfig类的实例 |
pageContext |
PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page |
类似于Java类中的this关键字 |
Exception |
Exception类的对象,代表发生错误的JSP页面中对应的异常对象 |
request对象
request对象是javax.servlet.http.HttpServletRequest 类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。
request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。
response对象
response对象是javax.servlet.http.HttpServletResponse类的实例。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。
response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。
out对象
out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。
最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作。可以在page指令中使用buffered='false'属性来轻松关闭缓存。
JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter新增了一些专为处理缓存而设计的方法。还有就是,JspWriter类会抛出IOExceptions异常,而PrintWriter不会。
下表列出了我们将会用来输出boolean,char,int,double,Srtring,object等类型数据的重要方法:
方法
描述
out.print(dataType dt) |
输出Type类型的值 |
out.println(dataType dt) |
输出Type类型的值然后换行 |
out.flush() |
刷新输出流 |
session对象
session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。
session对象用来跟踪在各个客户端请求间的会话。
application对象
application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。
这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。
通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性。
config对象
config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象。这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。
以下是config对象的使用方法,不是很重要,所以不常用:
config.getServletName();
它返回包含在<servlet-name>元素中的servlet名字,注意,<servlet-name>元素在 WEB-INF\web.xml 文件中定义。
pageContext 对象
pageContext对象是javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面。
这个对象主要用来访问页面信息,同时过滤掉大部分实现细节。
这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。
pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等。
PageContext类定义了一些字段,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE。它也提供了40余种方法,有一半继承自javax.servlet.jsp.JspContext 类。
其中一个重要的方法就是removeArribute(),它可接受一个或两个参数。比如,pageContext.removeArribute("attrName")移除四个scope中相关属性,但是下面这种方法只移除特定scope中的相关属性:
pageContext.removeAttribute("attrName", PAGE_SCOPE);
page 对象
这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。
page 对象就是this对象的同义词。
exception 对象
exception 对象包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应。
分享到:
相关推荐
### JSP常用方法整理:深入理解与应用 JSP(JavaServer Pages)是Sun Microsystems公司推出的服务器端技术,用于创建动态网页。它结合了HTML、XML标记语言与Java编程语言的功能,使得在Web应用程序中嵌入Java代码...
**一、JSP基础语法** 1. **注释** - **显示注释**:客户端可见,使用`<!-- 注释内容 -->`。 - **隐式注释**:客户端不可见,有三种格式: - 单行注释:`// 注释内容` - 多行注释:`/* 注释内容 */` - JSP注释...
### j2EE基础概念(总结) ...以上是基于提供的摘要内容整理的j2EE基础概念总结,涵盖了Java基础、JSP、Servlet、JDBC、XML、JavaScript、EJB、MVC和CORBA等方面的关键知识点。这些概念对于理解和掌握j2EE框架非常重要。
1. **基础概念** - **分页**: 分页是将大量数据分为多个部分,每次只显示一部分,以提高页面加载速度和用户浏览效率。 - **JSP**: JavaServer Pages,是一种动态网页技术,它允许在服务器端嵌入Java代码,使得网页...
提供的"JSP第三版整理课件.rar"可能包含JSP的各个章节内容,涵盖基本概念、语法、生命周期、内置对象、EL和JSTL的使用等。通过这些课件,初学者可以系统地了解和掌握JSP技术,为进一步深入学习Java Web开发打下坚实...
本综合整理的**jsp课件**旨在为初学者提供一个系统性的学习路径,内容涵盖了JSP的基础概念、语法特性、生命周期、指令元素、脚本元素、动作元素以及与其他Java Web技术如Servlet、JSTL、EL表达式等的协同工作。...
这篇文档主要涵盖了JSP的基础、入门和高级概念,包括了请求转发、重定向、session和cookie的使用,以及javabean和MVC(Model-View-Controller)架构与servlet的相关知识。以下是这些知识点的详细说明: 1. **JSP...
总之,《jsp&servlet电子书》是学习JSP和Servlet的理想教材,无论你是初学者还是有一定基础的开发者,都能从中获益匪浅。通过阅读这本书,你将能够熟练地运用这两种技术构建高效的Web应用程序,解决实际开发中的各种...
【Jsp教学ppt课件(中)】是一个关于JavaServer Pages(JSP)技术的教育资料,由作者原创整理并分享。这份课件是整个系列的中篇,旨在帮助学习者深入理解JSP的核心概念和实际应用。由于内容较多,作者将其分为上、中、...
在"java++jsp+网络电视代码源码整理"这个项目中,我们主要探讨的是如何使用Java和JSP技术来构建一个网络电视应用。Java是一种广泛使用的编程语言,特别是在服务器端开发中,而JSP(JavaServer Pages)是Java Web应用...
通过这些网址,你可以深入学习JSP的各个方面,从基础概念到高级特性和最佳实践,不断拓展自己的知识领域。在实际项目中,结合Java后端框架(如Spring MVC)和数据库技术,可以构建高效、稳定的Web应用。
本资源"JSP语法(中华电脑书库 整理制作).chm"显然是一份关于JSP语法的详细教程,旨在帮助学习者深入理解并掌握JSP的核心概念和技术。 1. **JSP基本结构**:JSP文件通常包含HTML标记和JSP元素,如指令(directives)...
这份"JavaWEB基础知识整理.rar"压缩包提供了一份详细的Java Web开发基础教程,适合初学者和有一定经验的开发者进行复习和巩固。以下是对其中核心知识点的详细解读: 1. **Java Web概述** - Java Web开发主要涉及...
然后在其他受保护的页面(如`welcome.jsp`)中,检查Session中是否存在这个属性来判断用户是否已登录。如果用户尝试直接访问受保护页面而Session中没有登录信息,服务器可以重定向他们到登录页面。 4. Session的...
- **核心概念**:Java由Sun Microsystems(现已被Oracle收购)开发,基于C++但去除了指针等复杂特性。它采用“一次编写,到处运行”的理念,因为Java虚拟机(JVM)可以在任何支持Java的平台上运行。 - **类库**:...
1. "jsp编程技巧1.txt":这可能是一个文本文件,其中详细讲解了JSP编程的一些基础技巧或者高级用法,可能是作者的经验总结或者是对JSP技术的深入解析。 2. "www.pudn.com.txt":这个文件名暗示它可能来源于PUDN(一...
JSP(Java Server Pages)是一种动态网页技术,常...这些知识点涵盖了JSP的基础概念、服务器配置、JSP页面结构、Servlet生命周期、HTTP通信、数据库交互等核心内容,对于准备JSP考试的学生来说是非常重要的复习材料。
#### 一、基础概念与技术背景 - **JSP (JavaServer Pages)**:由Sun Microsystems公司倡导,并联合其他多家公司共同制定的一种动态网页技术标准。这种技术允许开发者在传统的HTML文件中嵌入Java代码片段(Scriptlet...
综上所述,"JSP精华文章离线版.zip"这个压缩包很可能是包含了一系列关于JSP基础、进阶以及实践应用的文章,对于初学者来说,这是一个很好的学习资源,能够帮助他们系统地理解和掌握JSP技术。通过阅读这些文章,读者...