Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)

       JSP指令元素包括page指令include指令taglib指令,这篇主要是page指令的内容。

page指令

       page指令主要用来设定JSP页面的全局变量,该配置将作用于整个JSP页面,甚至动态包含的文件,其语法格式如下:

       <%@ page 属性1="属性值1" 属性2="属性值2"%>

 page指令包含13个属性,如表所示: 

page指令 属性配置作用
language 用来声明所使用的脚本语言种类
extends 用来指定该JSP页面生成的Servlet继承哪个父类
import 用来指定导入的Java包
session 用来指定该JSP页面中是否可以使用session对象
buffer 用来指定输出流是否具有缓冲区
autoFlush 用来指定缓冲区是否自动进行强制输出
isThreadSafe 用来指定该JSP文件是否支持多线程使用
info 用来设置该JSP文件的相关信息
errorPage 用来设置如果当前文件发生异常错误,网页重新跳转到能够处理异常的JSP文件
isErrorPage 用来指定该JSP文件是否为能够处理异常的JSP文件
contentType 用来指定该JSP文件的MIME格式及网页编码格式
pageEncoding 用来指定网页的编码格式
isELIgnored 用来指定该JSP文件是否支持EL表达式


①language属性

        language属性主要用来声明所使用的脚本语言种类,目前暂时只能使用Java语言。不过不排除以后可以使用如C、C++或其他语言的可能。language属性的默认值也是Java,其属性配置语法格式如下:

        <%@ page language="Java"%>

示例:

        TestLanguage.jsp

<%@ page language="java" %>


	TestLanguage


	<%
		out.println("Test Language!");  //输出Test Language!语句
	 %>


运行结果:

Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)_第1张图片

代码解析:

        通过<%@ page language="java" %>声明该JSP使用的语言为Java语言。


②extends属性

        extends属性用来指定该JSP页面生成的Servlet继承于哪个父类,设定时必须指定该类的全名,即包名加类名。一般很少使用,而且必须谨慎使用,则可能限制JSP的编译能力。其属性配置语法格式如下。

<%@ page extends="继承的父类"%>


③import属性

         import属性用来指定导入的Java包,和Java语言基础中的import语句作用类似。不过有些包在JSP编译时就已经导入了,可以不用再导入,默认的导入的包如下。

         Java.lang.*;

         Javax.servlet.*;

         Javax.servlet.jsp.*;

         Javax.servlet.http.*;

        import属性的配置语法格式如下。

        <%@ page import="导入的包名" %>

示例:

        Testimport.jsp

<%@ page language="java" import="java.util.*"%>


	Testimport


	<%
		Date now =new Date();
		out.println(now);	
	 %>

运行结果:

Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)_第2张图片

代码解析:

        第一行通过使用page指令的import属性导入了”java.util.*"包。第8行通过"Date now=new Date();"创建了一个Date实例对象now,第9行通过“out.println(now);"对now进行输出,这时将会在网页上打印当前的日期及时间信息。


④session属性

         session属性用来指定该JSP页面中是否可以使用session对象。如果设置为true,则表示该JSP页面中可以使用session对象;如果设置为false,则表示该JSP页面中不可以使用session对象。session属性的默认值为true。其属性配置语法格式如下。

         <%@ page session="true | false"%>


⑤buffer属性

         buffer属性用来指定输出流是否具有缓冲区,并设置缓冲区大小,如果设置为none,则表示输出流不具有缓冲功能;如设置为具体的数据,如"40KB”,则表示设置的缓冲区大小为40KB。其默认值为8KB。其属性配置语法格式如下:

         <%@ page buffer="none| 40KB" %>


⑥autoFlush属性

        autoFlush属性用来指定缓冲区是否自动进行强制输出。如果设置为true,那么当缓冲区满的时候仍然能够输出正常;如果设置为false,那么当缓冲区满的时候,将会产生异常。如果buffer属性设置为none,那么就不能将autoFlush属性设置为false。autoFlush属性的默认值为true。其属性配置语法格式如下。

<%@page autoFlush="true | false"%>


⑦isThreadSafe属性

         isThreadSafe属性用来指定该JSP文件是否支持多线程使用。如果设置为true,则表示该JSP文件支持多线程的使用,也就是表示该JSP文件能够同时处理多个用户的请求,如果设置为false,则表示该JSP文件不支持多线程的使用,也就是表示该JSP文件只能一次处理一个用户的请求。isThreadSafe属性的默认值为true。其属性配置语法格式如下。

        <%@ page isThreadSafe="true | false”%>


⑧info属性

         info属性用来设置该JSP文件的相关信息,可以说任何的信息字符串,并通过Servlet.getServletInfo方法来取得该信息。其属性配置语法格式如下。

        <%@ page info="JSP文件的相关信息"%>

示例

        TestInfo.jsp

<%@ page info="this is JSP"%>


	TestInfo


	<%
		String str=getServletInfo();
		out.println(str);
	 %>



运行结果:

Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)_第3张图片

代码解析:

        第一行通过使用page指令的info属性设置该JSP的相关信息为"this is JSP"。第8行通过"String str=getServletInfo();"获得该JSP的相关信息并赋值给str字符串。第9行通过"out.println(str);",对str字符串进行输出,这时将会在网上打印输出str字符串内容。


⑨errorPage属性

        errorPage属性用来设置在当前JSP文件发生异常错误时,网页重新跳转到能够处理异常的JSP文件。其属性配置语法格式如下。

        <%@ page errorPage="true | false"%>


⑩isErrorPage属性

        isErrorPage属性用来指定该JSP文件是否为能够处理异常的JSP文件,其默认值为false。其属性配置语法格式如下。

        <%@ page isErrorPage="true |false"%">


⑪contentType属性

        contentType属性用来指定该JSP文件的MIME格式,以及网页编码格式,其属性配置语法格式如下。

        <%@ page contentType="text/html;charset =ISO-8859-1"%>

 示例:

       TestContentType.jsp



	TestContentType


	<%
		String str="你好!JSP";
		out.println(str);
	 %>


运行结果:

Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)_第4张图片

代码解析:

        第7行通过“String str="你好!JSP";”声明了一个字符串str,其值为:“你好!JSP”,第8行通过"out.println(str)"对str字符串进行输出,这时将会在网页上打印输出str字符串的内容。这时候发现网页上显示的中文为乱码,这时因为JSP使用的默认编码格式为“ISO-8859-1”。这时只需要通过设定page指令的contentType属性为“text/html,charset=utf-8",就可以正常显示中文。如图所示:

Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)_第5张图片


⑫pageEncoding属性

         pageEncoding属性用来指定网页的编码格式。其属性配置语法如下。

         <%@ page pageEncoding="ISO-8859-1"%>

示例:

        TestPageEncoding.jsp

<%@ page pageEncoding="gb2312"%>


	TestPageEncoding


	<%
		String str = "欢迎大家来到JSP王国!";
		out.println(str);
	 %>

运行结果:

Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)_第6张图片
代码解析:

        第一行通过<%@ page pageEncoding="gb2312"%>来设定网页编码格式为"gb2312"。第8行通过"String str="欢迎大家来到JSP王国!";"声明了一个字符串str,其值为"欢迎大家来到JSP王国!",第9行通过"out.println(str);"对str字符串进行输出,这时将会再网页上打印出str字符串内容,并且不会出现中文乱码的情况。


⑬isELgnored属性

        isELgnored属性用来指定该JSP文件是否支持EL表达式。如果设置为true,则表示JSP文件将不会执行EL表达式;如果设置为false,则表示EL表达式不会被忽略。其属性配置语法格式如下。

        <%@page isELignored="true | false"%>


学习心得:

       一个上午的时间就花在了这篇博文上面,但是感觉记进脑海的东西并不是太多,不知道这样将书本上的东西搬运到博客上来是不是在浪费时间。
      不能理解的问题还是有很多,比如那些软件包的作用,是不是相当于C++中的头文件,又比如session对象是什么、extends继承是否和C++的继承是差不多等等,不过这些问题都可以留待之后的深入学习中去逐步解决。

       在实践过程中遇到了一个问题,书上的内容charset其实是用的gb2312来控制中文格式,但是我用myeclipse编译后在网页上显示的中文还是乱码,所以我百度了一下,从百度上得到的结论是myeclipse不支持gb2312,所以我改成了UTF-8;但是在后面的pageencoding中,我再次尝试用gb2312,结果又是可行的,感觉到一阵混乱。原谅我是个小白加上中午想休息不想继续百度找答案了,所以各位路过的大神可否留言解释一下?感激不尽~

你可能感兴趣的:(JSP)