当前位置: 首页 > news >正文

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

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

  • 前言
  • 一、JSP 脚本元素
    • 1.1 声明
    • 1.2 表达式
    • 1.3 脚本标签
  • 二、JSP 的隐式对象是什么
  • 三、隐式对象详解
    • out
    • request
    • session
    • application
    • config
    • exception


前言

  • 在之前的博客中,我们已经介绍了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: DELLDate: 2025/4/10Time: 19:09To 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

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

在这里插入图片描述

相关文章:

  • 15.4K Star!Vercel官方出品,零基础构建企业级AI聊天机器人
  • YAFFS2 的页缓存机制原理及配置优化方法详解
  • deepseek的transformer模块和旋转位置编码
  • 从零到上线!AI生成SpringBoot项目脚手架实战(含K8s+Docker配置)
  • 【C++】入门基础【上】
  • 《软件设计师》复习笔记(12.2)——成本管理、配置管理
  • 大语言模型智能体:安全挑战与应对之道
  • 韩媒专访CertiK创始人顾荣辉:黑客攻击激增300%,安全优先的破局之路
  • Vite 4.0性能优化:如何提升前端构建速度与开发体验
  • 二叉树理论基础
  • 365打卡第J8周:Inception v1算法实战与解析
  • AI专题(一)----NLP2SQL探索以及解决方案
  • ctf.show—Web(1-10)详细通关教程
  • 双轮驱动能源革命:能源互联网与分布式能源赋能工厂能效跃迁
  • Ubuntu18.04安装Qt5.12
  • 深入 MySQL 高级查询:JOIN、子查询与窗口函数的实用指南
  • GoogleCodeUtil.java
  • 全栈架构设计图
  • 安卓App中调用升级接口并实现版本检查和升级功能的完整方案
  • 『前端样式分享』联系我们卡片式布局 自适应屏幕 hover动效 在wikijs中使用 (代码拿来即用)
  • 海康威视:去年海外主业和机器人等创新业务占比首次超50%
  • 一中国公民在日本滑雪场意外死亡,我领馆发布提醒
  • 本周看啥|孤独的美食家,蛮好的人生
  • 如何应对国际贸易形势变化?长三角四省市主要领导密集部署
  • 新华每日电讯写在浦东开发开放35周年之际:改革开放为笔,绘就崭新传奇
  • 中国三项文献遗产新入选《世界记忆名录》