JSP的注释写法是:<%--JAVA代码--%>
如下语句中,不需要加;作为结束符。如下:
<%=new java.util.Date().toLocaleString() %>
反之在代码片段中要加;号作为分隔符。?
表达式:
?脚本段:
?
?
?
再看下面这个例子:
?
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <%!int a = 3; %> <%int b =3; %> <%=a--%> <%=b--%> </body> </html>
?上例中的a使用声明语句来声明,而b在脚本段中声明。访问该JSP页面时,第一次在页面中会显示两个3 3,不断刷新页面会变成2 3,1 3。。。,即a的值会不断减1,之所会这样,是因为在产生的Servlet代码中,a是一个类的全局变量,而b是一个方法中的局部变量,由于Servlet是单例模式,即只会产生一个实例,故全局变量一直在内存中,所有用户都能访问到它,只有重启服务器才会重新初始化实例。
?
JSP的forward标签:
新建两个 JSP页面:分别为 forward.jsp和forwardto.jsp
forward.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <jsp:forward page="forwardto.jsp"> <jsp:param name="username" value="hello"/> </jsp:forward> <!-- 下面这句不会执行 --> <%System.out.println("hello"); %> </body> </html>
?
forwardto.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <html> <body> <% String username = request.getParameter("username"); out.print("welcome "+username); %> </body> </html>
在forward.jsp页面中,执行到forward标签后,就会跳转到forwardto.jsp页面,后面的代码将不再执行。forwardto.jsp页面将接收forward.jsp页面转来的参数。
?
实例:
included.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <% String username = request.getParameter("username"); out.print("username is " + username); %> </body> </html>
?
include.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <html> <body> <jsp:include page="included.jsp"> <jsp:param name="username" value="king"/> </jsp:include> </body> </html>
?
?