`
zwdsmileface
  • 浏览: 155274 次
社区版块
存档分类
最新评论

Jsp三大指令

    博客分类:
  • jsp
阅读更多
JSP页面中的三大指令:
page include taglib

一、Page指令的介绍:
对整个页面的配置信息的指令。全部都是当前页面的配置信息。去掉JSP的Page指令就是一个HTML文件。
page指令怎么加:
<%@ page ... %>
里面的属性:
autoFlush是否清除缓存,默认True,不用修改。
ContentType页面的类型,utf-8、GBK、GB2312、GB18030、ISO-8859-1注意:他们之间不可以混用。mime类型。把报头信息改了就会发生改变。
errorPage错误页面,输入一个另外页面的路径。还是比较常用。请求转发的方式。
isErrorPage为True当前页面就是错误处理页面。此页面有exception对象。报异常的时候链接不到页面的位置,因为找的是转换的Servlet中的信息,所以在显示的JSP页面中定位不到。无论页面中是否有isErrorPage,只要是errorPage属性指定跳转的页面就可以跳转和错误页面中是否设置isErrorPage属性无关。
import导入类,导入包。
isElIgnored是否屏蔽EL表达式,默认为False,不用管。
isThreadSafe是否允许同步,何谓同步,和线程有关,
开启一条应用是一个进程,一个进程是由多条线程组成的。True 允许多条线程的同步访问,线程不安全。由功能和环境来判断。页面允许是线程不安全的。数据是怎么来的是线程安全的。
数据的表现可以是线程不安全,数据的来源必须是线程安全。
language脚本应用语言(默认为java)。
pageEncoding设置当前页面的字符编码集。
session当前页面是否允许使用session(True、False)
extends继承,更换JSP的继承类,默认JSP继承JspBase类。改继承类对于开发一般用不到。

例如:
执行数据库操作的J S P页面中可以看出,在jsp页面的头部,使p a g e指令:
〈%@ page contentType="text/html; charset=gb2312" language="java" %〉
〈%@ page import="java.sql.*" %〉

其中第二条指令用于导入本页面中使用的类,如果没有通过 page 指令的 import
令导入这些类,则需在脚本中使用全限定类名一一即必须带包名。可见,此处的 import
属性类似于 Java 程序中的 import 关键字的作用。
看下面的 JSP 页面,该页面使用 page 指令的 info 方法指定了 JSP 页面的描述信息,
又使用 getServletInfo 方法输出该描述信息。
〈%@ page contentType="text/html; charset=gb2312" language="java" %〉
<!一指定 info 信息-->
〈%@ page info= this is a jsp" %〉
<lDOCTYPE HTML PUBL "-//W3C//DTD HTML 4.0 Trans tional//EN">
<HTML>
<HEAD>
<TITLE> 测试 page 指令的 info 属性</TITLE>
</HEAD>
<BODY>
<!一输出 info 信息〉
〈% =getServletInfo() %〉
<table>
</BODY>
</HTML>

该页面的执行效果:会在页面输出“this is a jsp”

errorPage 属性的实质是 JSP 的一种异常处理机制, JSP 不要求强制处理异常,即使
该异常是 checked 异常。如果 JSP 页面在运行中抛出未处理的异常,系统将自动跳转到
errorPage 属性指定的页面:如果errorPage 没有指定错误页面,系统则将异常信息呈现
给客户端浏览器一一这是所有的开发者都不愿意见到的场景。
看下面的 JSP 页面,该页面使用了page 指令的 errorPage 属性,该属性指定了对页
面发生异常时的异常处理页面。
〈%@ page contentType="text/html; charset=gb2312" language="java" errorPage="error.jsp"%〉
<lDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 测试 page 指令的 errorPage 属性</TITLE>
</HEAD>
<BODY>
〈%
// 下面代码将出现运行时异常
int a = 6;
int b = 0;
int c = a / b;
%〉
<table>
</BODY>
</HTML>

下面是 error.jsp 页面,该页面本身是错误处理页面,因此将 isErrorPage 设置成 true
〈% @page contentType="text/html; charset=gb2312" language="java" iSErrorPage=
"true" %〉
<lDOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> 出错页面 <IT TLE>
</HEAD>
<BODY>
<! 提醒客户端系统出现异常 >
系统出现异常 <br>
</BODY>
</HTML>

在浏览器中浏览前一个页面的效果就会跳转到出错页面。
如果将前一个页面中 page 指令的 errorPage 属性删除,再次通过浏览器浏览该页面,
执行效果则显示错误信息。

二、include指令
作用:包含,把另一个页面包含在当前页面中。
在本页面中怎么写:
<%@ include file="被包含的页面"%>
一个页面包含另一个页面,将两个页面合二为一,在什么时间合二为一的?页面进行转换Servlet的时候将两者合二为一的。
这种方式有长处也有短处,第一点:虽然访问两个资源文件,但是只会生成一个Servlet,称作静态包含(只会生成一个Servlet,因为转换的时候把其他网页的信息加载进来了)。第二点:如果是Tomcat5.0,被包含页面发生改变,包含页面体现不出来。JavaEE的版本是随着jsp版本和Servlet版本变化的,Tomcat版本越高,支持的Jsp和Servlet版本越高。Tomcat5.0以前被包含页面发生改变,包含页面体现不出来。//理解
所以在以前include指令一般不用,但是现在Tomcat6.0用,Tomcat6.0支持include指令。第三点:包含页面可以访问被包含页面中的变量。在被包含页面中声明的变量在包含中页面中是可以使用的。第四点:包含页面无法向被包含页面传参。需要大量复用的东西需要专门生成一个页面进行处理。

三、taglib指令:申明该JSP文件使用了自定义的标签。
<%@taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
1、uri属性:用来指定标签库的存放位置。
2、prefix属性:指定该标签库必须使用的前缀。
如:<%@taglib uri="http:java.sun.com/.../core" prefix="c" %>

JSP中使用Taglib,用两种方法,这里将两种方法说明如下:

一、仅声明TLD(标签库描述符)的位置

在jsp文件头部,声明:

<%@taglib uri="/WEB-INF/tlds/orataglib_1_0.tld" prefix="ora" %>

举例:在MyEclipse中新建一Web工程,取名为HelloWorldTag。新建一包,包名为mytag

(1)在mytag下,新建一Java类,内容如下:
package mytag;  
import java.io.IOException;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class HelloWorldTag extends TagSupport{
      public int doStartTag() throws JspTagException{
          return EVAL_BODY_INCLUDE;
      }
      public int doEndTag() throws JspTagException{
      try{
              pageContext.getOut().write("Hello World");
          } catch (IOException ex){
               throw new JspTagException("Error!");
          }
      return EVAL_PAGE;
      }
}

(2)在WEB-INF下新建一目录,目录名为tlds,下tlds下面新建一tld文件,命名为hello.tld,内容如下:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
          PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
      "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>myTag</shortname>  
      <tag>
          <name>hello</name>
          <tagclass>mytag.HelloWorldTag</tagclass> 
         <bodycontent>empty</bodycontent>
     </tag>
</taglib>

(3)修改index.jsp页面代码,修改内容如下:

<%@ page language="java"%>
<%@ taglib uri="/WEB-INF/tlds/hello.tld" prefix="mytag"%>
<html>
<body>
<mytag:hello></mytag:hello>
</body>
</html>

(4)运行:在浏览器中输入http://localhost:8082/HelloWorldtag/index.jsp
运行结果为:Hello World
解释:
<mytag:hello></mytag:hello>的作用就是在标签结束后调用了doEndTag() 方法,打印出Hello World
二、定义库名称
这里就不再详细描述了。
2
0
分享到:
评论

相关推荐

    02-JSP脚本元素指令及动作.ppt

    02-JSP脚本元素指令及动作.ppt

    JSP指令和动作熟悉

    本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:fallback&gt;`, `&lt;jsp:plugin&gt;`。 首先,`page`指令是JSP中最高级别的指令,它用于定义整个JSP页面的属性。`...

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    - **指令**:用于配置页面或者影响JSP编译过程,如`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`, `&lt;%@ taglib %&gt;`等。 - **动作元素**:用于调用JSP组件,如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:param&gt;`等。 **3. 注释** ...

    jsp指令,page指令简单介绍

    JSP指令主要有三种类型:`page`、`include`和`taglib`。 **page指令**是JSP指令中最核心的一种,它用于设置整个JSP页面的属性。例如,我们可以使用`page`指令指定页面的编码、导入Java包、声明页面使用的语言等。...

    实验2 JSP指令标记与JSP动作标记(3.20)

    ### 实验2 JSP指令标记与JSP动作标记(3.20)——知识点解析 #### 实验背景及目标 本次实验旨在加深学生对JSP技术的理解与运用能力,特别是针对JSP指令标记与JSP动作标记的学习。通过具体的操作实践,使学生能够熟练...

    2.3 JSP指令 JSP+AJAX

    2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX2.3 JSP指令 JSP+AJAX

    02_javaWeb知识

    ### JavaWeb知识点详解:JSP指令 #### JSP三大指令概览 JSP技术的核心在于其灵活的应用场景和丰富的功能支持。在JavaWeb开发中,JSP页面通过使用三种主要的指令来增强其表现力和逻辑处理能力。这三种指令分别是`...

    Jsp脚本元素指令以及动作课后作业

    **1.1 关于jsp指令描述正确的是:** - **正确答案:A** - **解析:** JSP指令是用来设置JSP页面的一些特性或者行为的,它们以`开始,以`%&gt;`结束。例如`; charset=UTF-8" %&gt;`, 这个指令指定了页面使用的语言和内容...

    JSP脚本和指令的使用.ppt

    jsp语言的基本脚本语言,在WEB开发的领域中能够起到重要的作用

    JSP基本语法指令和动作元素_couldzfw_JSP基本语法、指令和动作元素_

    ### **二、JSP指令** 指令是针对整个JSP页面的配置信息,不直接参与页面的生成。主要有以下几种: 1. ****: 页面指令,用于设置页面的属性,如字符编码、错误页、导入的Java包等。 2. ****: 包含指令,用于将其他...

    JSP指令与动作熟悉

    实验目的:掌握3种脚本、page和include指令、&lt;jsp:include&gt;和&lt;jsp:forward&gt;动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...

    JSP编程技术 编译指令 操作指令

    介绍JSP页面的结构 JSP的编译指令、操作指令和代码 重点介绍JSP常用的六大基本对象: out对象、response对象、request对象、application对象、session对象和cookie对象。

    jsp中include指令静态导入和动态导入的区别详解.docx

    JSP 中 Include 指令静态导入和动态导入的区别详解 JSP 中的 Include 指令可以实现静态导入和动态导入两种方式。静态导入和动态导入是 JSP 中 Include 指令的两种不同的实现方式,它们之间有着明显的区别。 静态...

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

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

    jsp实例源代码《jsp大学使用教程》

    jsp指令可以分为三类:指令、include指令和taglib指令。 4. JSP脚本元素 jsp脚本元素用于在jsp页面中执行Java语句,例如:("Hello World!"); %&gt;,该脚本元素用于在jsp页面中输出“Hello World!”。jsp脚本元素...

    JSP内置对象之域对象和JSP指令

    ### JSP内置对象之域对象和JSP指令详解 #### JSP内置对象之域对象 在JSP技术中,有几种内置对象被称为“域对象”,它们用于存储数据,并且具有不同的作用范围。这些域对象包括`pageContext`、`request`、`session`...

    JSP动作和指令.ppt

    **JSP 指令详解** JSP 指令(Directive)是JSP页面中的预定义元素,用于向JSP容器提供元数据信息。它们以`开头,`%&gt;`结尾,主要分为以下三种类型: 1. **Page Directive**: - `language`: 指定JSP页面的脚本语言,...

    JSP 的脚本,指令,动作

    **脚本元素** 在JSP中主要包括三种: 1. ****:这是JSP的脚本片段(Scriptlet),用于编写Java代码,通常用来控制程序流程或计算。 2. ****:表达式元素,会将Java表达式的值转换为字符串并输出到客户端。 3. **!......

Global site tag (gtag.js) - Google Analytics