第二.一章 jsp基本结构
JSP页面的五种组成元素
- HTML标记和Javascript标记
- JSP标记 <%@ %>
- 变量和方法声明 <%! %>
- Java程序片 <% %>
- Java表达式 <%= %>
TIPS:javascript 与 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指令标记
-
page指令
<%@ page 属性1=“属性1的值” %>
常用属性:
contentType 浏览器采用的译码方式
import 导入java 包
pageEncoding 指定页面编码
info 指定一个常用且常修改的字符串
通过getServletInfo()方法获取info的属性值 -
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 等一起协同使用