一.JSP基礎語法:
<%!變量/方法%>
定義全局變量(Java支持的類型)和全局方法,解析器將其解析爲類屬性和靜態的類方法,在整個jsp頁面都有效。在方法內部聲明的變量只在該方法被調用時纔有效。
example1:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%! int i=0;int y=1; %>
<%i++; %>
<p>你是<%=i %>個訪問本站的用戶
</body>
</html>
example2:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%! double add(double x,double y)
{
return x+y;
}
double multi(double x,double y)
{
return x-y;
}
%>
<%
double x=32;
double y=34;
out.println(x+"+"+y+"="+"<br>");
out.println(add(x,y));
%>
</body>
</html>
<%java程序片%>程序片
在程序片中生命的變量jsp引擎將其解析爲類的某個方法的變量即局部變量,java程序片會被按順序執行;
用戶每請求一次,jsp引擎就會爲每個用戶生成一個線程,對於jsp頁面的全局變量各個線程共享,任何一個線程對數據的修改都會影響其他線程。
運行在不同線程的同一Java程序片不受其他線程的影響。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%!
int syn_count=0;
%>
<%
int ju_count=0;
out.println("count:"+syn_count++);
out.println("ju_count:"+ju_count++);
%>
</body>
</html>
Java表達式<%=java表達式%>
Tomcat引擎將java表達式結果轉換成字符串的形式,因此編寫JSP頁面時將表達式看做普通文本;
example:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="ISO-8859-1"%>
<!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>
<%!
int x=12;int y=9;
%>
計算機表達式x+y,即<%=x %>+<%=y %>的值:
<%=x+y %>
<br />計算表達式 sin(x+y)的值,即:sin(<%=x+y %>)的值:
<%=Math.sin(x+y)%>
<%
%>
</body>
</html>
jsp的註釋:
HTML註釋:<!--註釋內容-->
JSP註釋:<%--註釋內容--%>
Page指令標記:
形式:<% @page 屬性1=“屬性值” 屬性2=“屬性值”....%>
或者:
<% @page 屬性1=“屬性值"%>
<%@ page 屬性2=”屬性值"%>
屬性取值:contentType:
值 文件類型 說明
application/msword doc dot Microsoft Word2003
application/vnd.ms-excel xls Microsoft Excel2003
application/vnd.ms-powerpoint ppt Microsoft Powerpoint
application/pdf pdf Adobe Acrobat
application/octet-stream bin exe so dll class 可執行程序
application/zip zip winzip
application/x-gzip gz gzip
image/gif gif GIF圖像
image/jpeg jpg jpeg jpe JPEG圖像
image/png png PNG圖像
text/html html jsp 網頁文檔
text/plain txt 文本文檔
text/xml xml XML文檔
text/json json JSON字符串
language屬性:<% @ page language="java" %>目前只能取java
import屬性:
默認已有:Java.lang.*;javax.servlet.*;java.servlet.jsp.*;javax.servlet.http.*;
形式:<% @ page import="java.util.*" %>
<% @ page import="java.io.*" %>
buffer屬性:指定緩衝區的大小
isThreadSafe:設置是否允許多線程,默認爲true
session:設置是否使用內置session,默認爲true
autoFlush:設置緩衝區被填滿是是否自動刷新默認爲true
info:設置一個JSP頁面常用的字符串,可用:getServletInfo()取得:
example:
<%@ page language="java" contentType="text/html;charset=utf-8" %>
<%@ page buffer="1MB" autoFlush="true" isThreadSafe="true" info="jsp 練習" session="true" %>
<%@ page import="java.lang.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.jsp.*" %>
<%@ page import="javax.servlet.http.*" %>
<!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>
<%--註釋1 --%>
</body>
</html>