2025/12/14

jsp

一、核心脚本类型

  1. 脚本小程序(Scriptlet)—— 业务逻辑核心
    语法:<% Java代码 %>
    作用:嵌入任意 Java 代码(变量定义、循环、条件判断、数据库操作、调用方法等),是 JSP 中最常用的脚本形式,运行在_jspService()方法内。
    特点:局部变量作用域为当前页面请求,每次请求都会执行;可直接使用 JSP 内置对象(request、response、session 等)。
    示例:
    jsp
    <%
    // 定义局部变量
    String username = request.getParameter("username");
    // 条件判断
    if (username == null || username.isEmpty()) {
    username = "游客";
    }
    // 循环输出
    for (int i = 1; i <= 5; i++) {
    out.print("第" + i + "行
    ");
    }
    %>
  2. 表达式脚本 —— 快速输出内容
    语法:<%= 表达式 %>
    作用:简化 “输出内容到页面” 的操作,等价于out.print(表达式),无需加分号结尾。
    特点:直接输出表达式结果(变量、方法返回值、算术运算等),不能写完整语句,只能是单个表达式。
    示例:
    jsp
当前用户:<%= username %>
当前时间:<%= new java.util.Date() %>
计算结果:<%= 10 + 20 %>
3. 声明脚本 —— 定义全局成员 语法:<%! 变量/方法/类的定义 %> 作用:定义 JSP 页面的全局变量、方法或内部类,运行在 Servlet 类的成员位置(而非_jspService方法),所有请求共享。 特点:变量为类级别的成员变量(多线程共享,需注意线程安全),方法可被 Scriptlet 或表达式调用。 示例: jsp <%! // 全局变量(所有请求共享) private int visitCount = 0;

// 自定义方法
public String getWelcomeMsg(String name) {
return "欢迎你," + name + "!";
}
%>

<%
// 调用声明的方法
String msg = getWelcomeMsg(username);
// 全局变量自增(注意线程安全,实际需加锁)
visitCount++;
%>

<%= msg %>
当前访问量:<%= visitCount %>
二、常用指令标签(伪脚本,配置页面属性) 指令标签虽非 “代码脚本”,但属于 JSP 核心配置,高频使用: 1. page 指令 —— 页面全局配置 语法:<%@ page 属性名="值" %> 常用属性: language="java":指定脚本语言(默认 Java); contentType="text/html;charset=UTF-8":设置响应编码; pageEncoding="UTF-8":设置页面编码; import="java.util.*, java.sql.*":导入 Java 包(可多个,逗号分隔); session="true/false":是否启用 session(默认 true); errorPage="error.jsp":指定错误跳转页面。 示例: jsp <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" import="java.util.List, java.util.ArrayList" %> 2. include 指令 —— 静态包含页面 语法:<%@ include file="文件路径" %> 作用:将其他 JSP/HTML 文件的内容静态合并到当前页面(编译期合并,生成一个 Servlet),适合复用页眉、页脚。 示例: jsp <%@ include file="header.jsp" %>
页面主体内容
<%@ include file="footer.jsp" %> 3. taglib 指令 —— 引入标签库 语法:<%@ taglib uri="标签库URI" prefix="前缀" %> 作用:引入 JSTL 标签库、自定义标签库,替代脚本代码(简化逻辑)。 示例(引入 JSTL 核心标签): jsp <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

posted on 2025-12-14 20:41  才一斤  阅读(7)  评论(0)    收藏  举报

导航