JSP注释
1.在JSP中支持两种注释的语法操作,一种是显式注释,这种注释客户端是允许看见的,另外一种是隐式注释,此种注释客户端是无法看见的。
1):显式注释的语法:
2):隐式注释的语法:
格式一://注释,单行注释
格式二:/*注释*/ 多行注释
格式三:<%--注释--%>,JSP注释。
Comment.jsp的内容:
<%
//Java中提供的单行注释,客户端无法看见
/*
Java中提供的多行注释,客户端无法看见
*/
%>
<%-- 也看不见 --%>
既然是JSP程序,则执行的时候一定要有WEB容器的支持,所以必须启动Tomcat,之后通过浏览器访问Tomcat,并执行程序。通过执行可以发现,运行出来的页面是一个空白页面,但是通过右键点击“查看源文件”可以看到显式的注释,但是看不到隐式的注释。
Scriptlet表示的是脚本小程序,像之前out.println()这个语句是编写在<%%>之中的,很明显,这里面编写的语句就是一个Scriptlet。
Scriptlet
在JSP中最重要的部分就是Scriptlet(脚本小程序),所有嵌入在HTML代码中的Java程序都必须使用Scriptlet标记出来,在JSP中一共有三种Scriptlet代码:
第一种:<%%>:在此Scriptlet中可以定义局部变量、编写语句。
第二种:<%!%>:在此Scriptlet中可以定义全局变量、方法、类。
第三种:<%=%>:用于输出一个变量或一个表达式值。
第一种scriptlet:<%%>。Scriptlet_01.jsp的内容如下:
<%
int x = 10; //定义局部变量
String info = "www.baidu.com"; //局部变量
out.println("x = " + x + "
"); //语句
out.println("info = " + info + "
"); //语句
%>
通过浏览器输入:http://localhost/skewrain,在目录中点击scriptlet_01.jsp的结果如下图所示:
第二种scriptlet:<%!%>。Scriptlet_02.jsp的内容如下:
<%!
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("INFO = " + INFO + "
");
out.println("3 + 5 = " + add(3,5) + "
");
out.println("" + new Person("skewrain",20) + "
");
%>
通过浏览器输入:http://localhost/skewrain,在目录中点击scriptlet_02.jsp的结果如下图所示:
如果现在在<%!%>中定义的是变量的话,那么则表示是全局变量,每次刷新时不会重复声明。一般而言,使用<%!%>的操作都是声明全局常量较多,而所谓的定义方法或定义类基本上是不使用的。也没有必要这么去做。
第三种scriptlet:<%=%>。这种Scriptlet主要的功能是用于输出的操作,可以输出一个变量或一个具体的内容。Scriptlet_03.jsp的内容如下:
<%
String info = "www.baidu.com"; //局部变量
int temp = 30;
%>
info = <%=info%>
temp = <%=info%>
name = <%="skewrain"%>
通过浏览器输入:http://localhost/skewrain,在目录中点击scriptlet_03.jsp的结果如下图所示:
与前面的out.println()相比,<%=%>更合适。下面通过两个例子来说明:
1.out.println()输出方式。
printTable_01.jsp的内容如下所示:
<%
int rows = 10;
int cols = 10;
out.println(" for(int x=0;x out.println(" for(int y=0;y out.println(" } out.println(" } out.println("");
");");
");" + (x*y) + " ");
%>
通过浏览器输入:http://localhost/skewrain,在目录中点击printTable_01.jsp的结果如下图所示:
这种输出最直接的问题就是HTML代码和Java代码完全混合在了一起。
而且生成的代码没有缩进。
最关键的是JSP的内容是要显示给用户看的,美工是需要修改的,而美工只能使用工具。
软件网页制作最好的工具就是DreamWeaver。
2.使用表达式输出。
printTable_02.java的代码如下所示:
<%
int rows = 10;
int cols = 10;
%>
<% for(int x=0;x %> <% for(int y=0;y %> <% } %> <% } %>
<%=x*y%>
执行此段代码的结果与以上的结果一样。
此种操作虽然代码复杂了,但是达到了一点:HTML代码和JAVA代码相分离。
所以一定要注意的是,以后在使用输出的时候,坚决的不再使用out.println(),而使用<%=%>表达式输出。
通过交互性打印表格
之前打印表格的行数和列数都是固定的,那么下面就可以通过一个交互性的操作,完成用户输入表格的行数和列数的功能,并进行显示。创建printTable.htm,该文件的内容如下所示:
请输入要显示表格的行数:
请输入要显示表格的列数:
与此对应的printTable_03.jsp的内容如下:
<%
int rows = 10;
int cols = 10;
try{
rows = Integer.parseInt(request.getParameter("row"));
cols = Integer.parseInt(request.getParameter("col"));
}catch(Exception e){}
%>
<% for(int x=0;x %> <% for(int y=0;y %> <% } %> <% } %>
<%=x*y%>
通过浏览器输入:http://localhost/skewrain,在目录中点击printTable.htm的结果如下图所示:
通过输入数字后,点击“显示”,产生的结果如下图所示:
在以后的操作中,只要是输出就使用<%=%>。
Scriptlet标签
在程序中如果过多的使用<%%>会发现代码非常的混乱,所以在新版本的JSP之中专门提供了一种scriptlet的标签,这个标签的语法如下:
Java的scriptlet代码
Scriptlet_tag.jsp的内容如下所示:
String url = "www.baidu.com";
<%=url%>
执行之后的结果如下图所示:
从开发角度而言,这种标签基本上使用较少,大家只需要知道这种语法即可。
而且这种东西属于标签指令,标签指令必须完结。
注意:
1.在开发中隐式注释是不会发送到客户端上的。
2.在使用JSP中尽可能使用表达式输出的语法来取代out.println()。
3.<%!%>经常用于定义全局的变量、常量、类、方法。
4.<%%>中可以直接存放Java代码,而且其中定义的变量属于局部变量。
5.<%=%>常用来进行输出。