JSP中的Scriptlet
来源:互联网 发布:python做的游戏有哪些 编辑:程序博客网 时间:2024/06/05 07:56
1-Scriptlet
在JSP中大部分都是由脚本小程序组成,所谓的脚本小程序就是里面直接包含了JAVA代码。
在JSP中Scriptlet一共分为三种:
· <%%>:定义局部变量,编写语句
· <%!%>:定义全局变量,可以编写类、方法
· <%=%>:表达式输出,专门输出变量或一个具体值
1.1 <%%>
此为最常见的Scriplet代码,代码如下:
JSPDemo02.jsp:
<%
int i = 10 ;
int j = 20 ;
out.println(i * j) ;
out.println("<h1>"+(++i)+"</h1>") ;
%>
发现,以上的程序无论怎么刷新页面,i的内容依然是11,是固定的,因为每次都重新声明了。
1.2、<%!%>
一般情况下都会使用此Scriplet定义一个全局变量,全局变量是无论怎么刷新,都只声明一次,只有很少的情况下才会用此语句去定义一个方法,但是100%情况下是不可能去定义一个类的。
<%!
int i = 10 ;
int j = 20 ;
%>
<%
out.println(i * j) ;
out.println("<h1>"+(++i)+"</h1>") ;
%>
程序中,只要一刷新页面,则就自己增加,因为声明的是一个全局变量,所以只声明一次。
例如:在<%!%>定义一个方法,不要轻易这样使用
<%!
int i = 10 ;
int j = 20 ;
public int add(int x,int y){
return x + y ;
}
%>
<%
out.println(add(10,20)) ;
out.println("<h1>"+(++i)+"</h1>") ;
%>
3-、<%=%>
表达式输出,专门输出一个变量或一个具体的值。
例如:以下代码使用了表达式输出
<%
int i = 10 ;
%>
<%=i%>
<%="hello World!!!"%>
4-使用那种输出更好呢?
之前已经学过了两种输出数据:
· out.println
· <%=%>
为了验证此程序,下面通过两段代码进行比较,此代码的功能就是在屏幕上打印一个表格。
4.1使用out.println()完成
<%
out.println("<table border=\"1\">") ;
for(int i=0;i<10;i++){
out.println("<tr>") ;
for(int j=0;j<10;j++){
out.println("<td>"+(i*j)+"</td>") ;
}
out.println("</tr>") ;
}
out.println("</table>") ;
%>
以上确实已经完成了功能。但是现在需要美化表格的话,根本无法用网页工具进行编辑。因为把JAVA代码和HTML代码绑在一起了,所以修改困难
4.2 使用<%=%>完成
所以,最好将HTML与JAVA代码进行分割
<table border="1">
<%
for(int i=0;i<10;i++){
%>
<tr>
<%
for(int j=0;j<10;j++){
%>
<td><%=i*j%></td>
<%
}
%>
</tr>
<%
}
%>
</table>
通过以上实现的代码,发现使用表达式输出要比直接使用out.println输出更方便,而且便于修改,所以在开发中严格要求,不允许出现任何的out.println语句。
5-思考?
要求JSP页面可以根据用户前台表单输入的信息,打印表格,例如:前台可以输入表格的行数和列数。接收之后进行打印。
JSPDemo08.htm:
<FORM METHOD="POST" ACTION="JSPDemo08.jsp" border="1">
<TABLE>
<TR>
<TD colspan="2">打印表格</TD>
</TR>
<TR>
<TD>输入要打印表格的行数:</TD>
<TD><input type="text" name="rownum"></TD>
</TR>
<TR>
<TD>输入要打印表格的列数:</TD>
<TD><input type="text" name="colnum"></TD>
</TR>
<TR>
<TD colspan="2">
<input type="submit" value="打印">
<input type="reset" value="重置">
</TD>
</TR>
</TABLE>
</FORM>
JSPDemo08.jsp:
<%
// 需要接收请求内容
int row = 0 ;
int col = 0 ;
try{
row = Integer.parseInt(request.getParameter("rownum")) ;
col = Integer.parseInt(request.getParameter("colnum")) ;
}catch(Exception e){
%>
<h1>ERROR!!!</h1>
<%
}
%>
<table border="1">
<%
for(int i=0;i<row;i++){
%>
<tr>
<%
for(int j=0;j<col;j++){
%>
<td><%=i*j%></td>
<%
}
%>
</tr>
<%
}
%>
</table>
整个程序上体现出了完整的交互性的效果,根据用户输入的内容可以自己进行相应的输出
- jsp中的scriptlet
- JSP中的Scriptlet
- JSP中的scriptlet和注释
- JSP-Scriptlet
- JSP中的注释操作及JSP中的三种Scriptlet
- jsp中的三种Scriptlet写法及其区别
- JSP语法(5)Scriptlet
- JSP语法 Scriptlet
- JSP基础----Scriptlet
- JSP 全局变量 scriptlet变量
- Scriptlet
- jsp参考(四) 脚本元素[scriptlet]
- http://localhost:8080/jsptech/scriptlet.jsp
- JSP注释、声明、指令、scriptlet、表达式
- JSP基础语法:注释、Scriptlet、编译指令
- DHTML Scriptlet ----Web中的可重用对象
- 01---jsp基本语法01(注释与scriptlet)
- jsp学习笔记——Scriptlet(脚本小程序)
- 比特币架构的改进思路
- 软件开发从业者的职责
- HYSBZ
- Leading and Trailing LightOJ1282
- 关于VMWARE复制文件出现“无法写入虚拟机”及解决方案
- JSP中的Scriptlet
- Prioject Euler problem2 :Even Fibonacci numbers
- 最大子数组的和问题--线性算法
- POJ.2251 Dungeon Master (三维BFS)
- HDU 6052 To my boyfriend 思维 + 枚举(计数)
- keepalived搭建高可用负载均衡服务
- 学生管理系统代码赏析
- 红米MIUI使用Andriod Studio不能调试问题
- 软件项目最常见的失败原因分析