`

JSP指令与标签

阅读更多

 

1.  JSP编译指令(3)

JSP的编译指令是通知JSP引擎(TomcatWebLogic)的消息,它不直接生成输出。

JSP引擎的工作原理:

当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤:

1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序

2JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class

3JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端

以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。

编译指令都有其默认值,因此无须为每个指令设置其值。

常见的编译指令有3个:

 (1)、page:是针对当前页面的指令;

 (2)、include:用于指定包含另一个页面;

 (3)、taglib:用于定义和访问自定义标签。

使用编译指定的语法格式如下:

<%@ 编译指令名 属性1="属性值" 属性2="属性值" ...%>

1.1.       page

针对当前页面的指令,通常位于JSP页面的顶端,一个JSP页面可以使用多page指令。

page指令格式如下:

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<%@ page import="java.sql.*" %>

 

常用的page的属性如下:

(1)、contentType:用于设定生成网页的文件格式和编码字符集,即MIME类型和页面字符集类型,默认MIME类型是text/html,默认的字符集类型为:ISO-8859-1

(2)、language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,所以该属性的值通常都是java

(3)、errorPage:指定错误处理页面,如果本页面产生了异常或者错误,而该页面没有对应的处理代码,则会自动调用该属性指定的JSP页面;

(4)、pageEncoding:指定生成网页的编码字符集;

(5)、import:用于导入包。下面几个包是默认自动导入的,不需要显示导入。默认导入的包有:java.lang.*javax.servlet.*javax.servlet.jsp.*javax.servlet.http.*

 

1.2.       include

语法格式为:<%@ include file="要包含的页面路径" %>

等价于<jsp:include file=””/>?他们都是静态包含,

注意和<jsp:include page=””/>动态包含的区别。

 

1.3.       taglib

用于定义和访问自定义标签。

2.  JSP动作指令(7)

动作指令和编译指令不同,编译指令是通知Servlet引擎如何处理消息,而动作指令只是运行时的动作。

 编译指令在将JSP编译成Servlet时起作用;而处理指令通常可替换成JSP脚本,它只是JSP脚本的标准化写法。

u        jsp:forward:执行页面转向,将请求的处理转发到下一个页面。 

u        jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。 

u        jsp:include:用于动态引入一个JSP页面。 

u        jsp:plugin:用于下载JavaBeanApplet到客户端执行。 

u        jsp:useBean:创建一个JavaBean的实例。 

u        jsp:setProperty:设置JavaBean实例的属性值。 

u        jsp:getProperty:输出JavaBean实例的属性值

2.1.       jsp:forward指令

      jsp:forward指令用于将页面响应转发到另外的页面。既可以转发到静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet中。

    jsp:forward指令的语法格式:

<jsp:forward page="path<%expression%>">

<jsp:param name="" value="" />

</jsp:forward>

下面使用jsp:forward动作指令来转发用户请求:

jsp-forward.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"

   pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>forward的原始页面</title>

</head>

<body>

<h2>这是jsp:forward的原始页面</h2>

<jsp:forward page="forward-result.jsp">

   <jsp:param value="21" name="age"/>

   <jsp:param value="evan" name="name"/>

</jsp:forward>

</body>

</html>

将客户端请求转发到forward-result.jsp页面,转发时增加了二个请求参数:一个参数名为age,参数值为21,另一个参数名为name,参数值为evan

  在forward-result.jsp页面中,可以通过request内置对象来获取增加的请求参数值。

forward-result.jsp页面代码如下:

<%@ page language="java" contentType="text/html; charset=utf-8"

   pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>forward跳转之后的页面</title>

</head>

<body>

<h2>这是从jsp-forward页面跳转之后到得页面</h2>

<!-- 使用request内置队形获取agename参数的值  -->

姓名:<%=request.getParameter("name") %>

年龄:<%=request.getParameter("age") %>

</body>

</html>

结果如下:


 

注意:JSP页面中有中文时,为防止出现中文乱码,使用UTF-8字符集。

2.2.       jsp:include指令

jsp:include指令是一个动态include指令,也可以包含某个页面,它不会导入被include页面的编译指令,仅仅将被导入页面的body内容插入本页面。(只导入body的内容)

include指令的格式如下:

<jsp:include page="<url|expressions>" flush='true'/>

或者为:

<jsp:include page="<url|expressions>" flush='true'>

   <jsp:param name="请求参数名" value="请求参数值" />

</jsp:include>

 

flush属性用于指定输出缓存是否转移到被导入文件中。

 

实例:

jsp-include.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>JSP:include指令测试</title>

</head>

<body>

<h2>JSP:include指令测试,这是jsp-include.jsp页面</h2>

<br>

<!-- 使用动态include指令导入页面 -->

<jsp:include page="jsp-include1.jsp" />

</body>

</html>

jsp-include1.jsp代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

   pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>JSP:include指令测试</title>

</head>

<body>

<h2>JSP:include指令测试,这是jsp-include1.jsp页面</h2>

</body>

</html>

执行结果如下:


  

2.3.    jsp:useBeanjsp:setPropertyjsp:getProperty指令

   这三个指令都是和javaBean相关的指令,其中:

jsp:useBean指令用于在JSP页面中初始化一个JAVA实例;

jsp:setProperty指令用于为JavaBean实例的属性设置值;

sp:getProperty指令用于输出JavaBean实例的属性。

 

jsp:useBean指令的语法格式为:

<jsp:useBean id="name"  class="classesname" scope="page | request | session | application"  />

其中,id属性为JavaBean的实例名,class属性确定JavaBean的实现类。

      scope属性用于指定JavaBean实例的作用范围,该范围有如下4个值:

     (1)、page:该JavaBean实例仅在该页面中有效;

     (2)、request:该JavaBean实例在本次请求中有效;

     (3)、session:该JavaBean实例在本次session内有效;

     (4)、application:该JavaBean实例在本应用内一直有效。

 

jsp:setProperty指令的语法格式如下:

<jsp:setProperty name="BeanName" proterty="propertyName" value="value" />

其中,name属性确定需要设定JavaBean的实例名;

      proterty属性确定需要设置的属性名;

      value属性则确定需要设置的属性值。

 

jsp:getProperty指令的语法格式如下:

<jsp:getProperty name="BeanName" proterty="propertyName" />

其中,name属性确定需要输出JavaBean的实例名;

proterty属性确定需要输出的属性名;

 

2.4.       param指令

param用于设置参数值,这个指令本身不能单独使用,因此单独的param指令没有实际意义,param指令可以与以下指令结合使用:

<jsp:include  ..

<jsp:forward..

<jsp:plugin ..

 

3.  JSP标签

Jsp动作指令通常也被称之为标签

3.1.       jsp 注释

JSP注释:<%--  注释内容  --%>

HTML注释:<!-- 注释内容 -->

在jsp声明和jsp脚步中你还可以使用java注释

3.2.       jsp声明

   <!%  %>可以声明变量和方法

3.3.       jsp脚本

<% %>

 

3.4.       jsp表达式

   <%=表达式%>输出表达式的值

3.5.       自定义标签

 说起自定义标签我们先来说说javabean

JavaBean其实就是一个类,一个JavaBean实例叫做:Bean,它通过具体的“方法”实现相应的逻辑功能,并且为外部操作提供接口,外部JSP通过这些接口可以方便地使用它实现逻辑功能,这样就实现了代码的重用以及逻辑功能与页面显示层分离,它的好处就是解决了在JSP页面中实现逻辑功能会出现相同的代码在很多文件中出现导致不利于维护和更新的缺陷,并且可以逻辑功能程序员和页面编辑员的分工,让其各自在各自的领域里全心工作。

 自定义标签:

自定义标签其实也是一个类,它封装了相应的逻辑功能,和JavaBean很类似,但是它们之间存在很大的区别:JavaBean通过提供接口供外部操作调用实现逻辑功能,而自定义标签是通过标签的形式为外部操作实现逻辑功能,例如JSP已有的标签:<jsp:forward>,它的好处就是调用十分方便,形式:<jsp:forward  page="转向页面的url">就实现了其功能,其中的“JSP”代表的是标签库名,“forward”代表的是标签名,自定义标签的最终形式也很类似:<a:b>其中的a代表的是自定义库名,b代表的是自定义标签名,当然它是包含在a中的。

 

  • 大小: 27.2 KB
  • 大小: 100.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    jsp学习包含标签的使用

    jsp学习,ul表达式,page(页面)指令,include(包含)指令,taglib(导入标签库)指令

    JSP 指令

    JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。 语法格式如下: 指令可以有很多个属性,它们以键值对的形式存在,并用逗号隔开。 JSP中的三种指令标签: 指令 描述 ...

    JSP标签JSP 语法的基本原理

    JSP指令语法,基本原理,注释,脚本的方法

    JSP常见的三个编译指令page、include、taglib

    jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指令元素(page指令/include指令/taglib指令)复习整理基于jsp:included的使用与jsp:param乱码...

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt 完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt 完整版Java JSP web开发教程 08_JavaBean和JSP中(共26页).ppt 完整版Java JSP web...

    完整版Java JSP web开发教程 11_JSP 标准标签库(共21页).ppt

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt 完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt 完整版Java JSP web开发教程 08_JavaBean和JSP中(共26页).ppt 完整版Java JSP web...

    JAVA/JSP 题库

    JAVA程序员JSP开发员面试必备的宝典。面向职场的高级宝典。

    JSP程序设计与案例实战

    内容摘要:JSP程序设计与案例实战PPT,里面覆盖了网页前端“三剑客”知识点、如何安装配置JSP运行环境、JSP脚本元素(JSP表达式、声明、Script)及其指令(include指令、page指令、taglib指令)、JSP隐式对象(out、...

    Java Web初级编程:JSP 页面元素.pptx

    指令 Page 指令 Include 指令 JSP 页面元素

    Java Web应用开发:JSP技术基础.pptx

    JSP指令—page指令;page指令用例;Page指令的属性;JSP声明;Java程序片段;JSP中的Java程序片段和模板文本;查看对应的servlet代码;练习;Java表达式;JSP中的注释—Java注释;JSP中的注释--HTML注释;使用&lt;!-- --&gt; 将java...

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt 完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt 完整版Java JSP web开发教程 08_JavaBean和JSP中(共26页).ppt 完整版Java JSP web...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...

    JSP基础教程.doc

    2 JSP 与 ASP 的简单比较 2 3 如何安装和启动 3 4 JSP简单示例 3 5 统一的网站界面 4 6 JSP语法概要 6 6.1 HTML 注释 6 6.2 隐藏注释 6 6.3 声明 7 6.4 表达式 8 6.5 Scriptlet 9 6.6 Page 指令 10 6.7 Taglib 指令 ...

    完整版Java JSP web开发教程 全套PPT课件资料 共13个章节.rar

    完整版Java JSP web开发教程 06_JSP脚本和指令的使用(共22页).ppt 完整版Java JSP web开发教程 07_JSP隐式对象(共32页).ppt 完整版Java JSP web开发教程 08_JavaBean和JSP中(共26页).ppt 完整版Java JSP web...

    Jsp通用范例开发金典光盘源代码

    全书分为16章,内容包括HTML语句的基本语法,JSP指令与动作,JSP内部对象,JavaScript脚本在JSP编程中的使用,JavaBean在JSP中的基本概念及其属性与方法,数据库的连接方式,绘图方法,实现邮件的收发功能,打印Word...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    第17章 jsp标准标签库(jstl) 490 17.1 jstl简介 490 17.2 配置jstl 491 17.3 core标签库 491 17.3.1 一般用途的标签 492 17.3.2 条件标签 496 17.3.3 迭代标签 498 17.3.4 url相关的标签 501 17.4 i18n...

    jsp基础语法

    学习JSP内部指令和标签,了解JSP程序的结构,JSP各种内部指令,JSP表达式,JSP的变量声明和方法声明,学习用JSP设计简单的动态网页。 二、实验内容及要求 1.利用所学JSP语法规则完成动态网页的设计。 2.学习如何...

    JSP基础知识总结(JSP技术,XML配置,会话,JavaBean)

    第二部分就是Jsp技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库. 第三部分就是过滤器的设计模式,包括过滤器和MVC设计模式. 目录 [隐藏] ...

    jsp动态网页学习

    jsp指令标签(page,taglib,include)、动态标签(jsp:include,jsp:forward,jsp:param,jsp:useBean,jsp:setProperty,jsp:getProperty),案例demo

Global site tag (gtag.js) - Google Analytics