Java Server Page
拯救人类于不断地用response的printWriter写相应内容的场景中。

基本语法

声明

<%! %>

<%!
    int i;
    public void setName(){… …}
%>

程序代码

<%%>

<%
    int j;
    for (int k=0; k<10; k++) {
        … …
    }
%>

表达式

<%=“hello world”%>
<%=i+1%>

注释

格式:
<!--… …--> HTML文件的注释,浏览器可以查看到
<%--… …--%> JSP文件的注释,浏览器看不到
<%//… …%> Java语言中的单行注释,浏览器看不到
<%/*… …*/%> Java语言中的多行注释,浏览器看不到
注释的内容不会被执行

指令和动作

<%@指令 属性=“属性值”%>
常用的有page、taglib、include

page

import 导入相应的包,惟一允许在同一文档中多次出现的属性
contentType 设置Content-Type响应报头,标明即将发送到浏览器的文档类型
pageEncoding 设置页面的编码
language 指定页面使用的语言
session 控制页面是否参与HTTP会话
errorPage 处理当前页面中抛出但未被捕获的任何异常
isErrorPage 当前页是否可以作为其他页面的错误处理页面

taglib

<!-- prefix属性用于指定库前缀 -->
<!-- uri属性用于指定库的标识 -->
<%@taglib uri=“tagLibary” prefix=“prefix”%>

include指令和动作

静态包含 直接在转换成Servlet时编译好

<%@include file=“被包含的文件地址%>

动态包含 访问的时候再编译

<jsp:include page=“URLSpec” flush=“true”/>

jsp:forward/jsp:param

<jsp:forward page=“urlSpec” flush=“true”/>
<jsp:forward page=“urlSpec”>
    <!-- 用于指定参数和其对应的值 -->
    <jsp:param name=“key” value=“value”/>
</jsp:forward>

内置对象

在JSP程序中有9个内置对象由容器为用户进行实例化,程序员可以不用定义就直接使用这些变量。
在JSP转换成Servlet后,会自动追加这些变量的定义,使用内置对象可以简化JSP的开发。
图片说明

基本是见名知意的

out常用方法

图片说明

request常用方法

图片说明

response常用方法

图片说明

session常用方法

图片说明

application常用方法

图片说明

pageContext常用方法

图片说明

exception用法

exception 对象是Throwable的实例,表示的是JSP的异常信息。
如果要使用它,必须将对应页面page指令的isErrorPage属性设置成true。
单个页面的处理方式
<%@page errorPage="error.jsp" %>
当然也可以在web.xml里统一配置

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error.jsp</location>
</error-page>

Jsp + JavaBean

使用jsp:useBean的方式创建javaBean实例

<jsp:useBean id=“对象名” scope=“保存范围 class=“包名.类名” />
// 保存范围有:page|request|session|application,默认为page范围。

使用jsp:setProperty的方式设置javaBean的属性值

<jsp:setProperty name="对象名" property="属性名" value="属性值" param="参数名"/>

使用jsp:getProperty的方式获取javaBean的属性值

<jsp:getProperty name="对象名" property="属性名"/>

删除对象

<% page/request/session/application.removeAttribute(“JavaBean的名字”); %>