1.jsp基础语法之指令篇

jsp基本语法1

jsp指令

[ 一] 页面构成
指令、html代码、JavaScript代码、嵌入的java代码、注释和jsp动作标识等内容。但这些内容并不是一个jsp页面所必需的。
例:(lianxi.jsp)

<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>一个简单的jsp页面</title>
</head>
<body>
<%
	Date date = new Date();
	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	String today = df.format(date);
%>
当前时间:<%=today%>
</body>
</html>

效果展示:1.jsp基础语法之指令篇_第1张图片

[二] 指令
指令主要用于设定整个jsp页面范围内都有效的相关信息,它是被服务器解释并执行的,不会产生任何内容输出到网页中。也就是说,指令标识对于客户端浏览器是不可见的。
·指令语法格式:
<%@ 指令名 属性1=“属性值1” 属性2=“属性值2” ……%>
参数说明:
①、指令名:用于指令的名称,在jsp中包含page、include、taglib三条指令。
②属性:用于指定属性名称,不同的指令包含不同的属性。在一个指令中,可以设置多个属性,各属性之间用逗号或空格分开。
③属性值:用于指定属性值。
例如,在Eclipse中创建jsp文件时,在文件的最顶端会默认添加一条指令,用于指定jsp所使用的语言,编码方式等。指令具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

1.page指令

page是jsp页面最常用的指令,用于定义整个jsp页面的相关属性,这些属性在jsp被服务器解析成servlet时会转换为相应的java程序代码,具体语法格式如下:

<%@ page attr1="value1" attr2="value2" ......%>

①、language属性
该属性用于设置jsp页面使用的语言,目前只支持java语言,以后可能会支持其他语言。该属性的默认值为java。
例:设置jsp页面语言属性,代码如下:

<%@ page language="java" %>

②、extends属性(不常用)
该属性用于设置jsp页面继承的java类,所有jsp页面在执行之前都会被服务器解析成Servlet,而Servlet使由java类定义的,所以jsp和servlet都可以继承指定的父类。该属性并不常用,而且有可能影响服务器的性能优化。

③、import属性
该属性用于设置jsp导入的类包。jsp页面可以嵌入java代码片段,这些java代码在调用时需要导入相应的类包。
例:在jsp页面导入类包,代码如下:

<%@page import="java.util.Date"%>

④、pageEncoding属性
该属性用于定义jsp页面的编码格式,也就是指定文件编码。jsp页面中的所有代码都是用该属性指定的字符集。
例:设置jsp页面编码格式,代码如下:

 <%@page pageEncoding="UTF-8"%>

⑤、contentType属性
该属性用于设置jsp页面的MIME类型和字符编码,浏览器会据此显示网页内容。
例:设置jsp页面的MIME类型和字符编码,代码如下:

<%@page contentType="text/html; charset=UTF-8"%>

⑥、session属性
该属性指定jsp页面是否使用HTTP的session对象。其属性值为boolean类型,默认值为true,表示可以使用session会话对象,如果设置为false,则当前jsp页面将无法使用session会话对象。
例:设置jsp页面是否使用HTTP的session会话对象,代码如下:

<%@page session="false"%>

⑦、buffer属性
该属性用于设置jsp的out输出对象使用的缓冲区大小,默认大小为8kb,且单位只能使用kb。建议使用8的倍数16、32、64、128等作为该属性的属性值。
例:设置jsp的out输出对象使用的缓冲区大小,代码如下:

<%@page buffer="128kb"%>

⑧autoFlush属性
该属性设置jsp页面缓存满时,是否自动刷新缓存。默认值为true;如果设置为false,则缓存被填满时抛出异常。
例:设置jsp页面不自动刷新缓存,代码如下:

 <%@page autoFlush="false"%>

⑨、isErrorPage属性
通过该属性可以将当前jsp页面设置成错误处理页面来处理另外一个jsp页面的错误,也就是异常处理。这意味着当前jsp页面业务的改变。
例:将当前jsp页面设置成错误处理页面,代码如下:

 <%@page isErrorPage="true"%>

⑩、errorPage属性
该属性用于指定处理当前jsp页面异常错误的另一个jsp页面,指定的jsp错误处理页面必须是指isErrorPage的属性为true。errorPage属性的属性值是一个URL字符串。
例:设置处理jsp页面错误异常的页面,代码如下:

 <%@page isErrorPage="true" errorPage="error/loginErrorPage.jsp"%>
 //如果设置该属性,那么在web.xml文件中定义的任何错误页面都将被忽略,而优先使用该属性定义的错误处理页面

⑪、info属性
设置JSP页面的相关信息,如当前页面的作者、编写时间等。此值可设置为任意字符串,由Servlet.getServletInfo()方法来获取所设置的值。

 <%@page info="" %>

⑫isELIgnored属性
默认值为false,其值可设置为true或false,表示是否在此JSP网页中执行或忽略表达式语言“${}”。设为true时,JSP容器将忽略表达式语言。

 <%@page isELIgnored="false"%>

⑬ isThreadSafe属性
设置JSP页面是否可以多线程访问。默认值为true,表示当前JSP页面被转换为Servlet后,会以多线程的方式来处理来自多个用户的请求;如果设为false,则转换后的Servlet会实现SingleThreadMode接口,并且将以单线程的方式来处理用户请求。

<%@page isThreadSafe="true"%>

⑭deferredSyntaxAllowedAsLiteral属性
该属性指示在JSP页面的模板文本中是否允许出现字符序列#{。如果该属性的值为false(默认值),当模板文本中出现字符序列#{时,将引发页面转换错误。
该属性是在JSP 2.1规范中引入的,字符序列#{被保留给表达式语言使用,你不能在模板本中使用字符序列#{。如果在模板文本中需要出现字符序列#{,那么可以将该属性设置为true。

⑮trimDirectiveWhitespaces属性
常用<%@ page trimDirectiveWhitespaces=“true” %>这条语句可以使jsp输出的html时去除多余的空行(jsp上使用EL和jstl会产生大量的空格和空行)。
但是这个是从JSP2.1规范以后才得到支持。Tomcat6.0版本以上用。

2.include指令
俗称静态包含,也就是说被包含文件中所有内容都会被原样包含到该jsp页面中,即便被包含文件中有jsp代码,在包含时也不会被编译执行。
引入的页面可以只包含静态内容(例如HTML),也可以是一个普通的JSP页面。主页面和引入的页面融和在一起(引入的页面只是最为普通的文本进行融合,并不对动态内容求值),融合后的完整页面再被整体的转换为一个servlet。
 这意味着主页和被引入的页面共享所有的页面作用域数据。
好处:使用include指令包含文件可以大大提高代码的重用性,而且也便于以后的维护和升级。
注意:被包含文件与包含文件,不能有相同名称的变量。
include指令的语法格式:

 <%@include file="path" %>

3.taglib指令
在jsp文件中,通过taglib指令来声明该页面中所使用的标签库,同时引用该标签库,并制定标签库的前缀。在页面中引用标签库后,就可以用过前缀来引用标签库中的标签。taglib指令的语法格式:
<%@taglib prefix=“tagPrefix” uri=“tagUri” %>
举例:引用JSTL中的核心标签库。

  <%@taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"  %>

你可能感兴趣的:(jsp基本语法,jsp,java)