一、Jsp表达式
格式:<%=变量或表达式 %>
作用: 向浏览器输出变量的值或者是表达式计算的结果
注意:
1)jsp表达式是使用out.print( );方式向浏览器输出内容
2)表达式最后不要加上分号。
二、Jsp脚本片段(局部变量)
格式: <% java代码(语句) %>
作用: 执行java代码
注意:
1)Jsp的脚本内容原封不动直接翻译到_jspService方法中,在执行_jspService方法时脚本代码会被执行。
2)Jsp脚本可以写多行java语句,而且中间可以穿插html代码;不能在脚本中插入函数(方法)语句,因为函数不能嵌套函数。
三、Jsp声明(成员变量、成员方法)
格式:<%! 变量或方法 %>(有个感叹号)
作用: 用于声明jsp的变量或方法
注意:
1)脚本片段都是局部变量或语句,而jsp声明的变量是成员变量。
2)jsp声明的方法是成员方法,脚本片段不能声明方法!!!!
3)不能声明和java源码码相同名称的方法,例如 _jspInit() 不能声明此方法。
例如:
<%!
static
{
System.out.println("loading Servlet!");
}
private int globalVar = 0;
public void jspInit()
{
System.out.println("initializing jsp!");
}
%>
<%!
public void jspDestroy()
{
System.out.println("destroying jsp!");
}
%>
四、Jsp注释
格式: <%-- jsp注释 --%>
注意:
在jsp页面中html的注释<!-- -->会被当前内容执行。而jsp的注释<%-- jsp注释--%>不会被翻译和执
五、Jsp指令
JSP指令的基本语法格式:
<%@ 指令 属性名="值" %>
举例:<%@ page contentType="text/html;charset=UTF-8"%>
如果一个指令有多个属性,这多个属性可以写在一个指令中(用空格隔开),也可以分开写。
例如:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import="java.util.Date"%>
也可以写作:
<%@ page contentType="text/html;charset=UTF-8" import="java.util.Date"%>
1)@taglib指令
主要用于在使用jsp的标签库时,导入标签库的指令
2)@include指令
include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。所以include指令引入通常也称之为静态引入。
格式: <%@include file="包含的页面路径" %>
作用: 用于包含其他页面。
其中的file属性用于指定被引入文件的相对路径。 file属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。
<%--在当前页面包含common/header.jsp页面 --%> <%@include file="common/header.jsp"%> |
注意:
1)包含与被包含的页面只生成一个java源代码。把包含与被包含的页面先合并翻译成一个java源文件,然后再编译运行!!,这种包含叫静态包含!!!(源码级别包含)
2)被包含的页面不需要写全局的html标签(例如:html/head/body)
细节:
被引入的文件必须遵循JSP语法。
被引入的文件可以使用任意的扩展名,即使其扩展名是html,JSP引擎也会按照处理jsp页面的方式处理它里面的内容,为了见明知意,JSP规范建议使用.jspf(JSP fragments)作为静态引入文件的扩展名。
由于使用include指令将会涉及到2个JSP页面,并会把2个JSP翻译成一个servlet,所以这2个JSP页面的指令不能冲突(除了pageEncoding和导包除外)
3)@page指令
page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。
格式: <%@page %>
<%@ page
language="java" //服务器使用什么语言来翻译这个jsp文件
import="java.util.*" //导入其他包或类。除了java.lang.*以外的包或类都需要导入。多个包之间以逗号分隔。
pageEncoding="utf-8" //服务器在翻译jsp文件时查询的码表
contentType="text/html; charset=utf-8" //指定jsp页面内容向浏览器发送时的数据编码
注意:影响jsp编码的问题
1)保存jsp文件时
2)翻译jsp文件时
3)服务器向浏览器输出内容时
Jsp2.0之后:
1)contentType的编码会根据pageEncoding的编码进行自动设置
2)在ecplise工具中,只要指定pageEncoding的编码,那么保存jsp文件时会自动根据此编码来保存。
结论:在jsp2.0之后,jsp文件只需要在page指令中指定pageEncoding编码即可!!!!
buffer="8kb" //指定当前页面内容的缓冲大小
errorPage="" //当jsp页面发生错误时,指定错误处理的页面
isErrorPage="false" //这个属性是在错误处理页面指定的。如果该属性为true,则可以使用exception内置对象来输出错误信息。如果为false,则不能使用exception。
session="true" //开启session会话功能
isELIgnored="false" %>