今天還是在學習JSP的內容。隨着對JSP的瞭解,發現JSP的主要用途和功能了。
一、首先是JSP的語法部分:
1 <% 代碼片段 %>
這裏是腳本程序,可以在裏面寫任意的java代碼。
<%
String str="hello world";
out.println(str);
%>
如果代碼中需要導入類包,則需要在page指令中使用import來完成。
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=utf-8"%>
2 <%! 聲明語句 %>
一個聲明語句可以聲明一個或多個變量、方法,供後面的Java代碼使用。在JSP文件中,您必須先聲明這些變量和方法然後才能使用它們。
<%!String name=””;
int a=0; %>
3 JSP的表達式<%=表達式 %>
一個JSP表達式中包含的腳本語言表達式,先被轉化成String,然後插入到表達式出現的地方。
Today's date: <%= (new java.util.Date()).toLocaleString()%>
4 JSP註釋
JSP註釋主要有兩個作用:爲代碼作註釋以及將某段代碼註釋掉。注意,JSP註釋掉的代碼在客戶端上是不顯示的。
<%-- 這裏就是註釋代碼--%>
二、接下來是JSP指令。主要有3種指令標籤:page ,include和taglib。
指令 |
描述 |
<%@ page ... %> |
定義頁面的依賴屬性,比如腳本語言、error頁面、 緩存需求等等 |
<%@ include ... %> |
包含其他文件 |
<%@ taglib ... %> |
引入標籤庫的定義,可以是自定義標籤 |
至於指令的具體應用我會在後面的博客中寫的。
三、最後,今天主要看的是JSP的9大隱式對象。
JSP隱式對象是JSP容器爲每個頁面提供的Java對象,開發者可以直接使用它們而不用顯式聲明。JSP隱式對象也被稱爲預定義變量。jsp九大內置對象:
5個常用對象: out(輸出),request(請求),response(響應),session(回話),application(應用)
4個不常用: page ,pageContent, exception ,config。
JSP所支持的九大隱式對象:
對象 |
描述 |
request |
HttpServletRequest類的實例 |
response |
HttpServletResponse類的實例 |
out |
PrintWriter類的實例,用於把結果輸出至網頁上 |
session |
HttpSession類的實例 |
application |
ServletContext類的實例,與應用上下文有關 |
config |
ServletConfig類的實例 |
pageContext |
PageContext類的實例,提供對JSP頁面所有對象以及命名空間的訪問 |
page |
類似於Java類中的this關鍵字 |
Exception |
Exception類的對象,代表發生錯誤的JSP頁面中對應的異常對象 |
首先我們要知道Web程序是請求響應模式的:
用戶發送Http請求(request對象)和服務器給用戶Http響應(response對象)。
在介紹request和response對象之前,我們先講一下form表單在提交的時候使用的兩種方法:get和post。
<!--注意這段代碼使用的是post方法-->
<form name="loginForm" action="forward.jsp" method="post">
<table>
<tr>
<td>用戶名:</td>
<td><input type="text" name="username" value=""/></td>
</tr>
<tr>
<td>密碼:</td>
<td><input type="password" name="password" value="" /></td>
</tr>
<tr>
<td colspan="2"><input type="checkbox" name="isUseCookie" checked="checked"/>十天內記住我的登錄狀態</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="登錄"/><input type="reset" value="取消"/></td>
</tr>
</table>
</form>
這裏介紹一下表單的兩種方法的區別:
1、get:會以明文的方式通過URL提交數據,數據在URL裏可以看到。提交的數據最大是2Kb的,安全性較低但效率比Post方式的高。適合提交數據量不大,安全性不高的數據。比如:搜索、查詢等功能。這裏還有一個注意的就是get方式提交數據是不會修改任何數據的。而post方式提交數據是會修改數據的(比如發佈評論)。
2、post:將用戶提交的信息封裝在HTML header內。適合提交數據量較大、安全性高的用戶信息。比如:註冊、修改、上傳等功能。