三种Scriptlet总结

本文介绍了JSP中的三种Scriptlet标记:<%%>用于定义局部变量和执行语句;<%!%>用于定义全局变量、方法和类;<%=%>用于表达式输出。同时探讨了这些标记如何帮助实现Java代码与HTML的结合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是Scriptlet?

在JSP中,Scriptlet称为脚本小程序,所有嵌套在HTML代码中的Java程序都必须使用Scriptlet标记出来。

第一种:<% %>

在此Scriptlet中可以定义局部变量(并非全局变量)编写语句

例如:

<%

  int x=10;

  out.println("<p>x="+x+"</P>");

%>

<%

  out.println("<p>x="+x+"</P>");

%>

初学JSP者看到上面这段代码可能会觉得陌生又熟悉,那是因为这完全就是java代码,却又输出了HTML语句,没错!这就是使用java语句在网页上显示"x=10"

第二次在网页上显示变量x时,同样是"x=10",小编以前以为<% %>里面定义的变量是局部变量所以出了<% %>就会报错,但其实不是,想想Java中对局部变量的定义,局部变量存在在一个方法中或者以个代码块中,如果上面的<% %>全部去掉,是不是像Java中的一个代码块了呢?所以第二次输出也是正确的。

第二种:<%! %>

在这种Scriptlet中可以定义全局变量,方法,类

 

<%!public static final String info = "www.baidu.com";//定义全局变量

public int add(int a, int b) {//定义方法
return a + b;
}

class Person {//定义类
private String name;
private int age;

public Person() {
}

public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String toString() {
return "name=" + this.name + "\tage=" + this.age;
//在此方法中不可以有输出语句
}
}%>
<%
out.println("<p>info=" + info + "</p>");
out.println("<p>3+5=" + add(3, 5) + "</p>");
out.println("<p>个人信息:" + new Person("张三", 12).toString() + "</p>");
%>

网页上显示结果:

第三种:<%=%>

 在此Scriptlet中输出一个变量或一个具体的常量,称为表达式输出

将上面的输出形式换成下面的输出形式:

<p>info=<%=info %></p>
<p>3+5=<%=add(3,5) %></p>
<p>个人信息:<%=new Person("张三",12).toString() %></p>

将得到同样的效果.

那么问题来了,既然这两种输出形式的效果一样,那么以后是不是随便写那个都可以呢?

尽量不要使用out.println();输出,而使用表达式输出

在jsp的开发中,实际上就是在HTML中加入一些控制及输出的语句,所以在输出时为了使HTML代码和Java代码相分离,最好的做法是只输出由Java(JSP)程序产生的变量,那么这时使用表达式输出就比使用out.println()更加方便.

小编还在学习阶段,如果有写的不好的地方,请大神指教O(∩_∩)O~~

转载于:https://www.cnblogs.com/linwen5723/p/5967674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值