Java課題筆記~ JSP編程

4.1 JSP基本語法

JSP (全稱Java Server Pages) 是由 Sun Microsystems 公司倡導和許多公司參與共同創建的一種使軟件開發者可以響應客戶端請求,而動態生成 HTML、XML 或其他格式文檔的Web網頁的技術標準。

JSP=HTML+Java

JSP的本質是Servlet

訪問JSP的時候,

(1)JSP轉換成Servlet(2)執行Servlet文件

(1)HTML模板數據

?

(2)JSP元素

一、Java部分-腳本:

(1)腳本段:<% 腳本 %>

(2)聲明: <%! 聲明 %>

(3)表達式:<%= 表達式 %> 注意:表達式后不能加分號

(4)注釋:<%-- JSP注釋 --%>

?

二、Java部分-指令

(1)page指令

語法:<%@ page 屬性1=值1 屬性2=值2... %>

<%@ page language=”java” import=”java.util.*” contentType="text/html; 
charset=utf-8" session="true/false" errorPage="url" 
isErrorPage="true/false" buffer="" %>

注意:在一個JSP頁面中可以使用多個<%@page %>指令,但其中的屬性只能用一次,不過import屬性例外,它可以多次出現,引入多個類和包,這和Java中的import語句差不多。

?

(2)include指令

語法:<%@ include file="相對的URL" %>

作用:靜態包含

注意:

被引入的文件必須遵循JSP語法。

被引入的文件可以使用任意的擴展名,但都會被JSP引擎按照JSP頁面的處理方式去處理,為了見名知意,建議使用“.jspf”(JSP fragment,即JSP片段)作為靜態引入文件的擴展名。

被引入的文件中不要包含<html></html>、<body></body>等標記,因為這樣會影響引入文件中同樣的標記。

引入和被引入文件中的指令不能沖突(page指令中的pageEncoding和import屬性除外)。

(3)taglib指令

<%@ taglib uri=”” prefix=”” %>

作用:是減少jsp頁面中的java代碼

三、Java部分-動作(了解)

(1)<jsp:include>動作元素

語法:

<jsp:include page="relativeURL" flush="true|false" />page屬性用于指定被引入資源的相對路徑flush屬性用于指定是否將當前頁面的輸出內容刷新到客戶端。

作用:把其他資源的輸出內容插入到當前JSP頁面的輸出內容中。----動態包含

案例:

<%@--     include.jsp     --%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!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>include</title>
</head>
<body><%Thread.sleep(5000);%>included.jsp內的中文<br />
</body>
</html>
<%@--     dynamicInclude.jsp     --%><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!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>dynamicInclude page</title>
</head>
<body>dynamicInclude.jsp內的中文<br><jsp:include page="included.jsp" flush="true" /><%--對比:flush為true和false的區別。--%><%--<jsp:include page="included.jsp" flush="false" />--%>dynamicInclude.jsp內的中文2
</body>
</html>

include指令和<jsp:include>標簽有很大的區別:

  • <jsp:include>標簽要引入的資源和當前JSP頁面是兩個彼此獨立的執行實體,即被動態引入的資源必須能夠被Web容器獨立執行。而include指令只能引入遵循JSP格式的文件,被引入文件與當前JSP文件需要共同合并才能翻譯成一個Servlet源文件。

  • <jsp:include>標簽要引入的資源是在運行時才包含的。而include指令引入的資源是在編譯時期包含的,包含的是源代碼。

  • <jsp:include>標簽運行原理與RequestDispatcher.include()方法類似,即被包含的頁面不能改變響應狀態碼或者設置響應頭,而include指令沒有這方面的限制。

(2)<jsp:forward>動作元素

語法:

<jsp:forward page="relativeURL" />

類似:請求轉發

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37197.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【設計模式】原型模式

原型模式&#xff08;Prototype Pattern&#xff09;是用于創建重復的對象&#xff0c;同時又能保證性能。這種類型的設計模式屬于創建型模式&#xff0c;它提供了一種創建對象的最佳方式之一。 這種模式是實現了一個原型接口&#xff0c;該接口用于創建當前對象的克隆。當直接…

javaScript:數組的認識與使用以及相關案例

目錄 一.前言 二.數組 1.認識 2.數組的聲明 1.let arr [1,2,3,4] 2.結合構造函數&#xff0c;創建數組 注意&#xff1a; 3.數組長度的設置和獲取 注意 4.刪除數組元素 5.清空數組 三.獲取數組元素 獲取數組元素的幾種方法 1.使用方括號 [] 訪問元素&#xff1…

Keepalived+Lvs高可用高性能負載配置

環境準備 IP配置VIPnode1192.168.134.170LVSKeepalived192.168.134.100node3192.168.134.172LVSKeepalived192.168.134.100node2192.168.134.171做web服務器使用node4192.168.134.173做web服務器使用 1、準備node1與node3環境&#xff08;安裝LVS與Keepalived&#xff09;>…

基于微服務+Java+Spring Cloud +Vue+UniApp +MySql實現的智慧工地云平臺源碼

基于微服務JavaSpring Cloud VueUniApp MySql開發的智慧工地云平臺源碼 智慧工地概念&#xff1a; 智慧工地就是互聯網建筑工地&#xff0c;是將互聯網的理念和技術引入建筑工地&#xff0c;然后以物聯網、移動互聯網技術為基礎&#xff0c;充分應用BIM、大數據、人工智能、移…

滾動條樣式更改

::-webkit-scrollbar 滾動條整體部分&#xff0c;可以設置寬度啥的 ::-webkit-scrollbar-button 滾動條兩端的按鈕 ::-webkit-scrollbar-track 外層軌道 ::-webkit-scrollbar-track-piece 內層滾動槽 ::-webkit-scrollbar-thumb 滾動的滑塊 ::-webkit-scrollbar…

Android布局【RelativeLayout】

文章目錄 介紹常見屬性根據父容器定位根據兄弟組件定位 通用屬性margin 設置組件與父容器的邊距padding 設置組件內部元素的邊距 項目結構主要代碼 介紹 RelativeLayout是一個相對布局&#xff0c;如果不指定對齊位置&#xff0c;都是默認相對于父容器的左上角的開始布局 常見…

TypeScript教程(二)基礎語法與基礎類型

一、基礎語法 TypeScript由以下幾個部分組成 1.模塊 2.函數 3.變量 4.語句和表達式 5.注釋 示例&#xff1a; Runoob.ts 文件代碼&#xff1a; const hello : string "Hello World!" console.log(hello) 以上代碼首先通過 tsc 命令編譯&#xff1a; tsc …

MQTT寶典

文章目錄 1.介紹2.發布和訂閱3.MQTT 數據包結構4.Demo5.EMQX 1.介紹 什么是MQTT協議 MQTT&#xff08;消息隊列遙測傳輸協議&#xff09;&#xff0c;是一種基于發布/訂閱&#xff08;publish/subscribe&#xff09;模式的“輕量級”通訊協議&#xff0c;該協議構建于TCP/IP協…

php、 go 語言怎么結合構建高性能高并發商城。

一、php、 go 語言怎么結合構建高性能高并發商城。 將PHP和Go語言結合起來構建高性能高并發的商城系統可以通過多種方法實現&#xff0c;以利用兩種語言的優勢。下面是一些可能的方法和策略&#xff1a; 1. **微服務架構&#xff1a;** 使用微服務架構&#xff0c;將系統拆分…

安卓快速開發

1.環境搭建 Android Studio下載網頁&#xff1a;https://developer.android.google.cn/studio/index.html 第一次新建工程需要等待很長時間&#xff0c;新建一個Empty Views Activity 項目&#xff0c;右上角選擇要運行的機器&#xff0c;運行就安裝上去了(打開USB調試)。 2…

【Linux】UDP協議——傳輸層

目錄 傳輸層 再談端口號 端口號范圍劃分 認識知名端口號 兩個問題 netstat與iostat pidof UDP協議 UDP協議格式 UDP協議的特點 面向數據報 UDP的緩沖區 UDP使用注意事項 基于UDP的應用層協議 傳輸層 在學習HTTP等應用層協議時&#xff0c;為了便于理解&#xff…

【實操】2023年npm組件庫的創建發布流程

2022年的實踐為基礎&#xff0c;2023年我再建一個組件庫【ZUI】。步驟回顧&#xff1a; 2022年的npm組件包的發布刪除教程_npm i ant-design/pro-components 怎么刪除_啥咕啦嗆的博客-CSDN博客 1.在gitee上創建一個項目,相信你是會的 2.創建初始化項目&#xff0c;看吧&#…

泛型類接口方法學習

一、泛型 1 概念 泛型(Generics)&#xff0c;廣泛的類型。最大用途是給集合容器添加標簽&#xff0c;讓開發人員知道容器里面放到是什么類型&#xff0c;并且自動對放入集合的元素進行類型檢查。 類比實參和形參&#xff0c;我們在對方法中的變量操作時&#xff0c;并沒有指…

深入理解高并發編程 - 深度解析 ThreadPoolExecutor 類

ThreadPoolExecutor 是 Java 標準庫中用于創建和管理線程池的核心類之一。它實現了 ExecutorService 接口&#xff0c;提供了豐富的線程池管理功能。下面將通過源碼解析來深入了解 ThreadPoolExecutor 類的工作原理和各個重要部分。 可以在 Java 源代碼中找到 ThreadPoolExecu…

【新品發布】ChatWork企業知識庫系統源碼

系統簡介 基于前后端分離架構以及Vue3、uni-app、ThinkPHP6.x、PostgreSQL、pgvector技術棧開發&#xff0c;包含PC端、H5端。 ChatWork支持問答式和文檔式知識庫&#xff0c;能夠導入txt、doc、docx、pdf、md等多種格式文檔。 導入數據完成向量化訓練后&#xff0c;用戶提問…

兩個pdf合并成一個pdf怎么合并?這幾個方法值得推薦

兩個pdf合并成一個pdf怎么合并&#xff1f;pdf文件的合并是一個很常見的需求&#xff0c;特別是在處理工作文件或學習資料時。為了更好的幫助你了解如何將兩個pdf文件合并成一個&#xff0c;下面就給大家詳細介紹幾種合并方法。 方法一&#xff1a;使用迅捷PDF轉換器 這是一款…

小紅書如何打造爆款引流吸粉?11個秘訣助你秒變達人!

在這個充滿信息和內容的時代&#xff0c;小紅書以其獨特的社交平臺特性和個性化內容吸引了眾多用戶。今天&#xff0c;我們就來揭秘小紅書關注戰略&#xff0c;了解如何在這個平臺上打造獨特的內容體驗&#xff0c;與用戶建立更親近的連接。#小紅書# 1、定位清晰&#xff0c;找…

【論文閱讀】基于深度學習的時序預測——Pyraformer

系列文章鏈接 論文一&#xff1a;2020 Informer&#xff1a;長時序數據預測 論文二&#xff1a;2021 Autoformer&#xff1a;長序列數據預測 論文三&#xff1a;2022 FEDformer&#xff1a;長序列數據預測 論文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

Python技巧----解壓序列/可迭代對象賦值給多個變量

1 、解壓序列賦值給多個變量 我們這里說的不是正常情況的一一賦值比如下面 >>> data = [ ACME, 5, 9, (2012, 12, 1) ] >>> name, shares, price, date = data >>> name ACME

頁面跳轉和兩個頁面之間的數據傳遞-鴻蒙ArkTS

頁面跳轉和兩個頁面之間的數據傳遞-ArkTS 頁面跳轉和兩個頁面之間的數據傳遞-ArkTS關于router的使用**跳轉頁面的實現方式。**頁面接受跳轉傳遞的參數頁面返回及攜帶參數效果代碼Index頁面Second頁面 參考資料 頁面跳轉和兩個頁面之間的數據傳遞-ArkTS 本篇文章主要是對兩個頁面…