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

JSP基础知识

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头,以%>结束。
JSP是一种Java servlet(在处理用户请求时会转化为servlet即java文件),主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XTHML代码、、XML元素以及嵌入JSP操作和命令来编写JSP。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
一、JSP开发环境搭建
1.配置Java开发工具(JDK)
2.Tomcat

二、JSP基础语法
2.1 脚本程序
语法格式:
<% 代码片段 %>
脚本程序可以包含任意量地Java语句、变量、方法或表达式。
或者,也可以编写与其等价地XML语句:
< jsp:scriptlet >
代码片段
</ jsp:scriptlet >
任何文本、HTML标签、JSP元素必须写在脚本程序的外面。
例如:

<html><head><title>Hello World</title></head><body>Hello World!<br/><%out.println("Hello JSP ");%></body></html>

效果如下:

如果要在页面中正常显示中文,需要在JSP文件头部添加以下代码:

<%@ page language="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

2.2 JSP声明
语法:
<%! declaration;[declaration;]+… %>
或者,也可以写等价的xml语句:
< jsp:declaration >
代码片段
</ jsp:declaration>
示例:

<%!int i=0;%><%!int a,b,c;%><%!Circle a=newCircle(2.0);%>

2.3 JSP表达式
语法:
<%= 表达式%>
等价的xml语句:
< jsp:expression>
代码片段
</ jsp:expression >
一个JSP表达式中包含的脚本语言表达式,先转化为String,然后插入到表达式出现的地方。
示例:

<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><meta charset="utf-8"></head><body><p>今天的日期是:<%=(newjava.util.Date()).toLocaleString()%></p></body></html>

效果如下:

2.4 JSP注释
语法:
<%-- 注释 -->

<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtml><html><head><meta charset="utf-8"><title>php中文网(php.cn)</title></head><body><%--该部分注释在网页中不会被显示--%><p>今天的日期是:<%=(newjava.util.Date()).toLocaleString()%></p></body></html>

2.5 JSP指令
JSP指令用来设置与整个JSP页面相关的属性。
语法:
<%@ directive attribute=“value” %>
三种指令标签:
(1) <%@ page … %>
定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等。
与Page指令相关的属性:

(2) <%@ include … %>
包含其他文件,可以使JSP文件,HTML文件或文本文件,包含的文件就好像时该JSP文件的一部分,会被同时编译执行。
include指令语法:
<%@ include file=“文件相对 url 地址” %>
等价的XML语法:
<jsp:directive.include file=“文件相对 url 地址” />

(3) <%@ taglib … %>
引入标签库的定义,可以是自定义标签。
Taglib指令的语法:
<%@ taglib uri=“uri” prefix=“prefixOfTag” %>
等价的XML语法:
<jsp:directive.taglib uri=“uri” prefix=“prefixOfTag” />

2.6 JSP行为(JSP动作元素)
与JSP指令元素不同,JSP动作元素在请求处理阶段起作用。利用JSP动作可以动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面、为Java插件生成HTML代码。
JSP行为标签使用XML语法结构来控制servlet引擎,它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。
所有的动作元素都有两个属性:id属性和scope属性
id属性:id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。
scope属性:该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。 scope属性有四个可能的值: (a) page, (b)request, ©session, 和 (d) application。
语法(只有XML格式):
< jsp:action_name attribute=“value” />
一些可用的行为标签:
(1) jsp:include
用于在当前页面中包含静态或动态资源
(2) jsp:useBean
寻找和初始化一个JavaBean组件
(3)jsp:setProperty
设置 JavaBean组件的值
(4)jsp:getProperty
将 JavaBean组件的值插入到 output中
(5)jsp:forward
从一个JSP文件向另一个文件传递一个包含用户请求的request对象
(6) jsp:plugin
用于在生成的HTML页面中包含Applet和JavaBean对象
(7)jsp:element
动态创建一个XML元素
(8) jsp:attribute
定义动态创建的XML元素的属性
(9)jsp:body
定义动态创建的XML元素的主体
(10) jsp:text
用于封装模板数据
2.7 JSP隐含对象

http://www.jsqmd.com/news/926887/

相关文章:

  • Arm GIC-700中断控制器架构与虚拟化优化实践
  • Spring Boot项目里集成Hazelcast做分布式缓存,5分钟搞定配置与避坑
  • 别再死记硬背了!用Input.GetAxis搞定Unity角色移动与旋转,附完整代码和常见Bug修复
  • 告别VirtualBox Host-Only Adapter报错:从网络配置原理到一键修复脚本
  • SpringBoot项目里,@JsonFormat和@DateTimeFormat用错了?一个真实接口报错案例带你避坑
  • 别再只用默认模型了!手把手教你用SnowNLP训练专属影评情感分析模型(Python实战)
  • 别再一帧帧P图了!用Runway的Inpainting工具,5分钟抹掉视频里不想要的物体
  • 手把手教你搞定Paradigm SKUA-GOCAD 2022.06.20安装与激活(附详细图文步骤)
  • 医学图像分析新思路:当DETR遇见可变形注意力,如何解决白细胞检测的“特征稀疏”与“尺度不一”难题?
  • 记大三心血之作:物联网应用开发-智能家居
  • 终极指南:5分钟在Android手机运行Windows应用的完整教程
  • Cobalt Strike反向连接如何绕过防火墙?一个多层内网穿透的清晰图解
  • Gemini产品线全面退役深度复盘(Google内部通告原文+技术影响图谱首次公开)
  • 动态博弈与鲁棒控制在多智能体系统中的应用
  • 智能垃圾桶项目避坑指南:STC89C51舵机控制与超声波防误触发实战心得
  • DeepSeek-V3:6710亿参数开源大模型在昇腾平台上的完整部署指南 [特殊字符]
  • 保姆级教程:用Altium Designer(AD)从零画一块Type-C小板(附立创商城白嫖封装技巧)
  • ESP32 BLE Mesh配网踩坑实录:为什么你的Client模型绑不上AppKey?
  • 智能语音交互中的礼仪革命:从命令式对话到人机共处伦理
  • 别只拿SI9000算阻抗了!手把手教你用它快速评估PCB走线长度极限(附10GHz损耗实例)
  • 别再死记硬背了!用‘找对象’的思路图解匈牙利算法(附LeetCode棋盘覆盖题解)
  • 别再只会用Keil了!FlyMCU串口烧录STM32保姆级教程(附ST-LINK Utility对比)
  • 手把手教你用Pyecharts给3D散点图“化妆”:从配色、透明度到Tooltip提示的完整美化指南
  • 别再只盯着能量密度了!聊聊储能项目里,磷酸铁锂和三元锂到底该怎么选?
  • 终极智能黑苹果配置工具:15分钟搞定OpenCore EFI的完整指南
  • STM32F103 FSMC驱动TFT屏详解:从CubeMX参数配置到HAL库代码实战(战舰V3平台)
  • 终极指南:15分钟快速完成OpenCore EFI配置的免费神器
  • RFIC设计工作流打通:手把手教你配置ADS 2024与Cadence IC617的Dynamic Link联动
  • 英伟达CEO黄仁勋:AI将让人类更忙碌,未来十年将诞生750万个智能体!
  • 考研数学救命稻草:用Python的SymPy库5分钟搞定无穷小阶数比较(附代码)