- JSP模板元素
JSP页面中的HTML内容称之为JSP模板元素
JSP模板元素定义了网页的基本骨架,即定义了页面的结构和外观
- JSP脚本表达式
JSP脚本表达式用于将程序数据输出到客户端的语法:<%= 变量或表达式 %>
举例:当前时间:<%= new java.util.Date() %>
JSP引擎在翻译脚本表达式时,会将程序数据转为字符串,然后在相应位置用out.print(...)将数据输给客户端
JSP脚本表达式中的变量或表达式后面不能有分号(;)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'begin.jsp' starting page</title>
</head>
<body>
<font color="red">
当前时间是:
<%
Date date = new Date();
String time = date.toLocaleString();
%>
<%= time %> <!-- EL表达式 -->
</font>
</body>
</html>
- JSP脚本片段
JSP脚本片段(scriptlet)用于在JSP页面中编写多行java代码,语法:
<%
多行代码
%>
注意:JSP脚本片段中只能出现java代码,不能出现其他模板元素,JSP引擎在翻译JSP页面时,会将JSP脚本片段中的代码原封不动的放到servlet的_jspService方法中
JSP脚本片段中的代码必须严格遵守java语法,例如,每条执行语句后面都需要分号(;)结束
在一个JSP页面中可以有多个脚本片段,在脚本片段之间可以嵌入文本、HTML标记或其他JSP元素
<%
Date date = new Date();
String time = date.toLocaleString();
%>
<p>JSP语法 <!--嵌入文本、HTML标记或其他JSP元素 -->
<%
Date dates = date;
String times= date.toLocaleString();
%>
多个脚本片段中的代码之间可以进行相互访问,犹如所有的代码放到一对<%%>之中的情况
单个脚本片段中的java语句可以是不完整的,但是,多个脚本片段组合后的结果必须是完整的java语句
<%
for(int i=0;i<5;i++){
%>
<p>测试片段完整
<%
}%>
- JSP声明
JSP页面中编写的所有代码,默认会翻译到servlet的service方法中,而JSP声明中的java代码会被翻译到_jspService方法的外面。
<!%
java代码
%>
所以,JSP声明可用于定义JSP页面转换成的servlet程序的静态代码块、成员变量和方法
多个静态代码块,变量和方法可以定义在一个JSP声明中,也可以分别定义在多个JSP声明中
JSP隐式对象的作用范围仅限于servlet的_jspService方法,所以在JSP声明中不能使用这些隐式对象
- JSP注释
<%-- jsp注释 -->
<!-- html xml 注释 --> //虽然页面不显示 但是内容会打给浏览器 不推荐使用
jsp引擎在将JSP页面翻译成servlet程序时,会忽略JSP页面中被注释的内容
- JSP指令
它是为JSP引擎而设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。JSP2.0中共定义了三个指令
page指令
Include指令
taglib指令
JSP指令的基本语法格式
<%@ 指令 属性名=“值”%>
举例:<%@ page contentType="text/html; charset=gb2312"%>
如果一个指令有多个属性,这多个属性可以写一个指令中,也可以分开写。
- page指令
page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,他的作用都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。
- page指令解决JSP中文乱码
- JSP程序存在有与servlet程序相同的中文乱码问题
输出响应中文时出现的中文乱码问题
读取浏览器传递的参数信息时出现的中文乱码问题
- JSP引擎将JSP页面翻译成servlet源文件时也可能导致中文乱码问题
JSP引擎将JSP源文件翻译成servlet源码文件时默认使用UTF-8编码,而JSP开发人员可以采用各种字符编码来编写JSP源文件,因此,翻译过程,需要进行字符编码转换
如果JSP文件中没有说明它采用的字符编码,JSP引擎默认使用ISO8859-1字符编码
- 如何解决翻译过程中的乱码问题
通过page指令的contentType属性说明JSP源文件的字符编码
page指令的pageEncoding属性说明JSP源文件的字符集编码
通常只需要在page指令中加 pageEncoding="编码方式"
例如:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- include指令(静态包含)
1.用来包含页头页脚
2.<% @include file="/public/head.jsp" %> 静态包含 只会生成一个servlet源文件,被包含的合入该页面 编译时包含
3.request.getRequestDispatcher("/public/head.jsp").include(request,response); 动态包含,被包含JSP会自己生成响应的servlet,运行时生成,影响性能 推荐使用静态包含
自学笔记,多有不足!!!