JSP 核心知识:概述、脚本元素、指令
·
一、JSP 概述
1. 什么是 JSP
JSP 全称Java Server Pages(Java 服务器页面),是运行在服务器端的动态网页技术,由 Sun 公司主导制定。它本质是HTML + Java 代码的结合体,最终会被服务器编译为 Servlet(Java 后端程序),用于快速开发动态交互的 Web 页面(如登录、数据展示、表单提交等)。
2. JSP 核心特点
- 简化开发:直接在 HTML 中嵌入 Java 代码,不用像纯 Servlet 那样拼接 HTML 字符串;
- 跨平台:一次编写,可在 Windows、Linux 等所有支持 Java 的服务器上运行;
- 本质是 Servlet:服务器会将 JSP 翻译成
.java文件,再编译为.class字节码文件执行; - 职责分离:负责页面展示(视图层),搭配 JavaBean、Servlet 实现 MVC 架构。
3. JSP 执行流程(关键)
- 客户端浏览器请求 JSP 页面;
- 服务器将 JSP翻译为 Java Servlet 源文件;
- 服务器将 Servlet 源文件编译为字节码文件;
- 加载执行字节码,生成 HTML 响应给浏览器。
二、JSP 脚本元素
JSP 脚本元素是嵌入在 HTML 中的 Java 代码,用于实现页面的动态逻辑,共分为 3 种:
1. 表达式脚本(<%= %>)
作用:直接输出变量、表达式的结果到页面,自动打印,无需 out.print ()。
语法:
<%= 变量/表达式/常量 %>
示例:
当前时间:<%= new java.util.Date() %>
用户名:<%= "张三" %>
计算结果:<%= 10 + 20 %>
特点:结尾不能加分号,代码会被翻译到out.print()中。
2. 脚本片段(<% %>)
作用:编写多行 Java 逻辑代码(循环、判断、变量定义等)。
语法:
<% 多行Java代码 %>
示例:
<%
// 定义变量
String name = "JSP学习";
// 循环输出
for(int i=1; i<=3; i++){
out.print("第"+i+"次:"+name+"<br>");
}
%>
特点:
- 可以编写任意 Java 代码;
- 多个脚本片段之间可以互相访问变量;
- 代码会被原封不动翻译到 Servlet 的
_jspService()方法中。
3. 声明脚本(<%! %>)
作用:定义 JSP 页面的全局成员(成员变量、方法、静态代码块)。
语法:
<%! 全局变量/方法/静态代码块 %>
示例:
<%!
// 全局成员变量
private int count = 0;
// 全局方法
public int add(int a,int b){
return a+b;
}
%>
<!-- 调用声明的变量和方法 -->
访问次数:<%= count++ %>
求和结果:<%= add(10,5) %>
特点:
- 代码会被翻译到 Servlet 类中,方法之外;
- 所有客户端共享声明的成员变量;
- 不能直接使用 JSP 内置对象(如 out、request)。
三、JSP 指令
JSP 指令是给服务器看的配置信息,不会直接输出内容到页面,用于设置页面全局属性、导入资源等。
通用语法
<%@ 指令名称 属性1="值1" 属性2="值2" ... %>
三大核心指令
1. page 指令(最常用)
作用:定义 JSP 页面的全局配置(导包、编码、会话等)。常用属性:
import:导入 Java 类 / 包(唯一可重复写的属性);pageEncoding:设置页面编码格式(如 UTF-8);contentType:设置响应内容类型和编码;session:是否启用 session(true/false);errorPage:指定当前页面出错时跳转的错误页面。
示例:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Date,java.util.List"%>
<%@ page errorPage="error.jsp" session="true" %>
2. include 指令
作用:静态包含其他页面(JSP/HTML),将多个页面合并为一个 Servlet 编译执行。特点:编译时合并,效率高,共享同一个作用域。
语法:
<%@ include file="被包含的页面路径" %>
示例:
<!-- 包含公共头部 -->
<%@ include file="header.jsp" %>
<!-- 包含公共底部 -->
<%@ include file="footer.html" %>
3. taglib 指令
作用:引入 JSP 标签库(如 JSTL 标准标签库、自定义标签),替代脚本片段,简化页面。
语法:
<%@ taglib prefix="前缀" uri="标签库地址" %>
示例(引入 JSTL 核心标签库):
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- 使用标签 -->
<c:out value="Hello JSTL"></c:out>
总结
- JSP 概述:服务器端动态网页技术 = HTML + Java,本质是 Servlet;
- 脚本元素:
<%= %>:输出内容到页面;<% %>:编写 Java 逻辑代码;<%! %>:定义全局成员;
- 三大指令:
page:页面全局配置;include:静态包含页面;taglib:引入标签库。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)