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" %>
<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篇(最后有疑问求解,感激不尽)相关推荐
- jsp指令元素与动作元素
jsp:指令元素 1.<%@ page language="java" import="java.util.*" pageEncoding="u ...
- jsp篇 之 指令元素和动作元素
Jsp指令元素分类与书写格式: 书写格式: <%@ 指令类型 属性="值" .. %> 分类: [page include taglib]三种. 根据名字就能知道指 ...
- JSP基本语法:文件结构、脚本元素、指令元素、动作元素
JSP语法分为三种不同的类型: 脚本元素(SCRIPTING) 指令元素(DIRECTIVE) 例如: <%@ page import="java.io.*" %> 动 ...
- 22.jsp动作元素
JSP 动作元素 与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用.JSP动作元素是用XML语法写成的. 利用JSP动作可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页 ...
- JSP页面元素的组成
1. JSP页面元素组成 JSP的静态元素 JSP注释元素 JSP指令元素 JSP脚本元素:小脚本元素.表达式元素.声明元素 JSP动作元素 2. 静态元素-html元素 html不是程序设计语言,而 ...
- Java-Web JSP指令、javabean和EL表达式
目录 一.JSP指令 1.JSP指令概述 2.page指令 (1)pageEncoding和contentType (2)import (3)errorpage和isErrorpage (4)web. ...
- JSP指令标记和动作标记
1.jsp <!-- JSP指令标记:page指令.language,import属性. --> <%@ page language="java" content ...
- JSP脚本与指令元素
引言: 当需要在游览器上动态的输出网页内容时 例如:"在浏览器上动态输出当前日期",显然无法通过静态HTML完成这个效果,这时JSP的出现补充了这一功能. 一.JSP ...
- jsp include指令元素
前言 被包含页面最大的作用就是代码复用. 除此之外,不应该有其他的任何用处.即使一个.jsp文件的内容再多,也不应该分成好几个.jsp文件,因为这样会造成内容分散,查找起来麻烦. 从包含内容的作用划分 ...
- 观看慕课老师milanlover视频JavaBean+Jsp动作元素+page/request/session/application作用域范围+Model1
Javabeans类写在src包里. 建一个实体类的po包,建一个用户类. 使用普通方式创建javabean实例: 新建Users.java: package com.po; /*用户类*/ publ ...
最新文章
- mysql 不让读的锁_MySQL实战45讲阅读笔记-锁
- 过去一周AI领域有哪些新鲜事?看这一篇就够了
- Windows2003实用技巧
- Python与Redis交互
- curl只能抓取页面的部分内容的原因
- python 查找excel内容所在的单元格_python 根据excel单元格内容获取该单元格所在的行号...
- java 值 继承_java中继承的数值传递引用
- Linux中nginx安装基础教程
- javascript设计模式系列
- 拓端tecdat|R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析
- java for循环内执行多线程
- support vector regression(SVR)支持向量回归
- 闪迪U盘插入电脑后,系统能识别到插入,但在我的电脑中没有显示的解决方法
- php revel,Revel命令行工具源码阅读
- pytorch-Detach的作用
- 4、Gantt 任务节点部分
- 超宽屏幕比例_选择合适的21:9超宽带鱼屏屏幕(普通屏幕也可)
- Eclipse护眼背景及字体设置
- 工具使用 - IDA使用
- vue3结合ts开发,导入vue文件,页面报红色的波浪线
热门文章
- 在线rar压缩包解密软件,rar压缩包权限密码多少?
- 机器学习 扬帆起航004-02评估假设与比较检验
- android 安装卸载应用提醒_Android监听应用程序安装和卸载
- SEO快速排名是什么,百度快速排名软件还有用吗?
- android 自定义控件viewgroup,Android 之 自定义控件 之 ViewGroup
- python名字起源_你知道这些编程语言名字的由来吗
- 矩阵知识:线性变换、相似矩阵、对角矩阵、逆矩阵
- 在linux4.19内核下的UPD720201驱动里添加固件下载的代码
- css 设置打印a4,CSS设置A4纸大小。
- 英语发音规则---/ŋ/与/ŋg/的读音区别