JSP提示元素

  <%@ 指示类型  [属性="值"]%>


指示类型

  指示类型有三种,分别是taglib、include、page


taglib指示类型

  用于引入标签库

  引入JSTL1.1核心标签库:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>


include指示类型

  用于将别的JSP页面包括进来进行,例如:

includeDemo.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file="/WEB-INF/jspf/header.jspf"%>
<h1>include 示範本體</h1>
<%@include file="/WEB-INF/jspf/foot.jspf"%>

header.jspf

<%@page pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include 示範開頭</title>
</head>
<body>

foot.jspf

    <%@page pageEncoding="UTF-8" %>
</body>
</html>

  上面这个程序在第一次执行时,将会把header.jspf与foot.jspf的内容包括进来作转译。实际执行时,容器会组合includeDemo.jsp、header.jspf与foot.jspf的内容后,再转译为Servlet,也就是说,相当于转译这个JSP:

<%@page contentType="text/html" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>include 示範開頭</title>
</head>
<body>
<h1>include 示範本體</h1>
</body>
</html>

  所以最后会生成一个Servlet(而不是三个),这是一种静态的包括方式。


page指示类型

  page指示类型常用的属性有主要有:import、contentType、pageEncoding

  import属性:可以在同一个import属性中,使用逗号分隔数个import的内容。

  contentType属性:用来告知响应给浏览器的文件类型。

  pageEncoding属性:用来设置转译、编译时使用的字符编码。

  page指示类型其他属性

  info属性:用于设置目前JSP页面的基本信息,这个信息最后会转换为Servlet程序中使用getServletInfo()所取得的信息。

  autoFlush属性:用于设置输出串流是否要自动清除,默认是true。如果设置为false,而缓冲区满了却还没调用flush()将数据送出至客户端,则会产生异常。

  buffer属性:用于设置至客户端的输出串流缓冲区大小,设置时必须指定单位,例如buffer="16kb"。默认是8kb。

  errorPage属性:用于设置当JSP执行错误而产生异常时,该转发哪一个页面处理这个异常。

  isErrorPage属性:设置JSP页面是否为处理异常的页面,这个属性要与errorPage配合使用。  

  extends属性:用来指定JSP网页转译为Servlet程序之后,该继承哪一个类。以Tomcat为例,默认是继承自HttpJspBase(HttpJspBase又继承自HttpServlet)。基本上几乎不会使用到这个属性。

  language属性:指定容器使用哪种语言的语法来转译JSP网页,言下之意是JSP基本上可使用其他语言来转译,不过事实上目前只能使用Java的语法(默认使用java)。

  session属性:设置是否在转译后的Servlet源代码中具有创建HttpSession对象的语句。默认是true,若某些页面不需作进程跟踪,设成false可以增加一些效能。

  isELIgnored属性:设置JSP网页中是否忽略表达式语言(Expression Language),默认是false,如果设置为true,则不转译表达式语言。这个设置会覆盖web.xml中的<el-ignored>设置。

  isThreadSafe属性:告知容器编写JSP时是否注意到线程安全,默认值是true。如果设置为false,则转译之后的Servlet会实现SingleThreadModel接口,每次请求时将创建一个Servlet实例来服务请求。虽然可以避免线程安全问题,这会引起性能问题,极度不建议设置为false。


web.xml配置JSP

  可以在web.xml中统一设置JSP的网页编码、内容类型、缓冲区大小等,例如:

<?xml version="1.1" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Web Application</display-name> <jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF8</page-encoding>
<default-content-type>text/html</default-content-type>
<buffer>16kb</buffer>
</jsp-property-group>
</jsp-config> </web-app>

  也可以在web.xml中指定JSP开头与结尾要包含的网页,例如:

<?xml version="1.1" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Web Application</display-name> <jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/WEB-INF/jspf/header.jspf</include-prelude>
<include-coda>/WEB-INF/jspf/foot.jspf</include-coda>
</jsp-property-group>
</jsp-config> </web-app>

注意

  指示元素如果如下编写:

<%@page import="java.time.*" %>
<%@page contentType="text/html" pageEncoding="UTF-8" %>
Hello!

  因为在编写JSP指示元素时,换行了两次,这两次换行的字符也会输出,所以最后产生的HTML会有两个换行字符,接着才是“Hello!”这个字符串输出。一般来说,这不会有什么问题,但如果想要忽略这样的换行,则可以在web.xml中设置:

<?xml version="1.1" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>Web Application</display-name> <jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<trim-directive-whitespaces>true</trim-directive-whitespaces>
</jsp-property-group>
</jsp-config> </web-app>

JSP指示元素<%@ %> 与指示类型的更多相关文章

  1. JavaWeb学习总结第三篇--走进JSP页面元素

    JavaWeb学习(三)—走进JSP页面元素 JSP:Java Server Pages,译为Java服务器页面.其脚本采用Java语言,继承了Java所有优点.JSP元素可以分为指令元素.脚本元素和 ...

  2. HTML 表单元素、 输入类型、Input 属性

    <input> 元素 最重要的表单元素是 <input> 元素. <input> 元素根据不同的 type 属性,可以变化为多种形态. 注释:下一章讲解所有 HTM ...

  3. JSP动作元素——————理论篇

    JSP动作元素的组成及作用 JSP使用Action来控制Servlet引擎的行为,可重复使用JavaBean组件. 常用Action: jsp:param       在 jsp:include.js ...

  4. JSP 动作元素

    JSP动作元素 1.  动作元素分类 用来动态的包含文件.网页跳转及使用JavaBean组件等. 语法:<jsp:XXX />或者<jsp:XXX></jsp:XXX&g ...

  5. JavaWeb学习----JSP脚本元素、指令元素、动作元素

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. JSP页面元素

    jsp-->Java Server Page jsp 页面元素: 静态内容 2.  指令 <%@ page contentType=”text/html” %>  设置指定页面内容类 ...

  7. JSP脚本元素、指令元素、动作元素

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. 复习:JSP基本的语法(JSP凝视 + JSP指令 + JSP脚本元素 + JSP动作元素)

    JSP原理: 1.    对于每个请求.jsp容器都会创建一个新的线程来处理它: 2.    Servlet容器载入jsp后转换成的servlet(.class文件)是常驻内存的,所以对应速度一般比較 ...

  9. #1122 JSP动作元素

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

随机推荐

  1. String、StringBuffer与StringBuilder之间区别 (转载)

    最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...

  2. (转)SSL/TLS 漏洞“受戒礼”,RC4算法关闭

    原文:https://blog.csdn.net/Nedved_L/article/details/81110603 SSL/TLS 漏洞“受戒礼” 一.漏洞分析事件起因2015年3月26日,国外数据 ...

  3. Docker概念学习系列之虚拟化(系统虚拟化和容器虚拟化)

    不多说,直接上干货! 虚拟化定义: 虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更 ...

  4. 【转】深入理解Java中的final关键字

    Java 中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了 什么?使用final的好处是什么?最后也有一 ...

  5. mpvue小程序图片404

    mpvue开发小程序时候,要添加静态本地图片 <img src="../../images/bg.png" alt=""> 会报错: VM14878 ...

  6. Mysql 锁机制和事务

    InnoDB 锁机制 InnoDB存储引擎支持行级锁 其大类可以细分为共享锁和排它锁两类 共享锁(S):允许拥有共享锁的事务读取该行数据.当一个事务拥有一行的共享锁时,另外的事务可以在同一行数据也获得 ...

  7. js便签笔记(11)——浏览TOM大叔博客的学习笔记 part1

    1. 前言 这两天看了一下TOM大叔的<深入理解js系列>中的基础部分,根据自己的实际情况,做了读书笔记,记录了部分容易绊脚的问题.写篇文章,供大家分享. 2. 关于HTMLCollect ...

  8. PTA (Advanced Level) 1009 Product of Polynomials

    1009 Product of Polynomials This time, you are supposed to find A×B where A and B are two polynomial ...

  9. webpack4使用mode优化开发环境配置

    @subject: webpack mode @author: leinov @date: 2018-11-29 mode webpack的 mode 配置用于提供模式配置选项告诉webpack相应地 ...

  10. 图解 SQL-Server新建作业

    1,启动SQL Server代理(SQL Server Agent),如下图所示: 2,右击作业--新建作业--常规--填写作业名称 3,步骤--新建 4,步骤名称--数据库名--要执行的存储过程名 ...