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" %>
<html>
<head><title>TestLanguage</title>
</head>
<body><%out.println("Test Language!");  //输出Test Language!语句%>
</body>
</html>

运行结果:

代码解析:

通过<%@ 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.*"%>
<html>
<head><title>Testimport</title>
</head>
<body><%Date now =new Date();out.println(now);    %>
</body>
</html>

运行结果:

代码解析:

第一行通过使用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"%>
<html>
<head><title>TestInfo</title>
</head>
<body><%String str=getServletInfo();out.println(str);%>
</body></html>

运行结果:

代码解析:

第一行通过使用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

<html>
<head><title>TestContentType</title>
</head>
<body><%String str="你好!JSP";out.println(str);%>
</body>
</html>

运行结果:

代码解析:

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

⑫pageEncoding属性

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

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

示例:

 TestPageEncoding.jsp

<%@ page pageEncoding="gb2312"%>
<html>
<head><title>TestPageEncoding</title>
</head>
<body><%String str = "欢迎大家来到JSP王国!";out.println(str);%>
</body>
</html>

运行结果:


代码解析:

第一行通过<%@ 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,结果又是可行的,感觉到一阵混乱。原谅我是个小白加上中午想休息不想继续百度找答案了,所以各位路过的大神可否留言解释一下?感激不尽~

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

  1. jsp指令元素与动作元素

    jsp:指令元素 1.<%@ page language="java" import="java.util.*" pageEncoding="u ...

  2. jsp篇 之 指令元素和动作元素

    Jsp指令元素分类与书写格式: 书写格式: <%@ 指令类型  属性="值" ..  %> 分类: [page include taglib]三种. 根据名字就能知道指 ...

  3. JSP基本语法:文件结构、脚本元素、指令元素、动作元素

    JSP语法分为三种不同的类型: 脚本元素(SCRIPTING) 指令元素(DIRECTIVE) 例如: <%@ page import="java.io.*" %> 动 ...

  4. 22.jsp动作元素

    JSP 动作元素 与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用.JSP动作元素是用XML语法写成的. 利用JSP动作可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页 ...

  5. JSP页面元素的组成

    1. JSP页面元素组成 JSP的静态元素 JSP注释元素 JSP指令元素 JSP脚本元素:小脚本元素.表达式元素.声明元素 JSP动作元素 2. 静态元素-html元素 html不是程序设计语言,而 ...

  6. Java-Web JSP指令、javabean和EL表达式

    目录 一.JSP指令 1.JSP指令概述 2.page指令 (1)pageEncoding和contentType (2)import (3)errorpage和isErrorpage (4)web. ...

  7. JSP指令标记和动作标记

    1.jsp <!-- JSP指令标记:page指令.language,import属性. --> <%@ page language="java" content ...

  8. JSP脚本与指令元素

    引言:        当需要在游览器上动态的输出网页内容时 例如:"在浏览器上动态输出当前日期",显然无法通过静态HTML完成这个效果,这时JSP的出现补充了这一功能. 一.JSP ...

  9. jsp include指令元素

    前言 被包含页面最大的作用就是代码复用. 除此之外,不应该有其他的任何用处.即使一个.jsp文件的内容再多,也不应该分成好几个.jsp文件,因为这样会造成内容分散,查找起来麻烦. 从包含内容的作用划分 ...

  10. 观看慕课老师milanlover视频JavaBean+Jsp动作元素+page/request/session/application作用域范围+Model1

    Javabeans类写在src包里. 建一个实体类的po包,建一个用户类. 使用普通方式创建javabean实例: 新建Users.java: package com.po; /*用户类*/ publ ...

最新文章

  1. mysql 不让读的锁_MySQL实战45讲阅读笔记-锁
  2. 过去一周AI领域有哪些新鲜事?看这一篇就够了
  3. Windows2003实用技巧
  4. Python与Redis交互
  5. curl只能抓取页面的部分内容的原因
  6. python 查找excel内容所在的单元格_python 根据excel单元格内容获取该单元格所在的行号...
  7. java 值 继承_java中继承的数值传递引用
  8. Linux中nginx安装基础教程
  9. javascript设计模式系列
  10. 拓端tecdat|R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析
  11. java for循环内执行多线程
  12. support vector regression(SVR)支持向量回归
  13. 闪迪U盘插入电脑后,系统能识别到插入,但在我的电脑中没有显示的解决方法
  14. php revel,Revel命令行工具源码阅读
  15. pytorch-Detach的作用
  16. 4、Gantt 任务节点部分
  17. 超宽屏幕比例_选择合适的21:9超宽带鱼屏屏幕(普通屏幕也可)
  18. Eclipse护眼背景及字体设置
  19. 工具使用 - IDA使用
  20. vue3结合ts开发,导入vue文件,页面报红色的波浪线

热门文章

  1. 在线rar压缩包解密软件,rar压缩包权限密码多少?
  2. 机器学习 扬帆起航004-02评估假设与比较检验
  3. android 安装卸载应用提醒_Android监听应用程序安装和卸载
  4. SEO快速排名是什么,百度快速排名软件还有用吗?
  5. android 自定义控件viewgroup,Android 之 自定义控件 之 ViewGroup
  6. python名字起源_你知道这些编程语言名字的由来吗
  7. 矩阵知识:线性变换、相似矩阵、对角矩阵、逆矩阵
  8. 在linux4.19内核下的UPD720201驱动里添加固件下载的代码
  9. css 设置打印a4,CSS设置A4纸大小。
  10. 英语发音规则---/ŋ/与/ŋg/的读音区别