三种Scriptlet总结
什么是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~~
三种Scriptlet总结的更多相关文章
- 简谈百度坐标反转至WGS84的三种思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图 ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
- Objective-C三种定时器CADisplayLink / NSTimer / GCD的使用
OC中的三种定时器:CADisplayLink.NSTimer.GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLin ...
- css中的浮动与三种清除浮动的方法
说到浮动之前,先说一下CSS中margin属性的两种特殊现象 1, 外边距的合并现象: 如果两个div上下排序,给上面一个div设置margin-bottom,给下面一个div设置margin-top ...
- ASP.NET Core应用的错误处理[1]:三种呈现错误页面的方式
由于ASP.NET Core应用是一个同时处理多个请求的服务器应用,所以在处理某个请求过程中抛出的异常并不会导致整个应用的终止.出于安全方面的考量,为了避免敏感信息的外泄,客户端在默认的情况下并不会得 ...
- 【Win 10 应用开发】文件读写的三种方案
本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧——事无定法,灵活运用者为上. OK,咱们开始吧 ...
- .NET Core采用的全新配置系统[6]: 深入了解三种针对文件(JSON、XML与INI)的配置源
物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurationSource.XmlConfigura ...
- 监视EntityFramework中的sql流转你需要知道的三种方式Log,SqlServerProfile, EFProfile
大家在学习entityframework的时候,都知道那linq写的叫一个爽,再也不用区分不同RDMS的sql版本差异了,但是呢,高效率带来了差灵活性,我们 无法控制sql的生成策略,所以必须不要让自 ...
- 通过三个DEMO学会SignalR的三种实现方式
一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...
随机推荐
- Java学习基础1
Java 平台: Java API JVM 特点:可跨平台 Java 运行机制: 编译 运行 Java文件-------> ...
- Python数据库备份脚本
Python数据库备份脚本 #!/usr/bin/env python # author: liudong # -*- coding: utf-8 -*- # filename: db_bak.py ...
- 将mac上的项目上传到oschina,进行代码托管。
1.首先看一下自己是否有公钥, 在 我的资料-->SSH公钥 查看,如果没有,添加自己的SSH 公钥: SSH key 可以让你在你的电脑和 Git @ OSC 之间建立安全的加密连接. 2. ...
- eclipse maven插件问题:error occurred while automatically activating bundle org.eclipse.m2e.core.ui (525)
①所有应用Close Project ②重启eclipse ③所有应用Open Project 出自:http://blog.csdn.net/qr719169236/article/details ...
- Android菜鸟成长记10 -- ListVew
ListView在我们学习Android的过程中是非常重要得一个部分. listview主要有两个职责 1)将数据填充到布局. 2)处理用户的选择点击等操作. 一个ListView的创建需要3个元素 ...
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
本篇文章是对MySQL数据库引擎介绍.区别.创建和性能测试进行了详细的分析介绍,需要的朋友参考下 数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎 ...
- wkhtmltopdf中文显示空白或者乱码方框
中文乱码或者空白解决方法 如果wkhtmltopdf中文显示空白或者乱码方框 打开windows c:\Windows\fonts\simsun.ttc拷贝到linux服务器/usr/share/fo ...
- C#实现JSON序列化与反序列化
1.使用 JavaScriptSerializer类实现序列化 namespace: System.Web.Script.Serialization eg: // 序列化 private string ...
- 通过系统自带的内容提供器(ContentResolver)读取系统的通讯录,并设置点击事件
1.布局 主布局只有一个listview,用来显示电话簿的名字和手机号码 <?xml version="1.0" encoding="utf-8"?> ...
- dp与px转换
名词 解释 Px (Pixel像素) 不同设备显示效果相同.这里的“相同”是指像素数不会变,比如指定UI长度是100px,那不管分辨率是多少UI长度都是100px.也正是因为如此才造成了UI在小分辨率 ...