天天看點

JSP概念及用法

JSP的出現,主要是簡化了對頁面的輸出。其本質是一個servlet。

  • JSP概念
  • JSP文法
  • 3個指令
  • 6個動作标簽
  • 9個内置對象

一、JSP概念

JAVA伺服器頁面 ,可以寫HTML,也可以寫JAVA代碼。會自動把标簽列印到頁面,可以簡化書寫。JSP本質上是一個servlet。包含内容可以概括成:

  • 3個指令
  • 6個動作标簽
  • 9個内置對象

二、JSP文法

  • 腳本:用于辨別JAVA代碼的
    • <%!….%>:定義全局成員(定義在類中,方法外)
    • <%…..%>:定義局部成員的(定義在service方法中)
    • <%=….%>:定義輸出語句(列印在頁面上)
  • 注釋

    <%–……–%>:裡面的注釋不會顯示在頁面上,可以注釋JSP腳本

三、3個指令

  • 作用
    1. 指令用于配置JSP檔案的資訊;
    2. 用于加載一些資源
  • 指令格式

    <%@ 指令名稱 屬性名=“屬性值” %>

  • 指令分類
    1. page:用于配置JSP檔案的資訊;
      • language:用于指定伺服器立端使用的語言環境,就一個值JAVA
      • import:用于導包,可以定義多個包
      • pageEncoding: 指定頁面編碼
      • contentType:告訴浏覽器,目前頁面的編碼方式
      • autoFlush:自動重新整理緩沖區
      • buffer:response輸出流的緩沖區大小,預設8KB
      • errorPage:指定錯誤頁面的路徑。在XML中,通過

        <errorPage>

        來指定錯誤頁面,如:

        <%@ page language="java" import="java.util.*,java.io.InputStream" pageEncoding="utf-8" autoFlush="true" buffer="8kb" errorPage="500.jsp"%>

    2. include:用于包含

      <%@ include file="b.jsp"%>

    3. taglib:加載一些資源檔案

      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

四、6個動作标簽

動作标簽的作用是用來簡化java腳本。

  • <java:useBean >

    相當于是建立了一個對象
  • <java:setProperty>

    相當于類中的set方法
  • <java:getProperty>

    相當于類中的get方法
//1.正常的類中建立一個對象,指派,取出的過程
User user = new User();
user.setUsername("zhangsan");
out.print(user.getUsername());
//2.jsp中動作标簽的方法
<java:useBeam id="user" class="com.skystone.domain.User">//建立user對象,其實用的是反射的方法
<java:setProperty name="user" property="username" value="lisi">//向成員變量username中指派
<java:getProperty name="user" property="username" >//通過get得到值,會列印到頁面上
           
  • <java:include>

    動态包含,先生成兩個類,再把結果合并
  • <java:forward>

    要跳轉的頁面
  • <java:param>

    跳轉時,要傳遞的參數值
<jsp:forward page="/result.jsp" >//轉向result頁面
<jsp:param value="zhangsan" name="username"/>//傳遞參數
</jsp:forward>
           

五、9個内置對象

在JSP轉換為的servlet中的service方法中初始化好的對象。在jsp中可以直接使用

  • application :ServletContext
  • session:HttpSession
  • request:HttpServletRequest
  • pageContext:PageContext
    • 域對象,域的範圍,目前頁面
    • 擷取其它八個内置對象
  • response:HttpServletResponse
  • out:response的輸出流等價
  • page:就是this,目前對象
  • exception:異常對象,Throwable
  • config:ServletConfig對象

out與response.write()的差別

  • 差別:當伺服器響應之前,會先将out緩沖區的資料重新整理到response中,再從response緩沖區擷取資料。作出響應。
  • 結論:兩個不要一起使用,

六、JSP應用理念

  • jsp頁面中一定不要寫java代碼(為了後期的可維護性和代碼的簡潔性)
  • jsp開發時,要遵循MVC和javaweb的三層結構