一、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变量,因此显示时报错。
但如果是动态是则是先处理后合并,因此可以正常显示两条结果。
时间: 2024-12-05 14:28:39