1. 脚本表达式
<%= %>
2. jsp脚本表达式中的变量或表达式后面不能有分号(;)
3. jsp脚本片段
<%
多行java代码
%>
4. jsp声明
<%! java代码 %>
<%!
public void run(){
}
static{
}
private int num=0;
%>
5. jsp注释
<%-- --%>
6. jsp指令
page
<%@ page language="java" //嵌入java代码
contentType="text/html charset=utf-8"; //通知浏览器以utf-8打开
charset=utf-8"
pageEncoding="utf-8"
import="" //默认导入java.lang.* javax.Servlet.*
session="true|false" //创建session对象
//session = pageContext.getSession();
buffer="none|8kb|sizekb"
autoFlush="true|false"
isThreadSafe="false" //线程安全
info="text"
errorPage="relative_url"
isErrorPage="true"
pageEncoding="characterSet" //通知服务器以怎样的编码解析
isELIgnored="true|false" //EL表达式
%>
7. jsp乱码
保存以硬盘上的jsp文件,比如是UTF-8进行保存,当服务器读取jsp文件,进行解析成servlet的时候,编码也必须是utf-8,当浏览器访问servlet时候,也必须以UTF-8进行访问。
8. include
<jsp:include page="head.jsp"></jsp:include>
<jsp:include page="foot.jsp"></jsp:include>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
当进行包含的时候,被包含的jsp不要写html及body等标签,否则会重复引入
include的包含是静态包含,会翻译成一个servlet.
动态包含request.getRequestDispatcher("/public/foot.jsp").include(request,response);
静态包含是编译时包含,包含的所有jsp会编译成一个servlet.
动态包含是运行时包含,jsp对应单独的servlet.
静态包含会比动态包含性能好。
9. taglib