jsp中的page常用属性:
- autoFlush:值为:true/false,当值为true,当缓冲区满时,到客户端的输出被刷新;如果设置为false,当缓冲区满时,将出现异常,表示缓冲区溢出。默认为“true”;
- buffer:指定到客户端输出流的缓冲模式。如果为none,则表示不设置缓冲区;如果指定数值,那么输出的大小就必须小于这个值。此属性要和autoFlush一起使用,默认大小不小于8KB,根据不同服务器可以设置;
- contextType:定义JSP字符的编码和页面响应的MIME类型;比如中文:contextType="text/html;charset=utf-8";
- errorpage:定义当前页面要出错时,所跳转的页面地址;
- extends:主要定义jsp页面产生的Servlet是从哪个父类扩展出来的;
- import:此jsp页面需要导入的包;
- info:此jsp页面的信息;
- isErrorPage:表示此页面是否为出错处理页;如果为true,则errorPage指定的页面出错时才能跳转到此页面进行错误处理;如果设置为false,则无法处理;
- isThreadSafe:表示当前页面是否为线程安全,如果为true,表示当前页面可以处理多个用户的请求,如果为false,一次只能处理一个用户的请求;
- language:定义要使用的脚本语言;
- pageEncoding:jsp页面的字符编码;
- 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指令",以及与之相关的`errorPage`和`isErrorPage`属性。 首先,我们来理解什么是JSP指令。JSP指令是JSP页面中的特殊元素,以`开头,`%>`结尾,它们不像JSP动作元素那样在...
本篇将详细介绍JSP中的`page`指令,以及`include`指令与相关动作`<jsp:include>`, `<jsp:forward>`, `<jsp:fallback>`, `<jsp:plugin>`。 首先,`page`指令是JSP中最高级别的指令,它用于定义整个JSP页面的属性。`...
**page指令** - **定义**: `page`指令用于指定JSP页面的行为特性,如内容类型、编码方式等。 - **属性详解**: - **contentType**: 指定发送给客户端的数据类型和字符集。例如: `text/html; charset=UTF-8`。 - **...
- **指令**:用于配置页面或者影响JSP编译过程,如`<%@ page %>`, `<%@ include %>`, `<%@ taglib %>`等。 - **动作元素**:用于调用JSP组件,如`<jsp:include>`, `<jsp:forward>`, `<jsp:param>`等。 **3. 注释** ...
### JSP内置对象之域对象和JSP指令详解 #### JSP内置对象之域对象 在JSP技术中,有几种内置对象被称为“域对象”,它们用于存储数据,并且具有不同的作用范围。这些域对象包括`pageContext`、`request`、`session`...
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用0做除数,并使用page指令将该错误信息显示在另一个jsp页面上,产生的错误信息为“错误,不能用0做除数!”** - **解答:** ```jsp <%@ page language=...
page指令是JSP指令中最基本的一种,它控制JSP页面转换成Servlet的许多方面。接下来,我们将详细介绍page指令的具体用法及其各种属性。 一、JSP指令概述 JSP指令影响由JSP页面生成的Servlet的整体结构。JSP指令的两...
jsp中include指令静态导入和动态导入的区别详解JSP编译指令page、include详解JSP中动态include与静态include的区别介绍JSP指令元素(page指令/include指令/taglib指令)复习整理基于jsp:included的使用与jsp:param乱码...
实验目的:掌握3种脚本、page和include指令、<jsp:include>和<jsp:forward>动作。 实验内容: 1. 编写一个页面片段top.jspf,作用是显示网站名称和日期(服务器时间)。显示内容如下: 作业3网站 今天是:2014-02-...
本篇文章主要探讨的是JSP中的两种主要指令:`page` 和 `include`。 1. JSP `page` 指令: `<%@ page>` 指令用于设置JSP页面的全局特性,它可以定义多种属性,包括但不限于以下: - `language`: 指定脚本语言,默认...
JSP基础语法page指令 <%@ page language="java" contentType="text/html" pageEncoding="GBK"%> <head><title>www.mldnjava.cn,MLDN高端Java培训</title></head> 欢迎大家光临 MLDN ! 网址:...
动态导入的语法格式是:`jsp:include page="{relativeURL|%=expression%}" flush="true"`)。动态导入不会包含被包含页面的编译指令,而是仅仅将被导入页面的 body 内容插入本页面。 在动态导入中,我们可以使用 `...
Page指令 **功能描述**: - 该指令用于定义整个JSP页面的一些属性,如脚本语言、错误处理等。 - 通常位于JSP页面的顶部。 **常见属性**: 1. **Language属性**: - 默认值为`Java`,表示该JSP页面使用的脚本...
1. **<%@ page %>**: 页面指令,用于设置页面的属性,如字符编码、错误页、导入的Java包等。 2. ****: 包含指令,用于将其他文件内容插入当前页面。 3. ****: 标签库指令,用于引入自定义标签库,定义前缀和URI。 #...
**JSP 指令详解** JSP 指令(Directive)是JSP页面中的预定义元素,用于向JSP容器提供元数据信息。它们以`开头,`%>`结尾,主要分为以下三种类型: 1. **Page Directive**: - `language`: 指定JSP页面的脚本语言,...
page指令提供了关于JSP页面的一般信息,包括语言、继承、导入等属性: - **language属性**:定义JSP页面中使用的编程语言,默认是Java。 - **extends属性**:指定JSP页面继承的Java类,但通常不推荐使用,因为会...
Jsp从入门到精通
实验旨在使参与者能够熟练掌握如何在JSP页面中嵌入成员变量、Java程序片段及表达式,同时深入了解`<%@ page %>`, `<%@ include %>`等指令标记与`<jsp:include>`、`<jsp:forward>`等动作标记的应用场景与技巧。...