您的位置:首页 > Web前端 > JavaScript

jsp基础语法【01】---scriptlet

2013-01-06 17:16 363 查看
JSP作为WEB的开发基础,有其重要的地位,那么熟练掌握JSP的语法及应用就成了重中之重。

首先我们一起先从JSP的基本语法学起:(以下内容来自李兴华视频手稿整理)

scriptlet简介

Script表示的是脚本小程序,像之前out.println()这个语句是缩写在<%%>之中的,很明显,这里面 缩写的语句就是一个script. 

在jsp中最重要的部分就是Scriptlet(脚本小程序),所有嵌入在HTML代码中的java程序都必须使用
Scriplet标记出来,在jsp中一共有三种scriplet代码

第一种:<% %>,在此scriplet中可以定义局部变量、编写语句;

第二种:<% ! %>, 在此scriplet中可以定义全局变量、方法、类;

第三种:<% = %>,用于输出一个变脸或一个具体内容。

第一种script<%%>

<html>
<head>
<body>
<%
int x=10;
String info="www.baidu.com";
out.println("<h2>x="+x++ +"</h2>");
out.println("<h2>info="+info+"</h2>");
%>
</body>
</head>
</html>

将纯java代码插入到jsp页面中时要放在<%%>中

第二种script<%!%>

主要的功能是定义全局变量、方法、类,假设下面定义方法和类,进行验证

<%!
public static final String info="www.baidu.com";
%>
<%!
public int add(int x,int y){
return x+y;
}
%>
<%!
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return "name="+this.name+";age="+
this.age;
}
}
%>
<%
out.println("<h3>info="+info+"</h3>");
out.println("<h3>3+5="+add(3,5)+"</h3>");
out.println("<h3>"+new Person("zhengsan",30)+"</h3>");
%>


如果现在在<%!%>中定义的是变量的话,那么则表示的是全局变量,每次刷新时都不会重复声明

<%!
public static final String info="www.baidu.com";
int  x=10;
%>
<%
out.println("<h2>" + x++ +"</h2>");
%>
<%!
public int add(int x,int y){
return x+y;
}
%>
<%!
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return "name="+this.name+";age="+
this.age;
}
}
%>
<%
out.println("<h3>info="+info+"</h3>");
out.println("<h3>3+5="+add(3,5)+"</h3>");
out.println("<h3>"+new Person("zhengsan",30)+"</h3>");
%>


一般而言,使用<%!%>的操作都是声明全局常量较多,而所谓的定义方法或定义类基本基本上是不适用的,也没有必要这么去做
第三种 Script: <%=%>

这种Script主要的功能是用于输出的操作,可以输出一个变量或一个具体的内容

<%
String info="www";
int temp=30;
%>
<h3>info=<%=info%></h3>
<h3>temp=<%=temp%></h3>
<h3>name=<%="zhaoyuqiang"%></h3>


问题: 现在如果要输出之前学习过的out.println,现在又学习了<%=%> 该使用哪一种更好呢?
那么我们说呢 在这种情况下呢 最好是使用<%=%>比较方便。

out.println();这种方法在jsp中完全摒弃掉
下面两个程序是打印表格的,分别用了out.println()和<%=%>两种方法:

<html>
<head>
<title>zhaoyuqiangde javaweb开发</title>
</head>
<body>
<%
int rows=10;
int cols=10;
out.println("<table border=\"1\" width=\"100%\">");
for(int x=0;x<rows;x++){
out.println("<tr>");
for(int y=0;y<cols;y++){
out.println("<td>"+(x*y)+"</td>");    //用了out.println()
}
out.println("</tr>");
}
out.println("</table>");
%>
</body>
</html>


这种输出最直接的问题就是HTML代码和java代码完全混合在了一起
而且生成的代码也不舒服,没有缩进
最关键的是jsp的内容是要显示给用户看的,美工是需要修改的,而美工不懂程序,只能使用工具。

使用表达式<%=%>
<html>
<head>
<title>zhaoyuqiangde javaweb开发</title>
</head>
<body>
<%
int rows=10;
int cols=10;
%>
<table border="1" width="100%">
<%
for(int x=0;x<rows;x++){
%>
<tr>
<%
for(int y=0;y<cols;y++){
%>
<td bgcolor="#oocc33"><%=x*y%></td>
<%
}
%>
</tr>
<%
}
%>
</table>

</body>
</html>


此种操作虽然代码复杂了,但是达到了一点,HTML代码页java相分离了
所以一定要注意的是,以后在使用输出的时候,坚决的不再使用out.pirntln(0),而使用<%=%>

在jsp中,这三种方法贯穿始终,可以说是最简单的了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息