JSP基础知识概述

目录

  • JSP
    • 一、什么是JSP
      • 1.1 概念
      • 1.2 创建JSP
      • 1.3 JSP编写Java代码
      • 1.4 JSP实现原理
    • 二、JSP与HTML集成
      • 2.1 普通脚本
      • 2.2 声明脚本
      • 2.3 输出脚本
      • 2.4 JSP指令
      • 2.5 动作标签
    • 三、内置对象
      • 3.1 四大域对象

JSP

一、什么是JSP

1.1 概念

  • 简化的Servlet设计,在HTMl标签中嵌套Java代码,用以高效开发Web应用的动态网页。

  • 作用:替换显示页面部分的Servlet(使用*.jsp文件替换XxxJSP.java)

1.2 创建JSP

在web目录下新建*.jsp文件(与WEB-INF平级)

1.3 JSP编写Java代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
	<title>This is my first page</title>    
</head>
<body>
	<%=new java.util.Date() %>    
</body>
</html>
//使用<%= %>标签编写java代码在页面中打印当前系统时间
  • 访问JSP

在浏览器输入http://ip:port/项目路径/资源名称

例如:http://127.0.0.1:8080/项目路径/资源名称

1.4 JSP实现原理

Tomcat会将xxx.jsp转换成Java代码,进而编译成.class文件运行,最终将运行结果通过response响应给客户端

在这里插入图片描述

二、JSP与HTML集成

2.1 普通脚本

语法:<% Java代码 %>

<html>
<head><title>Hello World</title></head>
<body>
	<%
    	//jsp中,使用小脚本嵌入Java代码!
    	out.println("hi");//打印内容在客户端
    	System.out.println("hi");//打印内容在控制台
    %>    
</body>
</html>
  • 经验:普通脚本可以使用所有java语法,除了定义函数。
  • 注意:脚本与脚本之间不可嵌套,脚本与HTML标签不可嵌套

2.2 声明脚本

语法:<%! 定义变量、函数 %>

<%! int i = 0; %>
<%! int a,b,c; %>
<%! Object object = new Object(); %>
<%!
	//定义方法
    public void m1(){
    System.out.println("你好");
}
%>
  • 注意:声明脚本声明的变量是全局变量。
  • 声明脚本的内容必须在普通脚本<% %>中调用。
  • 如果声明脚本中的函数具有返回值,使用输出脚本调用<%= %>。

2.3 输出脚本

语法:<%= Java表达式%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jsp基本使用</title>
</head>
<body>
	<p>
        今天的日期是:<%= new java.util.Date() %>
    </p>    
</body>
</html>
  • 经验:输出脚本可以输出带有返回值的函数
  • 注意:输出脚本中不能加;

2.4 JSP指令

JSP指令用来设置与整个JSP页面相关的属性。

  • 指令

    • <%@ page … %>:定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
    • <%@ include … %>:包含其他文件
    • <%@ taglib … %>:引入标签库的定义,可以是自定义标签
  • page指令

语法:<%@ page attribute="value1" attribute2="value2" %>

在这里插入图片描述

  • include指令

语法:<%@ include file="被包含的JSP路径" %>

被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是当前JSP文件的一部分,会被同时编译执行(静态包含)。

<%@ include file="header.jsp" %>
...
...
<%@ include file="footer.jsp" %>
  • 注意:可能会有重名的冲突问题,不建议使用。

  • taglib指令

语法:<%@ taglib url="外部标签库路径" prefix="前缀" %>

<%@ taglib url="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2.5 动作标签

  1. include
  • 语法:<jsp:include page=“相对URL地址” />
  • jsp:include动作元素会将外部文件输出结果包含在JSP中(动态包含)。

在这里插入图片描述

  • 注意:前面已经介绍过include指令,它是将外部文件的输出代码复制到了当前JSP文件中。而这里的jsp:include动作不同,是将外部文件的输出结果引入到了当前JSP文件中。
  1. useBean
  • 语法:<jsp:useBean id=“name” class=“package.className” />
  • jsp:useBean动作用来加载一个将在JSP页面中使用的JavaBean。
<jsp:useBean id="user" class="com.qf.entity.User" />
  • 在类载入后,我们可以通过jsp:setProperty和jsp:getProperty动作来修改和获取bean的属性。
  1. setProperty

可以在jsp:useBean元素之后使用jsp:setproperty进行属性的赋值

在这里插入图片描述

<jsp:useBean id="user" class="com.qf.entity.User" />
<jsp:setProperty name="user" property="name" value="gavin" /> 
  1. getProperty

jsp:Property动作提取指定Bean属性的值,转换成字符串,然后输出。

在这里插入图片描述

<jsp:useBean id="user" class="com.qf.entity.User" />
<jsp:setProperty name="user" property="name" value="gavin" /> 
<jsp:getProperty name="user" property="name" />
  1. forward

语法:<jsp:forward page="相对URL地址" />

在这里插入图片描述

<jsp:forward page="index.jsp" />
  1. param

语法:<jsp:param name="" value="" />

<jsp:forward page="index.jsp">
	<!-- http请求参数传递-->
    <jsp:param name="sex" value="nan" />
</jsp:forward>

三、内置对象

  • 由JSP自动创建的对象,可以直接使用

在这里插入图片描述

3.1 四大域对象

  • JSP有四大作用域对象,存储数据和获取数据的方式一样,不同的是取值的范围有差别

    • pageContext:当前JSP页面范围

    • request:一次请求有效

    • session:一次会话有效(关闭浏览器失效)

    • application:整个web应用有效(服务器重启或关闭失效)

    • 以上都是通过setAttribute(“name”,value);存储值;通过getattribute(“name”);获取值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/730022.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为重磅官宣:超9亿台、5000个头部应用已加入鸿蒙生态!人形机器人现身 专注AI芯片!英伟达挑战者Cerebras要上市了

内容提要 华为表示&#xff0c;盘古大模型5.0加持&#xff0c;小艺能力全新升级。小艺智能体与导航条融为一体&#xff0c;无处不在&#xff0c;随时召唤。只需将文字、图片、文档“投喂”小艺&#xff0c;即可便捷高效处理文字、识别图像、分析文档。 正文 据华为终端官方微…

高速公路声光预警定向广播助力安全出行

近年来&#xff0c;高速重大交通事故屡见不鲜&#xff0c;安全管控一直是高速运营的重中之重。如何利用现代化技术和信息化手段&#xff0c;创新、智能、高效的压降交通事故的发生概率&#xff0c;优化交通安全管控质量&#xff0c;是近年来交管部门的主要工作&#xff0c;也是…

如何恢复电脑硬盘删除数据?提供一套实用恢复方案

在数字化时代&#xff0c;电脑硬盘中存储的数据对于个人和企业来说都至关重要。然而&#xff0c;有时我们可能会不小心删除了一些重要文件&#xff0c;或者因为某种原因导致数据丢失。这时候&#xff0c;恢复硬盘上被删除的数据就显得尤为重要。本文将为您提供一套实用的电脑硬…

stable diffusion 模型和lora融合

炜哥的AI学习笔记——SuperMerger插件学习 - 哔哩哔哩接下来学习的插件名字叫做 SuperMerger,它的作用正如其名,可以融合大模型或者 LoRA,一般来说会结合之前的插件 LoRA Block Weight 使用,在调整完成 LoRA 模型的权重后使用改插件进行重新打包。除了 LoRA ,Checkpoint 也…

Starlink全系卫星详细介绍,波段频谱、激光星间链路技术、数据传输速率等等

Starlink全系卫星详细介绍&#xff0c;波段频谱、激光星间链路技术、数据传输速率等等。 Starlink是SpaceX公司开发的一个低轨道&#xff08;LEO&#xff09;卫星网络系统&#xff0c;旨在为全球用户提供高速宽带互联网服务。截至2024年6月&#xff0c;Starlink已经发射并运行…

90 岁老人靠一辆自行车年赚 170 亿,捷安特如何打造山地车极致产品力?

一位富家小开在中年时经商失败&#xff0c;38岁时从零开始创业&#xff0c;最终在自行车整车市场占据了70%的份额&#xff0c;他是怎么做到的&#xff1f; 一家曾为美国自行车品牌代工的台湾工厂&#xff0c;成功从ToB转型为ToC业务&#xff0c;从90%的代工业务转变为全球最大…

创新实训2024.05.01日志:document-loaders

在建立易学知识库的过程中&#xff0c;仅仅有向量数据库以及词嵌入模型、分词器是不够的&#xff0c;因为我们有大量的非结构化文本&#xff08;如doc,pdf&#xff09;或者是图片需要上传&#xff08;例如pdf里面有图片&#xff09;&#xff0c;此时词嵌入无法直接向向量数据库…

Scikit-Learn梯度提升决策树(GBDT)

Scikit-Learn梯度提升决策树 1、梯度提升决策树(GBDT)1.1、Boosting方法1.2、GBDT的原理1.3、GBDT回归的损失函数1.4、梯度下降与梯度提升1.5、随机森林与GBDT1.6、GBDT的优缺点2、Scikit-Learn梯度提升决策树(GBDT)2.1、Scikit-Learn GBDT回归2.1.1、Scikit-Learn GBDT回归…

中国灌溉农田空间分布

针对全国灌溉农田空间分布数据缺失的现状&#xff0c;融合MODIS植被指数和统计数据生成MIrAD-GI临时灌溉数据集&#xff0c;再利用约束统计和协同绘图方法将其与中国区域现有灌溉数据进行集成、整合&#xff0c;生成了2000-2019年中国逐年灌溉农田分布数据集&#xff08;500米空…

【vLLM】核心技术PagedAttention,调度原理

vLLM 简介 来自加州大学伯克利分校、斯坦福大学、加州大学圣迭戈分校的研究人员基于操作系统中经典的虚拟(Virtual)内存和分页(Page)技术&#xff0c;提出了一个新的注意力算法 PagedAttention&#xff0c;并打造了一个LLM服务系统——vLLM&#xff0c;官网为&#xff1a;http…

Anthropic AI模型Claude 3.5 Sonnet在Amazon Bedrock上正式可用

Claude 3.5 Sonnet是Anthropic最先进的Claude系列AI模型的新成员&#xff0c;比Claude 3 Opus更智能且价格只有其五分之一 北京——2024年6月21日 亚马逊云科技宣布&#xff0c;Anthropic最新、最强大的模型Claude 3.5 Sonnet现已在Amazon Bedrock上正式可用&#xff0c;该模型…

在智星云租用算力时,如何选择适合的GPU?

智星云平台分配GPU、CPU、内存的机制为&#xff1a;按租用的GPU数量成比例分配CPU和内存&#xff0c;算力市场显示的CPU和内存均为每GPU分配的CPU和内存&#xff0c;如果租用两块GPU&#xff0c;那么CPU和内存就x2。此外GPU非共享&#xff0c;每个实例对GPU是独占的。 一. CPU…

推动产业数字化转型,六个方面引领变革

从工业经济时代走向数字经济时代&#xff0c;世界经济发生着全方位、革命性的变化&#xff0c;产业数字化便是最显著的表现之一。当前&#xff0c;产业数字化不断深入发展&#xff0c;平台经济、工业互联网、智能制造等新业态、新模式不断涌现&#xff0c;成为了数字经济的重要…

API低代码平台介绍5-数据库记录修改功能

数据库记录修改功能 在上篇文章中我们介绍了如何插入数据库记录&#xff0c;本篇文章会沿用上篇文章的测试数据&#xff0c;介绍如何使用ADI平台定义一个修改目标数据库记录的接口&#xff0c;包括 单主键单表修改、复合主键单表修改、多表修改&#xff08;整合前两者&#xff…

1.接口测试-postman学习

目录 1.接口相关概念2.接口测试流程3.postman基本使用-创建请求&#xff08;1&#xff09;环境&#xff08;2&#xff09;新建项目集合Collections&#xff08;3&#xff09;新建collection&#xff08;4&#xff09;新建模块&#xff08;5&#xff09;构建请求请求URLheader设…

pretender:一款功能强大的红队MitM安全测试工具

关于pretender pretender是一款功能强大的红队MitM安全测试工具&#xff0c;该工具专为红队研究人员设计&#xff0c;该工具不仅能够进行MitM和中继攻击&#xff0c;而且还支持执行DHCPv6 DNS接管以及mDNS、LLMNR和NetBIOS-NS欺骗攻击。在该工具的帮助下&#xff0c;广大研究人…

学生护眼大路灯应该怎么选?五款护眼大路灯对比推荐

我们都知道光线无处不在&#xff0c;想要减少近视隐患&#xff0c;就不得不提一下护眼灯了&#xff0c;特别是经常坐在电脑前码字的上班族以及深夜还在学习的学生党这一类人群&#xff0c;经常用眼光线不好不仅影响视力健康&#xff0c;还会影响效率。而一款护眼灯能够提供柔和…

Vue的学习之安装Vue

目录 一、Vue的特点 二、Vue的学习 一、Vue的特点 1.采用组件化模式&#xff08;xxx.vue包含htmlcssjs&#xff09; 2.声明式编码&#xff0c;编码人员无需直接操作DOM&#xff0c;提高开发效率 3.使用虚拟DOM优秀的DIFF算法&#xff08;DIFF是用于新旧虚拟DOM的比较&#…

Adobe Dimension(Dn)下载:附安装包+详细教程

Adobe Dimension常常被简称为Adobe DN&#xff0c;它是一款三维建模设计软件&#xff0c;能让图形设计工作者在平面基础上构建高质量、高逼真的3D图像&#xff0c;将2D/3D构建成可视化场景。除此之外&#xff0c;它还能与 Photoshop和Illustrator等软件紧密的结合起来&#xff…

autodeauth:一款功能强大的自动化Deauth渗透测试工具

关于autodeauth autodeauth是一款功能强大的自动化Deauth渗透测试工具&#xff0c;该工具可以帮助广大研究人员以自动化的形式针对本地网络执行Deauth渗透测试&#xff0c;或者枚举公共网络。当前版本的autodeauth已在树莓派OS和Kali Linux平台上进行过测试&#xff0c;之后的…