JSP詳解(一):頁面構成、EL運算式

來源:互聯網
上載者:User
什麼是JSP。 JSP:Java Server Pages,其根本是一個簡化的Servlet設計,它實現了在Java中使用HTML標籤 Jsp是一種動態網頁技術標準,也是JEE標準 Jsp與Servlet一樣,是在伺服器端執行的

jsp就是servlet,servlet不是jsp 常見動態網站開發技術對比 Jsp:Java平台,安全性高,適合做大型開發,企業級的web程式。適合做企業級web開發。電子銀行、網上證劵證券交易所,中國移動網上營業廳,中國鐵路線上訂票系統 Asp:.Net平台,簡單易學。但是安全性以及跨平台性較差。asp.net托拉拽可視化開發,微軟配套軟體 Php:簡單、高效、成本低、開發週期短,適合中小型企業的Web應用程式開發。
開發組合:LAMP(作業系統Linux+伺服器TomCat+資料庫MySql+PHP)

都是server page sp。 JSP頁面元素的構成 靜態內容:html元素 小指令碼:<% 在這之中的都是小指令碼 %> 注釋:

除了html注釋(用戶端可見)外,也有jsp注釋<%-- jsp【注釋】 --%>(用戶端不可見), jsp指令碼中的java注釋  總共三種注釋
指令:
<%@page import="java.util.ArrayList"%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
聲明
<%!    //【聲明】(聲明函數和變數)    String s ="zhangsan";    int add(int x, int y){ //計算x+y的值        return x+y;    }%>
運算式
<!--【運算式】,不需要分號 -->    你好,<%=s %><br>    x+y=<%=add(10,5) %><br>

sample:

<!-- 這是【指令】page,控制文件類型、編碼、匯入java類等 --><%@page import="java.util.ArrayList"%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!--     pageEncoding jsp檔案本身的編碼    contentType charset伺服器發送給用戶端時的內容編碼 --><!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>jsp頁面元素構成以及文法</title></head><body>    <h1>jsp頁面元素的構成</h1>    <ul>        <li>靜態內容</li>        <li>小指令碼</li>            <li>注釋</li>        <li>指令</li>        <li>聲明</li>        <li>運算式</li>    </ul>    <h3>靜態內容</h3>    <p>靜態內容只html元素</p>    <%        // 在這之中的都是小指令碼 ,小指令碼的內容是java代碼    %>    <!-- html 注釋-->        html注釋:用戶端可見(查看原始碼)<br>    <%-- jsp【注釋】 --%>        JSP注釋:用戶端不可見<br>    <%        //jsp指令碼注釋(java注釋)        /**/    %>    <%!        //【聲明】(聲明函數和變數)        String s ="zhangsan";        int add(int x, int y){ //計算x+y的值            return x+y;        }    %><br>    <!--【運算式】,不需要分號 -->    你好,<%=s %><br>    x+y=<%=add(10,5) %><br></body></html>
指令

jsp指令有三種: page指令 include指令 taglib指令 page指令

功能:用來描述頁面的一些屬性 language屬性:指定指令碼語言,只支援java import屬性:匯入包的指令,唯一一個可以多次使用的屬性,匯入多包也可以用”,”分割包名

pageEncoding屬性和contentType屬性
都是設定編碼解碼方式,但是,pageEncoding是jsp頁面儲存到硬碟上,編碼的碼錶。而contentType代表格服務器給用戶端發送jsp資料時,這個jsp的解碼錶,這兩個碼錶應該相同,否則可能會出現亂碼的情況。
注意:在設定其中一個屬性後,另一個屬性的值也會變為這個屬性的值,即伺服器自動將碼錶轉換一致。
autoFlush屬性和buffer屬性:jsp向瀏覽器輸出內容,輸出過程中,當緩衝區滿了的時候,是否自動重新整理出緩衝區中的資料。也可以使用buffer設定緩衝區的大小。具體查看內建out對象。

<%@    autoFlush="true" buffer="8kb"%>
errorPage和isErrorPage:指定處理異常的頁面,是否處理異常,具體請查看內建exception對象
如果出現異常,跳轉到isErrorPage頁面中<%    errorPage="/page/error.jsp"%>
設定當前頁面為異常處理頁面,會獲得一個exception內建對象,用來接收異常。<%    isErrorPage="true"%>
正確的異常處理方式

上面的方式雖然可以使用,但是太過於繁瑣了,我們可以在web.xml中根據http狀態代碼設定轉向頁面。

<error-page>    <error-code>404</error>    <location>/page/error.jsp</location></error-page>

只要出現了404錯誤,就會跳轉到error.jsp頁面中去處理。

也可以根據異常作出相應的處理:

<error-page>    <exception-type>java.lang.Exception</exception-type>    <location>/page/error.jsp</location></error-page>

只要出現了java.lang.Exception就跳轉到error.jsp頁面 extends屬性:繼承屬性,指定一個父類,必須是Servlet info屬性:指定jspgetServletInfo的值 isELIgnored屬性:EL運算式的開關,預設可以使用 session屬性:boolean,是否使用session對象,如果為false,不能直接使用session內建對象 include指令

靜態包含指令 file屬性:

<%@ include file="/page/child.jsp"%>

靜態包含原理:

所以合并,處於同一個Java類,注意變數的聲明

作用: 引入內容,合并頁面 引入代碼,調用被引入代碼中的方法。

動態包含原理:
taglib指令

匯入標籤指令 使用EL運算式,替代jsp運算式指令碼

用來代替<%= %>運算式指令碼的。

格式:&{運算式}

主要用於四個域中取出資料(application,request,session,page),即簡化getAttribute…等操作的。
比如,

<%    request.setAttribute("name", "Feathers");%>name為:${requestScope.name} <!-- 即可取出request域中key為name的值 -->

注意:
如果這樣寫${name},不指定域,則會從小域到大域依次尋找。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.