实验三JSP基本语法
一、实验目的
1. 理解JSP页面的生命周期;
2. 掌握JSP注释的使用;
3. 熟练掌握JSP的声明、表达式、小脚本。
pageEncoding。
5. 理解page指令的下面的属性:language、extends、buffer、autoFlush、info。
二、实验内容与步骤
(一)输入并执行下面JSP页面,文件名为counter.jsp
<%@ page language="java" %>
<%! int count = 0; %>
<% count++; %>
Welcome! You are visitor number
<%= count %>
该JSP页面包含哪些JSP语法元素。多次刷新页面,结果如何?
(二)将上面JSP页面中的<%! int count = 0; %>一行改为<% int count = 0; %>,页面能否正常执行,它与上面页面有什么区别?
(三)打开Tomcat安装目录下的\work\Catalina\localhost\chap06\org\apache\jsp目录中的counter_jsp.java文件,查看count变量是在哪里声明的。该文件就是JSP页面转换成的Java 源文件,对应的.class文件是编译后的类文件。
(四)有下面expression.jsp页面:
<%@ page language="java" %>
<%!
int anInt = 3;
boolean aBool = true;
Integer anIntObj = new Integer(3);
Float aFloatObj = new Float(8.6);
String str = "some string";
StringBuffer sBuff = new StringBuffer();
char getChar(){ return 'A'; }
%>
<%= 500 %>
<%= anInt*3.5/100-500 %>
<%= aBool %>
<%= false %>
<%= !false %>
<%= getChar() %>
<%= Math.random() %>
<%= aVector %>
<%= aFloatObj %>
<%= aFloatObj.floatValue() %>
<%= aFloatObj.toString() %>
<%= aBool; %>
<%= int i = 20 %>
<%= sBuff.setLength(12); %>
你能找出其中的错误吗?你可试着执行该页面,看会出现什么结果?将其中错误修改过来,最后输出下面结果:
图3.1 expression.jsp的运行结果
(五)输入并运行下面的import_test.jsp页面:
<%@ page import="java.util.Date,java.text.DateFormat;" %>
<% Date date = new Date();
String s = DateFormat.getDateInstance().format(date);
String s2 = DateFormat.getDateInstance(DateFormat.FULL).format(date);
%>
现在的时间是:<%=s%>
现在的时间是:<%=s2%>
访问上述JSP页面,输出结果如下图所示:
图3.2 import_test.jsp页面的运行结果
可以看到页面中的中文显示为乱码,将下面代码加到JSP页面中:
<%@ page contentType="text/html;charset=gb2312" %>
重新访问页面,中文显示正常。这说明可以使用page指令的contentType属性指定页面输出使用的字符编码。默认情况下,JSP页面使用的字符集是iso-8859-1编码,如使用汉字编码应指定为gb2312或gbk。
(六)使用JSP动态输出乘法口诀表
四、思考题
1. JSP语法元素有哪些?使用时应注意什么问题?
2. JSP页面的生命周期有哪几个阶段?
3. 如何理解JSP页面本质上是Servlet?