官术网_书友最值得收藏!

6.2 JSP的基本語法

JSP的使用非常簡單,本節簡要介紹JSP的基本使用方法,任何語言都有基本語句和數據類型,下面分別進行講解。

6.2.1 基本語句

JSP的語句一般分為6種:編譯語句、聲明語句、程序代碼、注釋語句、運算表達式和動作語句。

● 編譯語句:<%@ 指示名 [屬性="屬性值"]%>。

● 聲明語句:<%! 聲明語句;[ 聲明語句;]…%>。

● 程序代碼:<%程序代碼%>。

● 注釋語句:<%--注解--%>。

● 運算表達式:<%=表達式%>。

● 動作語句:<JSP:動作名[屬性|…]/>。

通過上面的簡單講解,讀者可能還不太了解JSP的使用方法,下面通過一個示例來描述,示例代碼如下:

      <%@page contentType="text/html;charset=GBK"%>
      <%@page import="java.util.List,com.bbsManagement.domain.*"%>
      <%@ page seesion="true"%>
      <%@ page isAutoFlush="true"%>
      <%@ page buffer="8kb"%>
      <html>
      <head><title>留言回復發布</title>
      </head>
      <body>
      <form name="form1" action="" method="post">
          <table width="776" border="1">
          <!--采用EL語法-->
              <tr>
                  <td height="38" colspan="2"><div align="center">消息提示:${msg}</span></div></td>
              </form>
      <!--定義多動作的處理方式-->
      <script language=Javascript>
      function check(action) {
              document.forms[0].action = "bbsWriteBackAction!" + action + ".action";
          document.forms[0].submit();
      }
      </script>
      </body>
      </html>

代碼說明:

● JSP頁面的擴展名必須為.jsp。

● <%@page contentType="text/html;charset=GBK"%>用來描述該頁面所使用的編碼,還可以設置使用的語言、是否維持會話狀態、是否使用緩沖等。如果JSP頁面的中文顯示為亂碼,則是沒有指定JSP編碼所導致的。

● ${msg}表示采用EL語法來輸出變量的值。

● <script language=Javascript>表示使用的是JavaScript語法。

● <%@page import="java.util.List,com.bbsManagement.domain.*"%>表示導入包。在具體導入包時,可以導入多個包,但需要使用逗號進行分隔。

● <%@ page seesion="true"%>表示該頁面支持Session。

● <%@ page isAutoFlush="true"%>、<%@ page buffer="8kb"%>表示支持緩沖,一般只在處理圖片時使用。

在提交表單時有一個參數是method,可以設定的屬性值有get和post,屬性get和post都可以向服務器傳送數據,但是傳送機制不一樣。其中get是把參數數據隊列追加到提交表單的Action屬性所指的URL地址中,值和表單內各個字段一一對應,用戶通過URL可以看到;post是通過HTTP post機制,將表單內各個字段與其內容放置在HTML Header內一起傳送到Action屬性所指的URL地址,用戶看不到這個過程。<form method="get" action="input.jsp?username=gf">與<form method="get" action="input.jsp">是一樣的,也就是說,action頁面后邊帶的參數列表會被忽視;而<form method="post" action="input.jsp?username=gf">與<form method="post" action="input.jsp">是不一樣的。同時要注意get的安全性非常低,post的安全性較高。

在JSP中include有兩種形式,分別是:

      <%@ include file=" "%>

和:

      <JSP:include page=" " flush="true"/>

前者是指令元素,后者是行為元素,它們的區別是:

● <%@ include file = "URL" %>是在編譯階段執行。

● <JSP:include page="{URL | <%= 表達式 %>}" flush="true | false " />是在請求處理階段執行。

● <%@ include file = "URL" %>引入靜態文本(HTML、JSP),在JSP頁面被轉換成Servlet之前和它融合到一起。

● <JSP:include page="{URL | <%=表達式%>}" flush="true|false"/>引入執行頁面或Servlet所生成的頁面。

forward和sendRedirect的區別如下:

● 當form被提交至a.jsp時,在a.jsp中使用forward()重定向至b.jsp,此時form提交的所有信息在b.jsp中都可以獲得,參數自動傳遞。forward執行時瀏覽器地址欄中的URL地址不變。

● sendRedirect()可以帶參數傳遞,比如,servlet?username=gf傳至下個頁面,同時它可以重定向至不同的主機上,且在瀏覽器的地址欄中會出現重定向頁面的URL地址。

6.2.2 數據類型

JSP的標識符是以字母、下畫線和美元符號開始的一個字符串,除了第一個字母外,其他字母還可以是數字。

JSP的數據類型圖如圖6.5所示。

圖6.5 JSP的數據類型圖

主站蜘蛛池模板: 德昌县| 德令哈市| 哈密市| 忻州市| 吉木萨尔县| 平湖市| 原平市| 嘉黎县| 张家港市| 特克斯县| 益阳市| 辽宁省| 马尔康县| 巴里| 哈密市| 黄山市| 托里县| 田东县| 游戏| 鸡西市| 慈利县| 措勤县| 高邮市| 同仁县| 突泉县| 潢川县| 什邡市| 泸定县| 太谷县| 晋中市| 定西市| 古田县| 周至县| 股票| 北票市| 故城县| 皋兰县| 永济市| 五寨县| 横山县| 惠来县|