沒有在意jsp聲明與jsp代碼片段的區(qū)別,但發(fā)現(xiàn)一個奇怪之處,就做了一個測試,果然不虛!先上jsp聲明代碼:
根據(jù)這個差別,當我們寫jsp聲明、jsp代碼片段時就要切切注意,我們獲取的變量值是不是想要動態(tài)變化的!
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <%@ page import="java.util.Date" %>
4 <%@ page import="java.text.SimpleDateFormat" %>
5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
6 <html>
7 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 <title>Insert title here</title>
10 <!-- 第一次請求會執(zhí)行,刷新后datetime值不會變化 -->
11 <%!
12 Date date=new Date();
13 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm");
14 String datetime=sdf.format(date);
15 %>
16 </head>
17 <body>
18 當前日期:<%=datetime %>
19 </body>
20 </html>
再上jsp代碼片段代碼:2 pageEncoding="UTF-8"%>
3 <%@ page import="java.util.Date" %>
4 <%@ page import="java.text.SimpleDateFormat" %>
5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
6 <html>
7 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 <title>Insert title here</title>
10 <!-- 第一次請求會執(zhí)行,刷新后datetime值不會變化 -->
11 <%!
12 Date date=new Date();
13 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm");
14 String datetime=sdf.format(date);
15 %>
16 </head>
17 <body>
18 當前日期:<%=datetime %>
19 </body>
20 </html>
1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <%@ page import="java.util.Date" %>
4 <%@ page import="java.text.SimpleDateFormat" %>
5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
6 <html>
7 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 <title>Insert title here</title>
10
11 </head>
12 <body>
13 <!-- 頁面每次刷新都會執(zhí)行 -->
14 <%
15 Date date=new Date();
16 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm");
17 String datetime=sdf.format(date);
18 %>
19 當前日期:<%=datetime %>
20 </body>
21 </html>
代碼非常簡單,但在web服務器上運行頁面時,每過一分鐘刷新頁面,就會發(fā)現(xiàn)jsp聲明代碼中的當前日期始終不會變化,而jsp代碼片段中的當前日期就會隨著系統(tǒng)時間而發(fā)生變化。2 pageEncoding="UTF-8"%>
3 <%@ page import="java.util.Date" %>
4 <%@ page import="java.text.SimpleDateFormat" %>
5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
6 <html>
7 <head>
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 <title>Insert title here</title>
10
11 </head>
12 <body>
13 <!-- 頁面每次刷新都會執(zhí)行 -->
14 <%
15 Date date=new Date();
16 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm");
17 String datetime=sdf.format(date);
18 %>
19 當前日期:<%=datetime %>
20 </body>
21 </html>
根據(jù)這個差別,當我們寫jsp聲明、jsp代碼片段時就要切切注意,我們獲取的變量值是不是想要動態(tài)變化的!