JSP使用教程(第四版)学习笔记

第二.一章 jsp基本结构

JSP页面的五种组成元素

  1. HTML标记和Javascript标记
  2. JSP标记 <%@ %>
  3. 变量和方法声明 <%! %>
  4. Java程序片 <% %>
  5. Java表达式 <%= %>

TIPSjavascript 与 java 的区别
在这里插入图片描述

转自https://blog.csdn.net/qq_39071599/article/details/89704866

JSP运行原理
总的来说,服务器将JSP文件转译为Java文件,再将此Java文件编译生成字节码文件并执行之以响应用户的请求。
其中HTML及Javascript标记直接交由用户的浏览器执行,其余则由服务器处理后将结果发送至浏览器端

学习视频
https://www.bilibili.com/video/BV1XX4y157zx?p=9

例子源码`<%@page contentType=“text/html” %>
<%@page pageEncoding=“utf-8” %>
<%@page import=“java.time.LocalTime” %>
<%! public int continueSum(int start,int end){//定义方法
int sum = 0;
for(int i=start;i<=end;i++)
sum=sum+i;
return sum;
}
%>

<% //Java程序片: LocalTime timeServer = LocalTime.now(); int hour = timeServer.getHour(); int minute = timeServer.getMinute(); int second = timeServer.getSecond(); int nano = timeServer.getNano(); int millisecond = nano/1000000; out.print("服务器时间:
"+hour+":"+minute+":"+second+":"+millisecond); int start = 1; int end = 100; int sum = continueSum(start,end); %>

从 <%= start %> 到 <%= end %> 的结果是: <%= sum %>

`

第二.二章 声明变量和定义方法

一 声明变量
例:<%! int i = 0 %>
所声明的变量在整个JSP页面内都有效,且由Tomcat服务器所开辟的各线程所共享。
课本源码:

<%@page contentType="text/html" %>
<%@page pageEncoding="gb2312" %>
<html>
<body bgcolor="yellow">
<%! int i=0; %>
<% i++;%>
<p style="font-family: 黑体;font-size: 36px">你是第<% = i %>个访问本站的用户
</p>
</body>
</html>

**不知道为啥,这段代码运行不了,会报错在这里插入图片描述
**
二 定义方法和类
定义的方法和类都是在java程序片中被使用和创建。

<%@page contentType="text/html; ISO-8859-1" %>
<%@page pageEncoding="utf-8" %>
<html>
<body bgcolor="yellow">
<p style="font-family: 黑体;font-size: 36;color: blue"></p>
<%! double multi(double x,double y){return x*y;}double div(double x,double y){return  x/y;
}
class Circle{double r;double getArea(){return 3.1415926*r*r;}
}
%>
<% double x=8.79;double y = 20.8;out.print("调用multi方法计算"+x+"与"+y+"的积:<br>");out.print(multi(x,y));out.print("<br>调用div方法计算"+y+"除以"+x+"的商,<br>");String s = String.format("小数点保留三位:%10.3f",div(y,x));out.print(s);Circle circle = new Circle();circle.r=3.6;out.print("<br>半径是"+circle.r+"圆的面积"+circle.getArea());
%>
</body>
</html>

第二.三章 java程序片

<% %>中声明的变量称为局部变量,在jsp页面后继的所有程序片以及表达式中有效。Tomcat各线程操作的局部变量互不影响。

synchronized关键字修饰的方法,当一个线程在执行程序片是调用该方法,其他线程就只能等正在调用该方法的线程执行完再去执行。
例ex2_4

<%@page contentType="text/html" %>
<%@page pageEncoding="utf-8" %>
<html>
<body bgcolor="yellow">
<%! int count=0;synchronized void  setCount(){count++;}
%>
<% setCount();out.print("您是第"+count+"个访问本站的客户");
%>
</body>
</html>

例ex2_5

<%@page contentType="text/html" %>
<%@page pageEncoding="utf-8" %>
<html>
<body bgcolor="#00ffff">
<%int number = 7+(int)(Math.random()*13);if(number<=13){
%><center><h2>显示中奖</h2><img src="image/zhong.jpg">
<%  }else{
%><center><h2>显示中奖</h2><img src="image/mei.png">
<%}
%>
</body>
</html>

Java程序片在服务器就编译执行了,对要展示的图片进行了选择,到用户浏览器界面就只剩展示图片的html标记了

第二.四章 java表达式

注释

第二.五章 JSP指令标记

  1. page指令
    <%@ page 属性1=“属性1的值” %>
    常用属性:
    contentType 浏览器采用的译码方式
    import 导入java 包
    pageEncoding 指定页面编码
    info 指定一个常用且常修改的字符串
    通过getServletInfo()方法获取info的属性值

  2. include指令
    用于代码复用,将一个页面整个嵌入另一个页面
    <%@ include file=“文件位置” %>

第二.六章 JSP动作标记

格式

  • include动作标记
    作用:动态的包含一个文件,区别于前者指令标记,前者是将包含文件与原JSP页面合并以产生新的JSP页面,后者是在原JSP页面运行时执行要包含的文件,若包含文件为文本文件则将文件内容显示到用户端,若为JSP页面则执行该文件,并将结果发送至浏览器显示。
    格式
    1.<jsp:include page=“文件的URL”/>
    2.<jsp:include page=“文件的URL”>
    param子标记
    </jsp:include>
  • forward动作标记
    作用:从该指令处停止该页面的执行,转向执行page属性指定的jsp页面。
    注意:尽管用户看到了转向后的页面效果,但浏览器地址栏中仍是转向前的JSP页面URL,所以刷新后,重新执行浏览器地址栏中的JSP页面。
    格式
    类似与上把include换成forward

param子标记
<jsp:param name=“属性名” value=“属性值”/>
必须和jsp:forward,jsp:include,jsp:plugin 等一起协同使用

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

J2EE开发系列视频教程

BF-TECH3.0 J2EE软件工程师高薪就业品牌课程 适合人群:初级 课时数量:900课时 用到技术:J2EE 涉及项目:权限管理通用模块、易买网、CRM客户关系管理系统等 咨询qq:1840215592 J2EE开发视频教程结合项目,进行实战图书馆信息管理系统、QQ聊天室、B2C网上书店网、论坛短消息…

jsp mysql视频_手把手教你做jsp servlet mysql实现的图书管理系统附带视频开发教程和完整源码...

上一个教程我们做的是对数据库框架底层原理的讲解&#xff0c;然后教大家做了一个自己的数据库框架&#xff0c;这次我们做的这个图书管理系统就是用我们上个教程自己写的数据库框架&#xff0c;整个项目做完框架运行的很稳定&#xff0c;没有出现任何问题。如果你还没有学习我…

最新依米花H5音乐播放器系统源码+Thinkphp内核

正文: 最新依米花H5音乐播放器系统源码Thinkphp内核&#xff0c;源码0加密&#xff0c;如果无法发送邮箱和短信啥的&#xff0c;就是你没配置好&#xff0c;自己去检查。 安装环境: 国内外服务器都可以用主机无法运行需求环境 php7.3mysql5.6/5.7 推荐5.7,设置public为运行目…

现代视频播放器原理

近年来&#xff0c;多平台适配需求的增长导致了流媒体自适应码率播放的兴起&#xff0c;这迫使 Web 和移动开发者们必须重新思考视频技术的相关逻辑。首先&#xff0c;巨头们分分发布了 HLS、HDS 和 Smooth Streaming 等协议&#xff0c;把所有相关细节都隐藏在它们专供的 SDK …

Android 饺子播放器插件使用

最新一段时间在学习关于Android的视频开发相关知识&#xff0c;先研究了android 视频播放的原生开发&#xff1a;videoview、surfaceHolderMediaPlayer&#xff0c;然后是第三方插件的使用&#xff0c;饺子播放器使用方便&#xff0c;易于集成&#xff0c;记录一下。 1、在app…

C#实现简单音乐播放器

由于C#大作业需要&#xff0c;在网站上找了一个视频&#xff0c;跟着敲了一遍&#xff0c;能运行&#xff0c;对于怎么执行的我也不太清除&#xff0c;原视频链接 今天把他搬过来了&#xff1a;b站链接 加了一个登陆窗体&#xff0c;数据库用的 SQLServer2008 &#xff0c;不用…

Android 月亮播放器,月亮播放器安卓版

月亮播放器安卓版是一款非常适合女生观看的的美妆、舞蹈视频播放器&#xff0c;提供最新、最火的化妆、美容护肤、瘦身美体、编发、美甲、潮流服饰和舞、现代舞、古典舞、民间舞、国标舞、广场舞、肚皮舞、芭蕾舞等。 月亮播放器安卓版功能 【舞蹈频道】舞蹈频道覆盖街舞、现代…

腾讯云服务器搭建网站详细教程_2023更新

使用腾讯云服务器搭建网站全流程&#xff0c;包括轻量应用服务器和云服务器CVM建站教程&#xff0c;轻量可以使用应用镜像一键建站&#xff0c;云服务器CVM可以通过安装宝塔面板的方式来搭建网站&#xff0c;腾讯云服务器网分享使用腾讯云服务器建站教程&#xff0c;新手站长搭…

2000-2021年上市公司绿色投资环保投资与营业收入之比数据(原始数据+计算代码+计算结果)

2000-2021年上市公司绿色投资环保投资与营业收入之比数据&#xff08;原始数据计算代码计算结果&#xff09; 1、时间&#xff1a;2000-2021年 2、来源&#xff1a;上市公司年报 3、指标&#xff1a;证券代码、企业名称、年份、管理费用环保投资、管理费用环保投资/营业收入…

webassembly001 webassembly简述

WebAssembly 官方地址:https://webassembly.org/相关历史 https://en.wikipedia.org/wiki/WebAssembly https://brendaneich.com/2015/06/from-asm-js-to-webassembly/WebAssembly&#xff08;缩写为Wasm&#xff09;是一种基于堆栈的虚拟机的二进制指令格式。Wasm 被设计为编…

随意取名取字php,取名字不能太随意

不管有没有文化&#xff0c;一个人对自己的名字和对自己孩子的名字一定是非常上心的。过去的人自己认识字就请别人帮忙给自己的孩子取名&#xff0c;具体的意思和名字的成色根本没法保证。现在人很多都是高学历的人都在学着自己给孩子起名&#xff0c;相对来说就更随意写了。 不…

【 Python 全栈开发 - 人工智能篇 - 45 】集成算法与聚类算法

文章目录 一、集成算法1.1 概念1.2 常用集成算法1.2.1 Bagging1.2.2 Boosting1.2.2.1 AdaBoost1.2.2.2 GBDT1.2.2.3 XgBoost 1.2.3 Stacking 二、聚类算法2.1 概念2.2 常用聚类算法2.2.1 K-means2.2.2 层次聚类2.2.3 DBSCAN算法2.2.4 AP聚类算法2.2.5 高斯混合模型聚类算法 一、…

C++--两个数组的dp问题(2)

1.交错字符串 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 给定三个字符串 s1、s2、s3&#xff0c;请判断 s3 能不能由 s1 和 s2 交织&#xff08;交错&#xff09; 组成。 两个字符串 s 和 t 交织 的定义与过程如下&#xff0c;其中每个字符串都…

Python序列类型

序列&#xff08;Sequence&#xff09;是有顺序的数据列&#xff0c;Python 有三种基本序列类型&#xff1a;list, tuple 和 range 对象&#xff0c;序列&#xff08;Sequence&#xff09;是有顺序的数据列&#xff0c;二进制数据&#xff08;bytes&#xff09; 和 文本字符串&…

ubuntu 16.04 命令行测网速 简单快速

我们在终端直接输入 speedtest-cli 会提示 The program speedtest-cli is currently not installed. You can install it by typing: sudo apt install speedtest-cli这已经提示了我们应该怎么做&#xff1a; $ sudo apt install speedtest-cli安装完成后 输入 speedtest…

20190228-ubuntu测网速-speedtest-cli

ubuntu 测速 https://blog.csdn.net/xdhyqd/article/details/112917302 ubuntu 网速测试方法 https://www.machunjie.com/linux/718.html Ubuntu/Centos服务器测网速方法|怎样测试服务器的上传下载网速&#xff1f; https://www.cnblogs.com/sawyer22/p/9985567.html Ubuntu1…

JavaScript中的事件循环(Event Loop)

1. 概述 javaScript是单线程的&#xff0c;意味着它一次只能执行一个任务。然而&#xff0c;许多操作&#xff0c;如网络请求、定时器等&#xff0c;都会导致延迟&#xff0c;如果程序在等待这些操作完成时&#xff0c;可能会操作一个阻塞的效果&#xff0c;影响用户体验。这个…

《C语言编程环境搭建》工欲善其事 必先利其器

C语言编译器 GCC 系列 GNU编译器套装(英语&#xff1a;GNU Compiler Collection&#xff0c;缩写为GCC)&#xff0c;指一套编程语言编译器&#xff0c;常被认为是跨平台编译器的事实标准。原名是&#xff1a;GNU C语言编译器(GNU C Compiler)。 MinGW 又称mingw32 &#xff0c…

MDK 5.xx.0 + STM32F10x 笔记

天才脑袋比不上烂笔头, 写给自己看, 自用资料。 安装MDK STM32环境 Download MDK安装 MDK -> c:\keil_v5 用默认路径下载 ARMCC V5.06 Update 7 (build960) <- 长期稳定支持版本安装至 c:\keil_v5\arm\ARMCC开启 uVision.设定 预设编译程序版本 : V5.06 Update 7 (bui…

Sloare flare网卡信息

详细的安装信息 https://github.com/Xilinx-CNS/onload/tree/master/scripts 进行下载 Solarflare网卡开发:openonload 安装与调试_openonload安装_Erice_s的博客-CSDN博客 cns-sfnettest测试 cns-sfnettest 下载