一、jsp三种Scriptlet(脚本小程序)
1、<% %> :定义局部变量、编写语句等。
<%
String str = "hello world!";//定义局部变量
out.println(str);//编写语句
%>
2、<%! %> :定义全局变量、方法和类。(虽然此方可以编写类,但不建议使用。我们一般通过JavaBean的形式调用类)
<%!
public static final String INFO = "JAVA Web";//定义全局变量
%>
<%!
public int add(int x, int y){//定义方法
return x+y;
}
%>
<%!
class Person{//定义类
}
%>
<%//编写普通脚本
out.println("INFO");//调用全局变量
out.println(add(3,5));//调用方法
%>
3、<%= %> :输一个变量或一个具体内容
<%
String str = "java";
%>
<h1><%=str%><h1>//使用表达式输出变量
<h2><%="java web"%></h2>//使用表达式输出常量
二、包含
1、静态包含
<%@ include file="a.html" %>
<%@ include file="a.jsp" %>
2、动态包含
2.1不带参数
<jsp:include page="a.html"/>
<jsp:include page="a.jsp"/>
2.2带参数
<jsp:include page="a.jsp">//向被包含页面传入两个参数
<jsp:param name="name" value="<%=username%>"/>
<jsp:param name="info" value="java web"/>
</jsp:include>
静态是先包含再处理,动态是行处理后包含,所以我们应该多用动态包含。
例:a.jsp文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<%@ page contentType="text/html;charset=GBK" pageEncoding="GBK" %>
<%
int i = 100;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>page</title>
</head> <body class="tundra">
<h1>jsp-<%=i%></h1>
</body>
</html>
index.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<%@ page language="java" pageEncoding="GBK"%>
<%@ include file="a.jsp"%>//静态包含
<%
int i=10;
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
<title>My Web</title>
</head> <body class="tundra">
<div><h1>jsp-<%=i%></h1></div>
</body> </html>
如果用静态加载会报错,因为静态是先合并再处理,当合并后就定义了两个相同的i变量,因此显示时报错。
但如果是动态是则是先处理后合并,因此可以正常显示两条结果。