- 普通的html标记和javascript标记
- jsp 标记 <%@ %>
- 变量声明和方法定义 <%! %>全局变量
- java程序片 <% %>
- JAVA 表达式 <%= %>
- 习惯上放在jsp页面指令后,之前
- <%! %>全局变量 与位置无关
- <%! %>声明的方法仅在该程序片中有效
- <%! %>定义的类,为内部类,可以在Java程序片中使用该类创建对象
Tomcat服务器将jsp转译为Java后,<%! %>之间的变量作为类的成员变量,这些变量占用的内存空间直到服务器关闭才释放
多个用户请求一个jsp页面时,服务器为每个用户启动一个线程,由服务器管理,这些线程共享jsp页面的成员变量,任何一个用户对成员变量操作,都会影响其他用户
可以将一个Java程序片分割为几个程序片,并在其中插入其他标记元素。
- <%= %>可插入一个求值表达式
- 表达式由服务器计算,计算结果用字符串形式发送到用户端显示
page指令标记 include指令标记
6.jsp动作标记include动作标记 forward动作标记
难点
Java程序片
jsp动作标记
关键实践
消费总和
听英语
<%@ page language="java" contentType="text/html" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.util.regex.Pattern"%>
<%@ page import ="java.util.regex.Matcher"%>
<%!
public double getPriceSum(String input){
Pattern pattern;
Matcher matcher;
String regex="-?[0-9][0-9]*[.]?[0-9]*";
pattern = Pattern.compile(regex);
matcher = pattern.matcher(input);
double sum=0;
while(matcher.find()){
String str = matcher.group();
sum+=Double.parseDouble(str);
}
return sum;
}
%>
张三的菜单:
<%String str= "麻婆豆腐:20.6元,红烧肉:68.9元";
%>
<%=str%>
消费总和:<%=getPriceSum(str) %>
李四的菜单:
<%str= "剁椒鱼头:62.9元,烤鸭:199元,红焖大虾:289.9元";
%>
<%=str %>
消费总和:<%=getPriceSum(str) %>



