JSP指令标识【三大指令】
JSP指令标识【三大指令】
中文和英语混杂在一起我怕大家看不清楚所以把英语加粗了,真的写了很久,大家觉得好的可以点个赞
(1)指令标识概述
指令标识在客户端是不可见的,它是被服务器解释并被执行的。通过指令标识可以被服务器按照指令的设置来执行动作和设置在整个JSP页面范围内有效的属性。在一个指令中可以设置多个属性,这些属性的设置可以影响到整个页面。在JSP中主要包含3种指令,分别是page指令(页面指令)、include指令和taglib指令。
指令通常以 “ <%@ ” 标记开始,以 “ %> ” 标记结束,以上三种指令的通用格式如下
<%@ 指令名称 属性1="属性值" 属性2="属性值"...%>
(2) page指令:
a) page指令的特点:
① page指令用于设置当前JSP页面的属性。
② page指令中的属性大多数只需要在JSP页面中定义一次 。
③ page指令中允许重复使用多次的属性有pageEncoding和import属性等。
④ 习惯上,把page指令写在JSP页面的头部。
b) page指令的基本语法格式如下 :
<%@ page language="java" import=" ……. " info="…….."contentType="……."pageEncoding="default"
%>
language属性:定义JSP页面脚本代码所采用的编程语言,默认值为java,即采用java脚本语言。
import属性:用于导入当前JSP页面中要用到的其它Java类。如果要导入多个Java类,用逗号来分隔它们,例如要导入java.util.* 和 java.io.* ,可写为:<%@page import="java.util.* , java.io.* "%>
或分为两行来写,例如:
<%@page import="java.util.* "%>
<%@page import="java.io.* "%>
c) pageEncoding属性和contentType属性:
一、
pageEncoding属性:定义当前JSP页面的字符编码标准,默认的字符集为ISO-8859-1,如果页面中有简体中文,则字符集应该定义为GB2312,UTF-8或GBK。
二、
contentType属性:定义MIME类型和字符集。MIME (Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务)使用简单的ASCII文本来传递E-mail信息,E-mail中允许包含有任意类型的附件文件
- <%@page contentType = “text/html; charset=GB2312”>
ContentType属性指定了MIME类型和JSP页面回应时的字符编码方式。MIME类型的默认值是“text/html”; 字符编码方式的默认值是“ISO-8859-1”。 MIME类型和字符编码方式由分号隔开。
三、JSP页面的字符编码方式:
(1) 在JSP标准的语法中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。
(2) pageEncoding是jsp文件本身的编码。
(3) contentType的charset是指服务器发送给客户端时的内容编码。
(4) JSP要经过两次的“编码”,第一阶段会用pageEncoding,第二阶段会用utf-8,第三阶段就是由Tomcat出来的网页,用的是contentType。
① 第一阶段是jsp编译成.java,它会根据pageEncoding的设定读取jsp,结果是由指定的编码方案翻译成统一的UTF-8 JAVA源码(即.java),如果pageEncoding设定错了,或没有设定,出来的就是中文乱码。
② 第二阶段是由JAVAC的JAVA源码至字节码.class文件的编译,不论JSP编写时候用的是什么编码方案,经过这个阶段的结果全部是UTF-8的encoding的java源码。JAVAC用UTF-8的编码读取java源码,编译成UTF-8 格式的二进制码(即.class)。
③ 第三阶段是Tomcat(或其的application container)载入和执行阶段二的来的JAVA二进制码,输出的结果,也就是在客户端见到的,这时隐藏在阶段一和阶段二的参数contentType就发挥了功效。
d) 可以指定一条page指令中的多个属性。
也可以分开多条指定。但是除import属性可以在一个页面中多次出现外,其余属性只能指定一次,不能重复出现。
e) 实例:
<%@ page language="java" import="java.util.*" %><%@ page pageEncoding="utf-8" %> <%-- 1 --%><%--@ page contentType="text/html;charset=ISO-8859-1"--%> <%--2 --%><%--@ page contentType="text/html;charset=utf-8"--%> <%-- 3 --%><html><head><title>JspPage</title></head><body>This is my JSP page. <br>这是我的JSP页面 <br>只使用1,中文显示正常。<br>同时使用1,2,中文显示不正常<br>同时使用1,3,中文显示正常<br>只使用3,中文显示正常<br>只使用2,中文显示不正常<br></body></html>
(3)include指令
a) include指令元素:
又称为文件包含或静态包含,是在JSP容器把JSP网页翻译成Servlet程序时,将指定文本文件的内容嵌入Servlet程序中,替换include指令。
b) include指令基本语法为 :
<%@ include file="relativeURLspec" %>
file属性指出被包含资源的URL,可使用相对路径或绝对路径。绝对路径以Web应用的上下文路径名“/xxxx”开头,如:
<%@ include file="/relativeURLspec" %>
同一层目录及其子目录下,使用相对路径,即路径开始不需要加/:<%@ include file="pg/top2.jsp" %>
不同目录下,需要用绝对路径,即路径开始需要加/: <%@ include file="/pub/top4.jsp" %>
,意思是根目录webroot文件夹开始。
c) include指令的使用注意事项:
① include指令的包含称为静态包含。
② include指令是代码静态绑定,被include指令包含的内容在编译时会被静态地嵌入Servlet程序中 。
③ 可以包含jsp和html文件。
④ 过多使用include指令影响JSP页面的可读性。
⑤ 被包含的页面若有page指令,则主页面中所出现的编码设置必须完全一致,否则会引起翻译时的错误。
⑥ include指令的file属性不可以是变量,也不可以以“head.jsp?aa=1”这种形式向被包含页面传递参数。
include指令实例
- 新建web项目RelativePath。然后建立如下路径和jsp页面,并修改其相应的内容:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>">
然后再<body>后面输入下面的代码:<%@ include file="/index.jsp" %><%@ include file="pg/top2.jsp" %><%@ include file="pg/tt/top3.jsp" %><%@ include file="/pub/top4.jsp" %>
运行结果如下:
index:This is my JSP page.
top2:This is my JSP page.
top3:This is my JSP page.
top4:This is my JSP page.
JSP指令标识【三大指令】相关推荐
- JSP的三六九四七(三大指令、六大标签、九大内置对象、四大作用域、七个动作指令)
JSP的基本构成:HTML文件+Java片断+JSP标签 三大指令:page指令.include指令.taglib指令. page指令: 1.language属性:设置当前页面中编写JSP脚本使用的语 ...
- JSP三大指令、七大动作、九大对象
<%---------------------- JSP三大指令 -----------------------------%> <%-- 1. page: language imp ...
- html四大作用域,JSP的三六九四(三大指令、六大标签、九大内置对象、四大作用域)...
JSP的基本构成:HTML文件+Java片断+JSP标签 三大指令:page指令.include指令.taglib指令. page指令: 1.language属性:设置当前页面中编写JSP脚本使用的语 ...
- 002_Jsp三大指令
一. 指令 1. 指令写法:<%@ 指令名字 %>, 如下的page指令写法: <%@ page language="java" contentType=&quo ...
- JSP userBean setProperty getProperty指令使用
JSP userBean setProperty getProperty指令使用 javaBean的属性取决于get/set方法,而不是真实的属性名称. jsp文件: <%@ page lang ...
- jsp taglib指令_JSP Taglib指令
jsp taglib指令 The taglib directive is used to define tag library that the current JSP page uses. A JS ...
- JSP tag文件的attribute指令和variable指令的使用
tag文件的attribute指令和variable指令 文章目录 tag文件的attribute指令和variable指令 一.attribute指令 1.attribute指令的作用与用法 2.运 ...
- JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用
Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的ses ...
- JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用...
Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由 ...
最新文章
- centos6.4安装java,CentOS6.4下YUM安装MySQL和JDK和Tomcat
- python executemany
- 问答机器人2.0!文档问答产品科普
- xmm1是什么器件_数字电路实验指导书
- e4a服务器文件,e4a链接网站服务器
- 室内定位技术(一) TOA TDOA RSS AOA
- 70. 爬楼梯(JavaScript 完全背包)
- NetCore MiddleWare 注意事项
- 论单片机程序固件保护的重要性和方法
- 李兴平 越有人盯着360越会保护用户隐私
- windows7自带摄像头拍照摄像软件
- 【案例1】图书馆管理系统毕业论文
- 什么是横向扩展和纵向扩展?
- 波克定律:好的想法必需经得起辩论
- 图片+文案(在图片上)
- JDBC由浅入深解析(C3P0)(DBUtils)
- “希希敬敬对”团队作业-敏捷冲刺1
- arcgis android 气泡,arcgis for js 通用气泡
- 【实现网站用户登录业务功能】
- oracle12c命令行安装grid,oracle12c-RAC安装部署之GRID安装-grid设置