`

jsp之page指令

阅读更多

jsp中的page常用属性:

  1. autoFlush:值为:true/false,当值为true,当缓冲区满时,到客户端的输出被刷新;如果设置为false,当缓冲区满时,将出现异常,表示缓冲区溢出。默认为“true”;
  2. buffer:指定到客户端输出流的缓冲模式。如果为none,则表示不设置缓冲区;如果指定数值,那么输出的大小就必须小于这个值。此属性要和autoFlush一起使用,默认大小不小于8KB,根据不同服务器可以设置;
  3. contextType:定义JSP字符的编码和页面响应的MIME类型;比如中文:contextType="text/html;charset=utf-8";
  4. errorpage:定义当前页面要出错时,所跳转的页面地址;
  5. extends:主要定义jsp页面产生的Servlet是从哪个父类扩展出来的;
  6. import:此jsp页面需要导入的包;
  7. info:此jsp页面的信息;
  8. isErrorPage:表示此页面是否为出错处理页;如果为true,则errorPage指定的页面出错时才能跳转到此页面进行错误处理;如果设置为false,则无法处理;
  9. isThreadSafe:表示当前页面是否为线程安全,如果为true,表示当前页面可以处理多个用户的请求,如果为false,一次只能处理一个用户的请求;
  10. language:定义要使用的脚本语言;
  11. pageEncoding:jsp页面的字符编码;
  12. session:指定所在页面是否参与HTTP会话,默认值是true;

设置页面的MIME(了解下即可);

    什么是MIME?

        MIME(Multipurpose Internet Mail Extensions,多功能Internet邮件扩充服务)类型可以设置打开文件的应用程序类型。指某一个文件将以何种应用程序打开;比如在tomcat的conf/web.xml下:

    <mime-mapping>
        <extension>avi</extension>
        <mime-type>video/x-msvideo</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>class</extension>
        <mime-type>application/java</mime-type>
    </mime-mapping>

 设置文件编码:

     出来可以用contentType指定MIME类型外(使用charset设置编码),还可以使用pageEncoding进行编码的指定,如:

<%@ page language="java" pageEncoding="UTF-8"%>

     那么使用context和pageEncoding设置编码有什么区别?

pageEncoding指的是jsp文件本身的编码,而contentType中的charset指的是服务器发送给客户端的内容编码。在jsp中,如果pageEncoding存在,那么jsp的编码由pageEncoding决定,否则由contentType中的charset属性决定;如果两者都不存在,则使用默认的ISO-8859-1;

设置错误页面:

     不论是程序跳转错误,还算内部错误,还算jsp页面出现错误;我们都可以进行统一设置;修改 web.xml:

	<error-page>
		<error-code>404</error-code>
		<location>/notFound.jsp</location>
	</error-page>

如果出现404的错误时,就会找到notFound.jsp页面;

包含指令

     当一个工程中,会很重复的使用一个页面,为了避免重写这个页面,我们可以使用包含;包含分为2种:静态包含,动态包含;

  • 静态包含:指在jsp编译时插入一个包含文本或代码的文件,这个包含的过程是静态的,而包含的文件可以是jsp文件,HTML文件,文本文件或者是一小段java程序;

语法:

<%@ include file="top.jsp" %>
  •  动态包含:使用<jsp:include >指令可以完成动态包含的操作,与静态包含不同,动态包含语句可以自动区分被包含的页面是静态还算动态(如果是静态,则想静态包含那样包含进来,如果是动态,则先进行动态的处理,然后将处理后的结果包含进来)。

语法:

<jsp:include page="top.jsp" flush="true"></jsp:include>

 还可以向被包含的页面传递参数:

	<jsp:include page="top.jsp" flush="true">
		<jsp:param value="10" name="num"/>
	</jsp:include>

当上面的flush值设置为false时,表示这个网页完全被读进来以后才输出,在每一个JSP的内部都会有一个buffer;如果是true,当buffer满了就输出,一般将此属性设置为true;

使用静态包含?使用动态包含?

   使用动态包含更好,静态包含的操作属于先包含后处理,而动态包含如果被包含的页面是动态页,则属于现处理后包含。

   测试下:写一个被包含的jsp:

include.jsp:

	<%
		int x = 100;
	 %>
	 <h1>include----<%= x %></h1>

 在index.jsp我们首先静态包含它:

	<%
		int x = 100;
	 %>
	 <h1>include----<%= x %></h1>
	 <%@include file="include.jsp"%>
 

则会出现:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 11 in the jsp file: /include.jsp
Duplicate local variable x
8: </head>
9: <body>
10: 	<%
11: 		int x = 100;
12: 	 %>
13: 	 <h1>include----<%= x %></h1>
14: </body>

 原因就是重复了变量x,因为静态包含是先将全部内容包含在一起,然后在一起编译, 这样的话,x变量就相当于定义了两次,所以出现以上的错误;

如果换成动态包含:

	<%
		int x = 100;
	 %>
	 <h1>include----<%= x %></h1>
	 <jsp:include page="include.jsp"></jsp:include>

 就没问题,因为动态包含是这样处理的:如果被包含的页面是的动态页,则会现分别进行处理,然后在将结果包含进来;

跳转指令:

在jsp中可以使用<jsp:forward>指令,将一个用户的请求(request)从一个页面传递到另外一个页面,即完成跳转动作;

语法:

<jsp:forward page="{文件路径|<%=表达式 %>}"></jsp:forward>

 传递参数:

	<jsp:forward page="{文件路径|<%=表达式 %>}">
		<jsp:param value="10" name="num"/>
	</jsp:forward>	

 这个跳转属于服务器端的跳转(如果路径没变,但是内容变了,则这种跳转属于服务器端跳转);

 

 

 

分享到:
评论

相关推荐

    jsp指令,page指令简单介绍

    本篇文章将深入探讨"jsp指令",特别是"page指令",以及与之相关的`errorPage`和`isErrorPage`属性。 首先,我们来理解什么是JSP指令。JSP指令是JSP页面中的特殊元素,以`开头,`%&gt;`结尾,它们不像JSP动作元素那样在...

    JSP指令和动作熟悉

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

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

    **page指令** - **定义**: `page`指令用于指定JSP页面的行为特性,如内容类型、编码方式等。 - **属性详解**: - **contentType**: 指定发送给客户端的数据类型和字符集。例如: `text/html; charset=UTF-8`。 - **...

    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内置对象之域对象和JSP指令

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

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

    编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用0做除数,并使用page指令将该错误信息显示在另一个jsp页面上,产生的错误信息为“错误,不能用0做除数!”** - **解答:** ```jsp &lt;%@ page language=...

    jsp中page指令用法详解

    page指令是JSP指令中最基本的一种,它控制JSP页面转换成Servlet的许多方面。接下来,我们将详细介绍page指令的具体用法及其各种属性。 一、JSP指令概述 JSP指令影响由JSP页面生成的Servlet的整体结构。JSP指令的两...

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

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

    JSP指令与动作熟悉

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

    WEB开发 之 JSP指令.docx

    本篇文章主要探讨的是JSP中的两种主要指令:`page` 和 `include`。 1. JSP `page` 指令: `&lt;%@ page&gt;` 指令用于设置JSP页面的全局特性,它可以定义多种属性,包括但不限于以下: - `language`: 指定脚本语言,默认...

    JSP基础语法page指令

    JSP基础语法page指令 &lt;%@ page language="java" contentType="text/html" pageEncoding="GBK"%&gt; &lt;head&gt;&lt;title&gt;www.mldnjava.cn,MLDN高端Java培训&lt;/title&gt;&lt;/head&gt; 欢迎大家光临 MLDN ! 网址:...

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

    动态导入的语法格式是:`jsp:include page="{relativeURL|%=expression%}" flush="true"`)。动态导入不会包含被包含页面的编译指令,而是仅仅将被导入页面的 body 内容插入本页面。 在动态导入中,我们可以使用 `...

    jsp的常用指令有哪些(编译指令 动作指令整理).docx

    Page指令 **功能描述**: - 该指令用于定义整个JSP页面的一些属性,如脚本语言、错误处理等。 - 通常位于JSP页面的顶部。 **常见属性**: 1. **Language属性**: - 默认值为`Java`,表示该JSP页面使用的脚本...

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

    1. **&lt;%@ page %&gt;**: 页面指令,用于设置页面的属性,如字符编码、错误页、导入的Java包等。 2. ****: 包含指令,用于将其他文件内容插入当前页面。 3. ****: 标签库指令,用于引入自定义标签库,定义前缀和URI。 #...

    JSP动作和指令.ppt

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

    JSP指令与操作.ppt

    page指令提供了关于JSP页面的一般信息,包括语言、继承、导入等属性: - **language属性**:定义JSP页面中使用的编程语言,默认是Java。 - **extends属性**:指定JSP页面继承的Java类,但通常不推荐使用,因为会...

    03-jsp学习-jsp的page指令学习.avi

    Jsp从入门到精通

    实验2_Jsp语法 -页面基本结构、指令标记和动作标记

    实验旨在使参与者能够熟练掌握如何在JSP页面中嵌入成员变量、Java程序片段及表达式,同时深入了解`&lt;%@ page %&gt;`, `&lt;%@ include %&gt;`等指令标记与`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`等动作标记的应用场景与技巧。...

Global site tag (gtag.js) - Google Analytics