jsp的基本语法
jsp模板元素
网页静态内容,HTML的标签
jsp的脚本
小脚本<% Java代码%>:这个代码是写在service()中。变量也是service()中的局部变量。
表达式<%= %>:相当于out.print();
声明<%! %>:声明的是全局变量。
jsp注释
jsp形式的注释:<%–注释内容–%> (在html页面不会留下注释,安全)
html形式的注释:(不安全,会嵌入html页面中)。
jsp三大指令
语法:
<%@ 指令名称 属性1=“属性名称” 属性2=“属性名称” …%>
或者将属性分开单独成句
<%@指令名称 属性1=“属性名称” %>
<%@指令名称 属性2=“属性名称” %>
page指令
作用:用于定义jsp页面的各种属性
属性:
import:和Java代码中的import是一样的
如:<%@ page import=“java.util.*”%>
jsp会自动导入一下包:
import.java.lang.;
import.javax.servlet.;
import.javax.servlet.http.;
import.javax.servlet.jsp.;
session:是否会自动创建session对象。默认值是true。如:<%@ page session=”true”%>
buffer:jsp中有javax。servlet.jsp.JspWriter输出字符流,buffer是设置缓冲区大小,默认8kb。(建议使用默认值)
errorPage:设置错误页面,如果页面有错误,跳转到指定的页面。
isErrorPage:是否创建throwable对象。默认false。
contextType:等同于response.setContextType(“text/html;charset=utf-8”);
pageEncoding:告诉jsp引擎要翻译的文件使用的编码。如<%@ page pageEncoding=”utf-8”%>
isELIgnored:是否忽略EL表达式。默认false。
isThreadSafe:是否支持线程安全。默认false。
extends:指定 JSP 页面所生成的 servlet 的超类。
language:指定语言,默认Java。目前只支持Java。
include指令:把其他资源包含到当前页面中
静态包含语法:
<%@ include file="/*.jsp"%>
动态包含语法:
<jsp:include include page="/*.jsp"></jsp:include>
1
二者的区别:翻译的时间段不同
前者:在翻译的时就把两个文件合并。
后者:不会合并文件,当执行include代码时,才会包含另外一个文件的内容。
原则:能使用静态include,就不要使用动态include。
taglib指令
作用:在jsp页面中导入JSTL标签库。替换jsp中的Java代码片段。
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“core” %>
prefix:别名
1
2
3
jsp六个动作
jsp:include:动态包含
jsp:forword:转发相当于request.getRequestDispatch(“”).forword();
jsp:param:设置请求参数
jsp:userBean:创建一个对象
jsp:setProperty:给指定的对象赋值
jsp:getProperty:取出指定对象的属性值
用法:
<jsp:userBean id=“user” class=“User”></jsp:userBean>
1
jsp九大内置对象
request:类型HttpServletRequest
response:类型HttpServletResponse
session:类型HttpSession,有session=”true”开关控制。
application:类型ServletConfig
exception:类型Throwable,由isErrorPage=”false”开关控制。
page:类型Object,当前对象this,代表当前servlet实例
config:类型ServletConfig
out:类型JspWriter,字符输出流,相当于printWriter对象。
pageContext:类型PageContext
PageContext
PageContext是一个Page域对象,它可以操作其他三个域对象(request session application)的数据。
API介绍:
void setAttribute(String name,Object o)
Object getAttribute(String name)
void removeAttribute(String name)
Object findAttribute(String name):
自动从page request session application依次查找,找到了就取值,结束查找。
其他操作方法
void setAttribute(String name,Object o,int Scope)
Object getAttribute(String name,int Scope)
void removeAttribute(String name,int Scope)
Scope的取值:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
它可以创建其他8个隐式对象
在普通类中可以通过PageContext获取其他JSP隐式对象。自定义标签时使用。