`

JSP整理(一) 基础概念

jsp 
阅读更多

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常用方法整理,包括servlet等

    ### JSP常用方法整理:深入理解与应用 JSP(JavaServer Pages)是Sun Microsystems公司推出的服务器端技术,用于创建动态网页。它结合了HTML、XML标记语言与Java编程语言的功能,使得在Web应用程序中嵌入Java代码...

    JSP所有知识点详细整理

    **一、JSP基础语法** 1. **注释** - **显示注释**:客户端可见,使用`&lt;!-- 注释内容 --&gt;`。 - **隐式注释**:客户端不可见,有三种格式: - 单行注释:`// 注释内容` - 多行注释:`/* 注释内容 */` - JSP注释...

    j2EE基础概念(总结)

    ### j2EE基础概念(总结) ...以上是基于提供的摘要内容整理的j2EE基础概念总结,涵盖了Java基础、JSP、Servlet、JDBC、XML、JavaScript、EJB、MVC和CORBA等方面的关键知识点。这些概念对于理解和掌握j2EE框架非常重要。

    jsp分页(个人整理)

    1. **基础概念** - **分页**: 分页是将大量数据分为多个部分,每次只显示一部分,以提高页面加载速度和用户浏览效率。 - **JSP**: JavaServer Pages,是一种动态网页技术,它允许在服务器端嵌入Java代码,使得网页...

    JSP第三版整理课件.rar

    提供的"JSP第三版整理课件.rar"可能包含JSP的各个章节内容,涵盖基本概念、语法、生命周期、内置对象、EL和JSTL的使用等。通过这些课件,初学者可以系统地了解和掌握JSP技术,为进一步深入学习Java Web开发打下坚实...

    jsp 综合整理的课件,方便各位学习者查阅和学习

    本综合整理的**jsp课件**旨在为初学者提供一个系统性的学习路径,内容涵盖了JSP的基础概念、语法特性、生命周期、指令元素、脚本元素、动作元素以及与其他Java Web技术如Servlet、JSTL、EL表达式等的协同工作。...

    JSP系统的整理.docx

    这篇文档主要涵盖了JSP的基础、入门和高级概念,包括了请求转发、重定向、session和cookie的使用,以及javabean和MVC(Model-View-Controller)架构与servlet的相关知识。以下是这些知识点的详细说明: 1. **JSP...

    jsp&servlet电子书

    总之,《jsp&servlet电子书》是学习JSP和Servlet的理想教材,无论你是初学者还是有一定基础的开发者,都能从中获益匪浅。通过阅读这本书,你将能够熟练地运用这两种技术构建高效的Web应用程序,解决实际开发中的各种...

    Jsp教学ppt课件(中)

    【Jsp教学ppt课件(中)】是一个关于JavaServer Pages(JSP)技术的教育资料,由作者原创整理并分享。这份课件是整个系列的中篇,旨在帮助学习者深入理解JSP的核心概念和实际应用。由于内容较多,作者将其分为上、中、...

    java++jsp+网络电视代码源码整理

    在"java++jsp+网络电视代码源码整理"这个项目中,我们主要探讨的是如何使用Java和JSP技术来构建一个网络电视应用。Java是一种广泛使用的编程语言,特别是在服务器端开发中,而JSP(JavaServer Pages)是Java Web应用...

    有关jsp的网址大全,经典

    通过这些网址,你可以深入学习JSP的各个方面,从基础概念到高级特性和最佳实践,不断拓展自己的知识领域。在实际项目中,结合Java后端框架(如Spring MVC)和数据库技术,可以构建高效、稳定的Web应用。

    JSP语法(中华电脑书库 整理制作).chm

    本资源"JSP语法(中华电脑书库 整理制作).chm"显然是一份关于JSP语法的详细教程,旨在帮助学习者深入理解并掌握JSP的核心概念和技术。 1. **JSP基本结构**:JSP文件通常包含HTML标记和JSP元素,如指令(directives)...

    JavaWEB基础知识整理.rar_Java WEB 开发基础知识整理

    这份"JavaWEB基础知识整理.rar"压缩包提供了一份详细的Java Web开发基础教程,适合初学者和有一定经验的开发者进行复习和巩固。以下是对其中核心知识点的详细解读: 1. **Java Web概述** - Java Web开发主要涉及...

    7、JAVA培训之JSP基础05_session对象笔记[整理].pdf

    然后在其他受保护的页面(如`welcome.jsp`)中,检查Session中是否存在这个属性来判断用户是否已登录。如果用户尝试直接访问受保护页面而Session中没有登录信息,服务器可以重定向他们到登录页面。 4. Session的...

    java+jsp+JScript技术组件源码整理

    - **核心概念**:Java由Sun Microsystems(现已被Oracle收购)开发,基于C++但去除了指针等复杂特性。它采用“一次编写,到处运行”的理念,因为Java虚拟机(JVM)可以在任何支持Java的平台上运行。 - **类库**:...

    jsp.rar_java 实例_jsp

    1. "jsp编程技巧1.txt":这可能是一个文本文件,其中详细讲解了JSP编程的一些基础技巧或者高级用法,可能是作者的经验总结或者是对JSP技术的深入解析。 2. "www.pudn.com.txt":这个文件名暗示它可能来源于PUDN(一...

    考试急救!整理的JSP考试题

    JSP(Java Server Pages)是一种动态网页技术,常...这些知识点涵盖了JSP的基础概念、服务器配置、JSP页面结构、Servlet生命周期、HTTP通信、数据库交互等核心内容,对于准备JSP考试的学生来说是非常重要的复习材料。

    JSP期末复习题(word文档)

    #### 一、基础概念与技术背景 - **JSP (JavaServer Pages)**:由Sun Microsystems公司倡导,并联合其他多家公司共同制定的一种动态网页技术标准。这种技术允许开发者在传统的HTML文件中嵌入Java代码片段(Scriptlet...

    JSP精华文章离线版.zip

    综上所述,"JSP精华文章离线版.zip"这个压缩包很可能是包含了一系列关于JSP基础、进阶以及实践应用的文章,对于初学者来说,这是一个很好的学习资源,能够帮助他们系统地理解和掌握JSP技术。通过阅读这些文章,读者...

Global site tag (gtag.js) - Google Analytics