本章目标
掌握JSP中的注释操作
掌握JSP中的三种Scriptlet及使用
JSP注释
在JSP中支持两种注释的语法操作,一种是显式注释,这种注释客户端是允许看见的,另外一种是隐式注释,此种注释客户端是无法看见的。
显式注释语法:
<!-- 注释内容 -->
隐式注释语法:
格式一://注释,单行注释
格式二:/* 注释 */,多行注释
格式三:<%-- 注释 --%>,JSP注释
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:显式和隐式注释 --%>
<!-- 这个注释客户端可以看见 -->
<%-- JSP中的注释,客户端无法看见 --%>
<%
//java中提供的单行注释,客户端是无法看见
/*
Java中提供的多行注释,客户端无法看见
*/
%>
效果图:
Scriptlet
在JSP中最重要的部分就是Scriptlet(脚本小程序),所有嵌入在HTML代码中的Java程序都必须使用Scriplet标记出来,在JSP中一共有三种Scritplet代码:
第一种:<%%>:在此Scriptlet中可以定义局部变量、编写语句
第二种:<%!%>:在此Scritplet中,可以定义全局变量、方法、类
第三种:<%=%>:用于输出一个变量或一个具体内容
第一种Scriptlet:<%%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:第一种scriptlet:<% %> --%>
<%
int x=100;//定义局部变量
String info="I am chaoyi";//定义局部变量
out.print("<h3>x="+x+"</h3>");//编写语句
out.print("<h3>info="+info+"</h3>");//编写语句
%>
效果图:
第二种Scriptlet:<%!%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:第二种scriptlet:<%! %> --%>
<%!
public static final String INFO="I am chaoyi";//定义全局常量
%>
<%!
public int add(int x,int y){//定义方法
return x+y;
}
%>
<%!
class Person{//定义Person类
private String name;//定义name属性
private int age;//定义age属性
public Person(String name,int age){//通过构造方法设置属性内容
this.name=name;//为name属性赋值
this.age=age;//为age属性赋值
}
public String toString(){//覆写toString方法
return "name="+this.name+",age="+this.age;
}
}
%>
<%
out.print("<h3>INFO="+INFO+"</h3>");//输出全局常量
out.print("<h3>3 + 5 ="+add(3,5)+"</h3>");//调用方法
out.print("<h3>"+new Person("chaoyi",30)+"</h3>");//生成对象
%>
效果图:
第三种Scriptlet:<%=%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:第三种scriptlet:<%= %> --%>
<%
String info="www.baidu.com";//定义局部变量
int temp=30;//定义局部变量
%>
<h3>info=<%=info %></h3><%--使用表达式输出变量 --%>
<h3>temp=<%=temp %></h3><%--使用表达式输出变量 --%>
<h3>name=<%="chaoyi" %></h3><%--使用表达式输出变量 --%>
效果图:
使用 out.println() 输出
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:使用 out.println() 输出 --%>
<html>
<head>
<title>使用 out.println() 输出</title>
</head>
<body>
<%
int rows=10;//表格的行数
int cols=10;//表格的列数
out.println("<table border=\"1\" width=\"30%\">");//输出表格开始标签
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("</tr>");//输出行结束标签
}
out.println("</table>");//输出表格结束标签
%>
</body>
</html>
效果图:
使用表达式输出
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:使用表达式输出--%>
<html>
<head>
<title>使用表达式输出</title>
</head>
<body>
<table border="1" width="30%"><!-- 输出表格开始标签 -->
<%
int rows=10;//表格的行数
int cols=10;//表格的列数
for(int x=0; x<rows; x++){//循环输出行标签
%>
<tr><!-- 输出行开始标签 -->
<%
for(int y=0;y<cols;y++){//循环输出列标签
%>
<td><%=(x*y) %></td><!-- 输出列标签 -->
<%
}
%>
</tr><!-- 输出行结束标签 -->
<%
}
%>
</table><!-- 输出表格结束标签 -->
</body>
</html>
效果图:
定义输入显示表格行数和列数的表单页
<html>
<head>
<title>定义输入显示表格行数和列数的表单页</title>
</head>
<body>
<form action="demo7.jsp" method="post">
<table border="1" width="30%">
<tr>
<td>输入要显示表格的行数:</td>
<td><input type="text" name="row"></td>
</tr>
<tr>
<td>输入要显示表格的列数:</td>
<td><input type="text" name="col"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="显示"><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
效果图:
处理表格的显示
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<html>
<head>
<title>处理表格的显示</title>
</head>
<body>
<table border="1" width="30%"><!-- 输出表格开始标签 -->
<%
int rows=0;//表格的行数
int cols=0;//表格的列数
try{
//接收数据变为int型
rows=Integer.parseInt(request.getParameter("row"));
cols=Integer.parseInt(request.getParameter("col"));
}catch(Exception e){}
for(int x=0; x<rows; x++){//循环输出行标签
%>
<tr><!-- 输出行开始标签 -->
<%
for(int y=0; y<cols; y++){//循环输出列标签
%>
<td><%=(x*y) %></td><!-- 输出列标签 -->
<%
}
%>
</tr><!-- 输出行结束标签 -->
<%
}
%>
</table><!-- 输出表格开始标签 -->
</body>
</html>
效果图:
使用scriptlet标签
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>
<%-- 标题:使用scriptlet标签 --%>
<jsp:scriptlet>
String info="I am chaoyi! ";
</jsp:scriptlet>
<h2><%=info %></h2>
效果图:
小结
在开发中隐式注释是不会发送到客户端上的;
在使用JSP中尽可能使用表达式输出的语法来取代out.println()