文章目录
  1. 1. JSP
  2. 2. JSP 的执行原理
  3. 3. JSP语法
    1. 3.1. 模板元素
    2. 3.2. 脚本表达式
    3. 3.3. 脚本片段
    4. 3.4. 声明
    5. 3.5. 注释
    6. 3.6. 指令
      1. 3.6.1. page
      2. 3.6.2. taglib
      3. 3.6.3. include
    7. 3.7. JSP 常用内置标签(动作元素)
  4. 4. Error 的全局配置

JSP

全称Java Server Pages, 是一种用于开发动态web资源的技术

JSP=html中写java代码

Servlet: 只能写java代码, 写html不是很方便

JSP 的执行原理

jsp 翻译成 .Java 再 编译成 .class, 然后Tomcat加载

1
2
3
4
5
6
7
8
9
// JSP中可以取到的变量
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;

JSP语法

模板元素

JSP中的HTML元素, 定义了JSP的外观和框架

脚本表达式

输出变量的值到页面上

1
2
<%=new Date().toLocaleString()%>
//translate to out.println( new Date().toLocaleString() );

脚本片段

书写Java逻辑, 原封不动的java代码

1
2
3
4
<%
   语句一;
   语句二;
%>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<table border="1">
    <tr>
        <th> </th>
        <th> </th>
    </tr>
    <%
    for(int i=1;i<=10;i++){
    %>
    <tr>
        <td><%=i%></td>
        <td><%="aaa" + i%></td>
    </tr>
    <%
    }
    %>
</table>

声明

定义类成员(静态变量, 静态方法, 实例变量, 实例方法)

1
2
3
4
5
6
7
<%!
   // 实例变量
   int i = 100;
   public void method(){
       println("hello world");
   }
%>

注释

1
2
3
<%--
   out.write("helloworld")
--%>

<%-- --%>: 被注释的代码, 根本不会被翻译到Servlet中

<!-- -->: 浏览器注释, 代码还是会被执行

指令

  • 作用 给服务器用, 指示服务器应该如何对待JSP页面
  • 基本语法: <%@指令名称 指令属性=值 指令属性1=值1%>

page

1
2
3
4
<%@page
  language="java"
  import="java.util.Data, java.util.Random"
%>
属性 默认值 作用
language java 设置编写也语言
import 导入包, 用逗号分隔
session true 是否生成 HttpSession 对象
buffer 8kb 字符输出流的缓存, none
autoFlush true 自动刷新缓存
isThreadPage false 是否线程安全
errorPage 页面出错时, 转到的页面, 如果以/开头,为绝对路径
isErrorPage false 是否产生Exception对象, 错误后可以调用 exceptioin.getStackTrace()
contentType 改字符流编码,通知客户端显示字符集
pageEncoding iso8859-1 指示服务器读取JSP时所用的编码, 同时有 contentType 的功能
isELIgnored false 是否忽略EL表达式

taglib

引入外部的标签用的

1
2
<%@ taglib uri="" prefix="c"%>
<c:if test=""></c:if>

include

页面包含

1
2
3
4
5
6
<!-- 首选, 效率高, 静态包含, 两个 jsp 翻译成一个 jsp -->
<%@ include
    file="/**.jsp"
%>
<!-- 动态包含, 两个 jsp, 合并显示-->
<jsp:include page="/**.jsp"/>

JSP 常用内置标签(动作元素)

标签 作用 详细说明
jsp:include 动态包含 page:指向被包含页面
jsp:forward 转发 page: 指向转发路径
jsp:param 传递请求参数 name:键 value:值
1
2
3
4
5
6
7
// 源页面
<jsp:forward page="">
    <jsp:param value='key' name='username'/>
</jsp:forward>

// 目的页面
request.getParameter("username")

Error 的全局配置

1
2
3
4
5
6
7
8
9
10
11
<!-- error 全局配置 -->
<error-page>
    <!-- 异常类型匹配-->
    <exception-type>java.lang.Exception </exception-type>
    <location> /error.jsp</location>
</error-page>
<error-page>
    <!-- 响应码匹配 -->
    <error-code>404</error-code>
    <location> /error.jsp</location>
</error-page>
文章目录
  1. 1. JSP
  2. 2. JSP 的执行原理
  3. 3. JSP语法
    1. 3.1. 模板元素
    2. 3.2. 脚本表达式
    3. 3.3. 脚本片段
    4. 3.4. 声明
    5. 3.5. 注释
    6. 3.6. 指令
      1. 3.6.1. page
      2. 3.6.2. taglib
      3. 3.6.3. include
    7. 3.7. JSP 常用内置标签(动作元素)
  4. 4. Error 的全局配置