学习JSP首先必须从基本的JSP脚本和动作指令开始,因此下面举一个简单的例子印证一下。
例子描述:
1. 编写一个页面片段top.jsp,作用是显示网站名称和日期(服务器时间)。显示内容如下:
代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Date"%>
<%@ page import="java.text.SimpleDateFormat"%>
<%
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String today = df.format(date);
%>
作业3网站 今天是:<%=today%>
2. 编写一个静态页面片段bottom.html,其中显示作者名称,如下:
代码:
<!-- <%@ page pageEncoding="UTF-8"%> -->
<!-- 使用动态注释,让此被包含 文件的编码方式在包含其的文件中执行-->
<footer>Author:XXXXXXXXX</footer>
3. 编写一个动态99乘法表的页面:99sheet.jsp。该页面的顶部动态导入top.jsp;底部静态导入bottom.html。
代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>99sheet</title>
</head>
<body>
<jsp:include page="top.jsp"/> <!--动态包含top.jsp -->
<%
String str = "";
for (int i=1;i<=9;i++)
{
for (int j=1;j<=i;j++)
{
str +=j+"x"+i+"="+j*i;
str +=" ";
}
str +="<br>";
}
%>
<div>
<ul>
<li id="title">九九乘法表</li>
<li><%=str %></li>
</ul>
</div>
<%@ include file="bottom.html" %> <!--静态包含bottom页面 -->
</body>
</html>
4. 编写index.jsp页面,作为网站的默认起始页面。当访问该页面时,自动将请求转发送到99sheet.jsp页面。
代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="99sheet.jsp"/> <!--将请求转发到99sheet.jsp -->
</body>
</html>
很多人会奇怪为什么步骤1跟2中的代码看起来并不完整,其实那就是完整的代码,因为JSP在使用<%@ include file="XX" %>的时候原理简单来说就是把被包含的页面复制到包含的页面中一同执行,因此,若被包含的页面中含有其他HTML或CSS代码的话就会影响最后的运行效果,因此在使用该动作是应注意被包含的页面代码应该只具有其该有的功能即可。
至于静态包含与动态包含的区别大家可以翻看JSP的相关书籍和资料,这里不一一赘述。