Jsp技术入门指南【六】jsp脚本原理及隐式对象


前言

  • 在之前的博客中,我们已经介绍了JSP的环境搭建、编译文件查找以及生命周期等基础知识。这些内容为理解JSP的工作原理奠定了基础
  • 接下来,我们将深入剖析JSP页面的核心结构,探索动态页面开发的底层逻辑。
  • 掌握JSP页面结构是高效开发动态Web应用的关键。
  • 本文将从基础部件到核心指令逐步解析,帮助你夯实JSP开发基础,为后续的实战开发做好准备

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的JSP知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12950980.html?spm=1001.2014.3001.5482


一、JSP 脚本元素

1.1 声明

  • 在 JSP 里,声明用于定义变量与方法。这些声明会被转换为 Servlet 类的成员变量和方法。声明的语法格式如下:
<%!
    // 变量声明
    int count = 0;

    // 方法声明
    public void incrementCount() {
        count++;
    }
%>

在上述示例中,count 是成员变量,incrementCount 是成员方法。

1.2 表达式

表达式用于在 JSP 页面输出值。它会被转换为 Servlet 中 out.print() 方法的调用。表达式的语法格式如下:

<%= 表达式 %>

示例如下:

<%
    int num = 10;
%>
<p>数字是: <%= num %></p>

上述代码会输出 数字是: 10

1.3 脚本标签

脚本标签用于在 JSP 页面中嵌入 Java 代码。它会被转换为 Servlet 中 _jspService 方法的一部分。脚本标签的语法格式如下:

<%
    // Java 代码
    int a = 5;
    int b = 3;
    int sum = a + b;
    out.print("两数之和是: " + sum);
%>

二、JSP 的隐式对象是什么

  • JSP 隐式对象指的是在 JSP 页面里无需显式声明就能够使用的对象
  • 这些对象是由 JSP 容器自动创建并提供的,在 JSP 页面中可以直接使用。常见的隐式对象有 outrequestresponsesessionapplicationconfigpagepageContextexception

三、隐式对象详解

out

out 对象属于 JspWriter 类的实例,用于向客户端输出内容。示例如下:

<%
    out.print("欢迎访问本页面!");
%>

request

request 对象是 HttpServletRequest 类的实例,用于获取客户端发送的请求信息,像请求参数、请求头、请求方法等。示例如下:

<%
    String username = request.getParameter("username");
    out.print("你输入的用户名是: " + username);
%>

session

session 对象是 HttpSession 类的实例,用于在多个请求之间跟踪用户会话。在一个会话里,session 是唯一的。

<%--
  Created by IntelliJ IDEA.
  User: DELL
  Date: 2025/4/10
  Time: 19:09
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    out.print("hello111");
    int a; // 这里声明了变量 a,但未使用
    String username = request.getParameter("uesename");
    if (username != null && username.equals("admin")) {
        session.setAttribute("username", username);
        System.out.println("-----" + session.getId());
        response.sendRedirect("../body.jsp");
    }
%>

</body>
</html>

这段代码的功能如下:

  1. 向客户端输出 hello111
  2. 从请求参数中获取 username
  3. 检查 username 是否为 admin,若为 admin,就将 username 存入 session 中,打印 session 的 ID,然后重定向到 ../body.jsp 页面。

application

application 对象是 ServletContext 类的实例,用于在整个 Web 应用程序中共享数据。可以在 web.xml 里配置初始化参数,然后在 JSP 页面中通过 application 对象获取。

web.xml 配置示例

<context-param>
    <param-name>appName</param-name>
    <param-value>MyWebApp</param-value>
</context-param>

JSP 页面获取参数示例

<%
    String appName = application.getInitParameter("appName");
    out.print("应用程序名称是: " + appName);
%>

config

config 对象是 ServletConfig 类的实例,用于获取 Servlet 的配置信息。可以在 web.xml 里配置 Servlet 的初始化参数,然后在 JSP 页面中通过 config 对象获取。

exception

exception 对象是 Throwable 类的实例,用于处理 JSP 页面中出现的异常。要使用 exception 对象,需要在 <%@ page %> 指令中设置 isErrorPage="true"

示例

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
    <title>错误页面</title>
</head>
<body>
    <h1>发生错误</h1>
    <p>错误信息: <%= exception.getMessage() %></p>
</body>
</html>

综上所述,JSP 隐式对象为开发人员提供了便捷的方式来处理请求、管理会话、共享数据和处理异常等。通过合理运用这些隐式对象,能够开发出功能强大的 Web 应用程序。


以上就是这篇博客的全部内容,下一篇我们将继续探索JSP的更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的JSP知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12950980.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珹洺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值