JSP概述和页面技术

JSP是Servlet更高级别的扩展,关于JSP的知识主要有JSP的页面构成、执行过程、字符转译、隐式对象等技术。知识点包括:

1、JSP概述    2、JSP页面技术      3、JSP的执行过程

4、JSP的异常处理    5、JSP的隐式对象    6、JSP的设计模式。

我们今天主要来讲解一下JSP的概述和页面的构成。首先我们先来讲解一下JSP的概述:

说到JSP我们不得不先来讲一下Servlet,所以我们下面说一说

纯粹基于Servlet的方法存在一些弊端:

1、开发者和维护应用程序的成员必须对Java编程知识面有全面的了解,因为处理代码和处理html元素混合在一块。

2、如果要改变应用的外观,或者增加对新客户类型的支持,则需要对Servlet代码进行更新和重编译。

3、在设计应用界面时,很难充分利用Web页面开发工具。如果这种工具用于开发Web页面布局,所生成的html就必须手工地嵌入到Servlet代码中,这个过程相当耗费时间,很容易出错。

面对上面出现的问题Sun Microsystems公司倡导开发了以Java语言作为脚本语言,建立在Servlet规范提供的功能之上的动态网页技术,用来在网页上显示动态内容的JSP(Java Server Pages)。其网页是由Java片段或JSP标记等构成JSP网页,该网页后缀名为“.jsp”。

JSP技术的应用是一次编写,就可以在任何符合Java语法结构的环境上运行。因为Sun通过开放源代码,使许多公司一起参与建立即使标准,JSP应用程序接口(API)毫无疑问已经取得成功,并将随Java组织不断开放扩大而继续完善。

JSP的成功取决于它自身的优点,主要包括:

1、简单性和有效性    2、程序的独立性   3、程序的兼容性

4、程序的可重用性

我们说完了JSP的概述,相信大家对JSP有了简单的认识,下面我们开始讲解JSP页面的构成

JSP页面就是带有JSP元素的常规Web页面,它由静态内容和动态内容构成。静态内容主要是指HTML元素,而动态内容主要是指JSP元素。

其中JSP元素主要包括:指令元素、脚本元素、动作元素、注视等内容。今天我们只来说一下指令元素和脚本元素。

指令元素,它主要用于为转换阶段提供JSP页面的相关信息,指令不会产生任何输出到当前的输出流中,它指定了有关页面本身的信息,这些信息在请求期间一直保持不变。而且所有的JSP指令元素的作用范围为当前的JSP页面。也就是说指令元素只影响它所在的JSP页面,对其他的JSP页面没有影响。

JSP指令的语法如下:

<%@ directive{attr="value"}* %>

在<和%之间,%和@之间不能用空格,%和>之间也不能用空格。

JSP的指令元素有三种:即page、include和taglib。

page指令:该指令用于整个页面,定义与页面相关的属性,它是JSP页面和容器的通信员。而且该指令可以出现在JSP页面的任何地方,但是无论在哪,它永远是作用在整个页面,所以我们通常将其放于开头。其语法是:<%@ page 属性名1="值1" 属性名2="值2" ... %>。

注意:可以使用多个page指令,但对于每个页只能声明给定属性一次,除了import属性外。而且属性名称是大小写敏感的。

page的属性共有13个,最常用的属性有:

import=“导包列表”:表示当前JSP文件引入需要使用的类或接口。多个类、包名之间用“,”隔开。例如%@page import=”java.util.*,java.i0.*”%或者%@page import=“java.util.*”%

%@page import=“java.io.*”%

import属性是唯一一个可以在同一个页面中出现多次的属性,而且java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*。都是已经被隐含的引入,包中的类、接口等不需要引入就可以使用。

language=“scriptingLangeuage”:指定当前的JSP文件中的程序代码是使用何种编程语言编写的,目前属性的值只能是java。

contentType=“ctinfo”:设置当前JSP页面的向客户浏览器输出内容的MIME类型和字符编码集。客户端的浏览器会根据你在contentType中指定的MIME类型和字符集代码来显示Servlet输出的内容。(MIME类型是设定某种扩展名的文件用一种应用程序来打开的方式类型,该扩展名文件被访问的时候,浏览器会自动指定应用程序来打开)。例:<%@page contentType=”text/html;charset=utf-8”%>

pageEncoding =“peingo”:设置当前JSP页面使用的字符编码。如果设置了这个属性,则JSP页面的字符编码就是它指定的字符集,如果没有就使用contentType属性的值,如果都没有,页面默认的是ISO-8859-1。

session=”true|false”:指示当前JSP文件中session隐含对象是否有效,如果为true表示session对象有效,可以使用,否则session对象无效,不能使用

buffer=“none|8kb|sizekb”:指定JSP文件中out对象使用的缓冲区大小。

autoFlush=“true|false”:设置当输出缓冲区已经满了是否自动flush。需注意,如果buffer设定为none,则该属性就不能设成false,否则JSP文件运行时会抛出异常。

errorPage=“relativeURL”:设置当前JSP页面中代码出现异常后,专门处理异常的页面。

isErrorPage=“true|false”:设置当前JSP页面是否为专门处理异常的页面,如果为true,则该页面可以通过exception内置对象,处理其他JSP页面转过来的异常。

Include指令:它用于JSP页面中包含一个文件,该文件可以是HTML网页、文本文件或一段Java代码,用它可以简化页面代码,提高代码的重要性。它的语法:<%@ include file=”相对于当前文件的URL”%>,URL为被包含文件的相对路径,如果以“/”开始,相对于这个应该的根目录,如果没有以”/”开头,则相对于当前的JSP页面。(在包含的文件中,最好不要使用<html></html><body></body>等标签,以为JSP页面中已经有了这些标签)。

Taglib指令:它允许页面使用用户制定的标签,语法如下:

<%@taglib (uri="具有唯一标识和前缀相关的标签描述符地址" prefix="前缀")%>

指令元素我们就说这些,下面我们在讲一下脚本元素

使用JSP脚本元素可以将Java代码嵌入到JSP页面中,这些Java代码将出现在由当前JSP页面生成的Servlet中,使JSP将静态内容与动态内容分离出来。

表达式:表达式标签在JSP请求处理阶段进行运算,所得的结果转换成字符串,与静态标签数据组合在一起。表达式在页面的位置,就是该表达式计算结果显示的位置。语法:<%=expression%>。

(不能用分号;来作为表达式的结束符;表达式必须是一个合法的Java表达式。表达式必须有一个返回值,且返回值被转换成字符串。

)。

脚本:它是在<% %>里嵌入的Java代码,这里的Java代码和一般的Java代码没有什么区别,所以每一条语句同样要以分号“;”结束,这和表达式是不相同的。语法:<%code%>。

声明:它用来定义当前JSP页面中使用的变量和方法,并且它中定义的变脸为JSP页面的全局变量,在JSP转化成Servlet后,定义的变量转化为类变量,方法转化为Servlet中的方法。

语法如下:<%! String str=“hello” ;%>

<%! public static final String DEFAULT_NAME=“World”;%>

<%! public String getName(HttpServletRequest request){

return request.getParameter(“name”);

%>

注意:变量的声明必须以;结尾,该声明仅在一个页面中有效,如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@include%>或<jsp:include>元素包含进来。

JSP概述和页面技术相关推荐

  1. Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由

    服务器页面技术的优点 传统服务器页面技术如jsp,aspx,php 的最大优点就是隔离性非常好,强制解耦,又省去了手工定义路由的麻烦,文件路径就直接表示了路由,对于新手非常友好,反观node.js的框 ...

  2. 动态页面技术(JSP/EL/JSTL)

    1 JSP技术 1.1 jsp脚本和注释 jsp脚本:   1) <%java代码%> ----- 内部的java代码翻译到service方法的内部   2) <%=java变量或表 ...

  3. JavaWeb——动态页面技术(JSP/EL/JSTL)

    静态页面与动态页面: 1.动态网页,是指跟静态网页相对的一种网页编程技术.静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了--除非你修改页面代码.而动态网页则不然,页面代码 ...

  4. jsp基础、el技术、jstl标签、javaEE的开发模式

    一.jsp技术基础 1.jsp脚本和注释 jsp脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部 2)<%=java变量或表达式> ...

  5. JSP程序设计实训(一)—— JSP概述

    下一篇:JSP程序设计实训--JSP开发平台与Tomcat服务器 JSP概述 一.学习目的 了解JSP技术的基础理论知识,要求了解JSP的工作原理以及使用JSP开发Web项目的主要方式. 二.Web技 ...

  6. JSP动态网页开发技术

    一.学习目标 1.JSP概述 2.JSP指令 3. JSP 隐式对象 二.重点知识 1.JSP概述:JSP是什么? 1)JSP全称Java Server Pages,是一种动态网页开发技术.它使用JS ...

  7. JSP (java服务器页面)

    JSP (java服务器页面) 本质是servlet 底层是java文件 具体内容包含servlet中的内容 并且可以输出 pre标签 预格式化标签 能保留多个空格和tab缩进的位置 (不需要 空格) ...

  8. 基于华为云obs实现文件上传下载(技术栈mysql+springboot+Maven+jsp+java)的技术分享

    基于华为云obs实现文件上传下载(技术栈mysql+springboot+jsp+java)的技术分享 obs实现文件上传下载 前言 一.OBS是什么? 二.使用步骤 1.1 前期准备 2 工具的内容 ...

  9. java 转jsp_【转】JSP三种页面跳转方式

    使用JSP大约有下列三种跳转方式: 1. response.sendRedirect(); 2. response.setHeader("Location","" ...

最新文章

  1. 集合框架Map、List、Set
  2. 优化Image设置Tiled类型产生过多的三角形顶点
  3. P2825 [HEOI2016/TJOI2016]游戏
  4. C++:21---仿函数
  5. 微软、苹果、谷歌、三星……这些区块链中的科技巨头原来已经做了这么多事!...
  6. wmaster0接口的简单介绍
  7. java多线程之守护线程以及Join方法
  8. 高德地图模仿微信发送位置实现拾取坐标
  9. 最新信恒第四方支付系统源码+服务器直接打包
  10. 3DMAX里怎样打包贴材质的文件不丢失贴图材质?
  11. Mobilenet-ssd 目标检测
  12. 夜神模拟器--安卓模拟神器
  13. JAVA SSM毕业设计——基于SSM的校园二手交易平台的设计与实现
  14. 游戏开发物语方案点数分配_《游戏开发物语》官方超全新手攻略和名词解析!...
  15. iOS开发 触觉体验(UIFeedbackGenerator)的使用
  16. 各种图片、文字无缝滚动
  17. 深度强化学习系列: 多巴胺(Dopamine)环境配置和实例分析
  18. 基于STM32F103设计的智能门锁(支持多种开锁解锁方式)
  19. 【中国银联】数据挖掘笔试+三面面经
  20. 什么是DCDC电源电涌,来源是哪里

热门文章

  1. 皮卡丘(pikachu)XXE
  2. UG/NX 二次开发(C#)自动出2D零件图思路
  3. 目标检测——使用yolov6调用本地摄像头进行实时检测
  4. python-opencv 读取摄像头并保存为.mp4视频
  5. Java延时订单处理(上)- - 抛砖引玉
  6. War3快捷键大全—常用的键
  7. 一文带你快速了解 Java 线上问题快速诊断神器 Arthas
  8. docker build 18.04 镜像出现 Configuring tzdata - Please select the geographic area in which you live
  9. 计算机网络 谢希仁 第八版 学习笔记
  10. 借助CatGPT让turtlesim小乌龟画曲线