日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java Server Page

發布時間:2025/3/15 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java Server Page 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSP

  • JSP全稱是Java Server Page,基于Java和Servlet一樣是sun公司推出的一套開發動態web資源的技術,稱為JSP/Servlet規范。JSP的本質其實就是一個Servlet。
  • jsp是一種動態網頁技術標準,jsp部署在服務器上可以處理客戶端的請求,并根據請求內容動態生成HTML、XML或其他格式文檔的Web網頁,再響應給客戶端
  • JSP的內容(標簽)轉成Java文件也是使用resp.getWriter().write去實現的,
JSP和HTML以及Servlet的適用場景:
類別適用場景
HTML只能開發靜態資源,不能包含java代碼,無法添加動態數據。
Servlet寫java代碼,可以輸出頁面內容,但是很不方便,開發效率極低。
JSP它包括了HTML的展示技術,同時具備Servlet輸出動態資源的能力。但是不適合作為控制器來用。
JSP執行過程:

Jsp指令:

使用指令需要jar包,在Tomcat目錄下的lib中的jsp-api.jar,復制到IDEA即可

Page指令:
屬性描述
bufferJspWriter用于輸出JSP內容到頁面上。告知引擎,設定他的緩存大小。默認8kb
autoFlush控制out對象的 緩存區
contentType告知引擎,響應正文的MIME類型。contentType=“text/html;charset=UTF-8”
errorPage指定當JSP頁面發生異常時需要轉向的錯誤處理頁面
isErrorPage告知引擎,是否抓住異常。如果該屬性為true,頁面中就可以使用exception對象,打印異常的詳細信息。默認值是false
pageEncoding:告知引擎,翻譯jsp時(從磁盤上讀取jsp文件)所用的碼表。pageEncoding="UTF-8"相當于告知引擎用UTF-8讀取JSP
extends指定servlet從哪一個類繼承
import導入要使用的Java類
info定義JSP頁面的描述信息
isThreadSafe指定對JSP頁面的訪問是否為線程安全
language定義JSP頁面所用的腳本語言,默認是Java
session告知引擎是否產生HttpSession對象,即是否在代碼中調用request.getSession()。默認是true
isELIgnored告知引擎,是否忽略EL表達式,默認值是false,不忽略
isScriptingEnabled確定腳本元素能否被使用
Include指令:

JSP可以通過include指令來包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是該JSP文件的一部分,會被同時編譯執行。

Include指令的語法格式如下:

<%@ include file="文件相對 url 地址" %>
Taglib指令:

JSP API允許用戶自定義標簽,一個自定義標簽庫就是自定義標簽的集合。
Taglib指令引入一個自定義標簽集合的定義,包括庫路徑、自定義標簽。

屬性:

  • ? uri:外部標簽的URI地址。
  • ? prefix:使用標簽時的前綴。

Taglib指令的語法:

<%@ taglib uri="uri" prefix="prefixOfTag" %>

Jsp隱式對象:

什么是隱式對象呢?它指的是在jsp中,可以不聲明就直接使用的對象。它只存在于jsp中,因為java類中的變量必須要先聲明再使用。其實jsp中的隱式對象也并非是未聲明,只是它是在翻譯成.java文件時聲明的。所以我們在jsp中可以直接使用。

隱式對象名稱類型備注
requestjavax.servlet.http.HttpServletRequest
responsejavax.servlet.http.HttpServletResponse
sessionjavax.servlet.http.HttpSessionPage指令可以控制開關
applicationjavax.servlet.ServletContext
pageJava.lang.Object當前jsp對應的servlet引用實例
configjavax.servlet.ServletConfig
exceptionjava.lang.Throwablepage指令有開關
outjavax.servlet.jsp.JspWriter字符輸出流,相當于printwriter
pageContextjavax.servlet.jsp.PageContext很重要
PageContext對象:

-它是JSP獨有的對象,Servlet中沒有這個對象。本身也是一個域(作用范圍)對象,但是它可以操作其他3個域對象中的屬性。而且還可以獲取其他8個隱式對象。

生命周期:

PageContext是一個局部變量,所以它的生命周期隨著JSP的創建而誕生,隨著JSP的結束而消失。每個JSP頁面都有一個獨立的PageContext。

四大域對象:
域對象名稱范圍級別備注
PageContext頁面范圍最小只能在當前頁面用范圍小,開發中用的少
ServletContext請求范圍一次請求或當前請求轉發用請求轉發后再次轉發時請求域丟失
HttpSession會話范圍多次請求組數據共享時使用多次請求共享數據,但不同的客戶端不能共享
ServletContext應用范圍最大,整個應用都可以使用如果對數據有修改需要做同步處理,少用
MVC模型:
  • M(Model)模型:用于封裝數據,封裝的是數據模型
  • V(View)視圖:用于顯示數據,動態資源用JSP頁面,靜態資源用HTML頁面
  • C(Controller)控制器:用于處理請求和響應

JSP代碼演示:

<%--page指令--%> <%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"language="java" errorPage="error.jsp" %><%--include指令 可以包含其他頁面--%> <%@include file="/include.jsp" %> <!DOCTYPE html><%--taglib:可以引入外部標簽庫--%> <%-- <%@taglib uri=標簽庫的地址 prefix=前綴名稱 %> --%> <%@taglib prefix="" %> <html> <head><title>JSP - Hello World</title> </head> <body> <%--這是jsp的注釋格式--%><%System.out.println("這個輸出只能打印到控制臺");out.println("這個才是輸出到頁面,但是沒有換行<br>"); %><%--表達式--%> <%="相當于out.println<br>"%> <%= request.getAttribute("username”)%><%--聲明變量和方法--%> <%--加!代表聲明的是成員變量不加!代表的是聲明局部變量聲明方法必須加! --%> <%! String s = "itzhuzhu";%> <% String s = "itzhuzhu";// 隱式對象:可以直接調用request.getSession();response.getWriter().write("隱式對象:可以直接調用");pageContext.setAttribute("直接用","直接用"); %><%// 定義數組ArrayList<Object> objects = new ArrayList<>(); %> <%=s%><%--定義方法--%> <%! public void method() {System.out.println(s); }%></body> </html>

總結

以上是生活随笔為你收集整理的Java Server Page的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。