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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JAVA WEB篇3——JSP

發布時間:2025/3/12 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA WEB篇3——JSP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAVA WEB篇3——JSP

1、JSP是什么

  • JSP是Java Server Pages的簡稱,跟Servlet一樣可以動態生成HTML響應, JSP文件命名為 xxx.jsp

  • 與Servlet不同,JSP文件以HTML標記為主,然后內嵌Java代碼段,用于處理動態內容

<%@ page import="java.util.Date" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html><head><title>Hello Time</title></head><body>現在的時間是:<%= new Date()%></body> </html>

2、JSP與Servlet

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-39HZhKDf-1626687359596)(C:\Users\yoya\AppData\Roaming\Typora\typora-user-images\image-20210719162503916.png)]

3、JSP模塊概述

  • 聲明區
  • 程序代碼區
  • 表達式
  • 注釋
  • 指令和動作
  • 內置對象

4、JSP聲明區

可以定義全局變量、方法、類

<%!int i;public void setName(){… …} %>

5、JSP程序代碼區

可以定義局部變量以及放入任何的Java程序代碼

<%int j;for (int k=0; k<10; k++) {… …} %>

6、JSP表達式

可以輸出一個變量或一個具體內容,但=后面必須是字符串變量或者可以被轉換成字符串的表達式

不需要以;結束,只有一行

<%=“hello world”%> <%=i+1%>

7、JSP注釋

格式: <!--… …--> HTML文件的注釋,瀏覽器可以查看到 <%--… …--%> JSP文件的注釋,瀏覽器看不到 <%//… …%> Java語言中的單行注釋,瀏覽器看不到 <%/*… …*/%> Java語言中的多行注釋,瀏覽器看不到 注釋的內容不會被執行

8、JSP指令

指令格式: <%@指令 屬性=“屬性值” 屬性=“屬性值” %>

8.1、page指令

page指令用于導包和設置一些頁面屬性

import 導入相應的包,惟一允許在同一文檔中多次出現的屬性 contentType 設置Content-Type響應報頭,標明即將發送到瀏覽器的文檔類型 pageEncoding 設置頁面的編碼 language 指定頁面使用的語言 session 控制頁面是否參與HTTP會話 errorPage 處理當前頁面中拋出但未被捕獲的任何異常 isErrorPage 當前頁是否可以作為其他頁面的錯誤處理頁面

8.2、taglib指令

taglib指令用來擴展JSP程序的標簽元素,引入其他功能的標簽庫文件

<!-- prefix屬性用于指定庫前綴 --> <!-- uri屬性用于指定庫的標識 --> <%@taglib uri=“tagLibary” prefix=“prefix”%>

8.3、include指令

include指令用于引入另一個JSP程序或HTML文件

<%@include file=“被包含的文件地址%>

9、JSP動作

9.1、jsp:include

  • include指令是在JSP程序的轉換時期就將file屬性所指定的程序內容嵌入再編譯執行(靜態包含)
  • include動作在轉換時期是不會被編譯的,只有在客戶端請求時期被執行到才會被動態的編譯載入 (動態包含,推薦)
<jsp:include page=“URLSpec” flush=“true”/><jsp:include page=“URLSpec” flush=“true”> <jsp:param name=“key” value=“value”/></jsp:include>

9.2、jsp:forward

forward動作用于在JSP中實現轉發,將請求轉發到另一個指定的JSP程序或者Servlet中處理,轉發后可以用request來捕獲參數

<jsp:forward page=“urlSpec” flush=“true”/><jsp:forward page=“urlSpec”><!-- 用于指定參數和其對應的值 --><jsp:param name=“key” value=“value”/></jsp:forward>

10、JSP內置對象

  • 在JSP程序中有9個內置對象由容器為用戶進行實例化,程序員可以不用定義就直接使用這些變量
  • 在JSP轉換成Servlet后,會自動追加這些變量的定義,使用內置對象可以簡化JSP的開發
對象變量對象類型作用
outJSPWriter輸出流
requestHttpServletRequest請求信息
responseHttpServletResponse響應信息
sessionHttpSession會話
applicationServletContext全局的上下文對象
pageContextPageContextJSP頁面上下文
pageObjectJSP頁面本身
configServletConfigServlet配置對象
exceptionThrowable捕獲網頁異常

10.1、out

out內置對象是一個緩沖的輸出流,用來給客戶端輸出信息

方法聲明功能介紹
void println(String x)向客戶端輸出各種類型數據
void newLine()輸出一個換行符
void close()關閉輸出流
int getBufferSize()返回緩沖區的大小
int getRemaining()返回緩沖區中未使用的字節數
void flush()輸出緩沖區里的數據
void clearBuffer()清除緩沖區里的數據,同時把數據輸出到客戶端
void clear()清除緩沖區里的數據,但不把數據輸出到客戶端

10.2、request

request對象封裝的是調用JSP頁面的請求信息,它是HttpServletRequest接口的一個實例,該對象的屬性值只在一個請求中保存。

方法聲明功能介紹
String getMethod()返回客戶端向服務器端傳送數據的方式
String getParameter(String name)返回客戶端向服務器端傳送的參數值
String[] getParameterValues( String name)獲得指定參數的所有值
String getRequestURI()獲得請求地址
String getRemoteAddr()返回發送請求的客戶端或最后一個代理的IP地址
int getRemotePort()返回發送請求的客戶端或最后一個代理的端口號
String getServerName()獲取服務器的名字
int getServerPort()獲取服務器端的端口
void setAttribute(String name,Object o)在此請求中存儲屬性。屬性在請求之間重置
Object getAttribute(String name)將指定屬性的值作為對象返回,若不存在則返回空值

10.3、 response

response對象用于給客戶端相應輸出處理結果,它是HttpServletResponse接口的一個實例,經常用于設置HTTP標題,添加cookie、設置響應內容的類型和狀態、發送HTTP重定向和編碼 URL

方法聲明功能介紹
void addCookie(Cookie cookie)添加一個Cookie對象,用于在客戶端保存特定的信息
void addHeader(String name, String value)添加HTTP頭信息,該Header信息將發送到客戶端
boolean containsHeader(String name)判斷指定名字的HTTP文件頭是否存在
void sendRedirect(String location)重定向JSP文件
void setContentType(String type)設置類型與編碼方式

10.4、session

  • session對象表示瀏覽器和服務器之間的一次會話,一次會話可以包含多次請求,在多次請求之間 可以借助session對象存儲信息,它是HttpSession類型的一個實例
  • 該對象的屬性值在一次會話范圍中保存,保存在服務器端,只要不關閉瀏覽器,默認半個小時內都 可以訪問
方法聲明功能介紹
void setAttribute(String name, Object value)使用指定的名稱將對象綁定到此會話
Object getAttribute(String name)返回在此會話中用指定名稱綁定的對象,如果沒有對象在該 名稱下綁定則返回空值

10.5、 application

application對象是一個web程序的全局變量,它是ServletContext類型的一個實例,在整個服務器上保存數據,所有用戶共享

方法聲明功能介紹
void setAttribute(String name, Object object)將對象綁定到此servlet上下文中的給定屬性名
Object getAttribute(String name)返回給定名稱的

10.6、pageContext

pageContext對象是PageContext類型的對象,可以使用這個對象來管理其他的隱含對象。 只在一個頁面中保存數據。

方法聲明功能介紹
void setAttribute(String name, Object value, int scope)使用適當的作用域設置指定的名稱和值
Object getAttribute(String name, int scope)返回指定作用域中名稱關聯的對象,若找不到 則返回null
ServletRequest getRequest()獲取請求對象
ServletResponse getResponse()獲取響應對象
HttpSession getSession()獲取會話對象
ServletConfig getServletConfig()獲取配置對象
JspWriter getOut()獲取輸出對象
Object getPage()獲取頁面對象
Exception getException()獲取異常對象

10.7、exception

exception 對象是Throwable的實例,表示的是JSP的異常信息,如果要使用它,必須將對應頁面page指令的isErrorPage屬性設置成true。

單頁處理

<%@page errorPage="error.jsp" %>

統一處理

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

11、EL表達式

EL(Expression Language)表達式提供了在JSP中簡化表達式的方法,可以方便地訪問各種數據 并輸出

11.1、訪問內置對象的數據

<%=request.getAttribute(“ varName”)%> 用EL實現: ${ varName }

11.2、訪問請求參數的數據

request.getParameter(name); request.getParameterValues(name); <!-- 獲取指定參數的數值 --> ${param.name} <!-- 獲取指定參數中指定下標的數值 --> ${paramValues.hobby[0]}

11.3、訪問Bean對象的屬性

<% request.setAttribute(“prop”,“age”); %> <!-- 相當于表達式中寫一個變量 --> ${ user[prop] }

11.4、訪問集合的屬性

<!-- student為ArrayList類型的對象 --> ${student[0].name}

11.5、內置對象

類別標識符描述
JSPpageContextPageContext處理當前頁面
作用域pageScope同頁面作用域屬性名稱和值有關的Map類
requestScope同請求作用域屬性的名稱和值有關的Map類
sessionScope同會話作用域屬性的名稱和值有關的Map類
applicationScope同應用程序作用域屬性的名稱和值有關的Map類
請求參數param根據名稱存儲請求參數的值的Map類
paramValue把請求參數的所有值作為一個String數組來存儲的Map類
請求頭header根據名稱存儲請求頭主要值的Map類
headerValues把請求頭的所有值作為一個String數組來存儲的Map類
Cookiecookie根據名稱存儲請求附帶的cookie的Map類
初始化參數initParam根據名稱存儲Web應用程序上下文初始化參數的Map類

11.6、運算符

算術運算符說明范例運算結果
+${1+2}3
-${2-1}1
*${2*3}6
/或div$ {16/5}或${16div5}3.2
%或mod取余$ {16%5}或${16mod5}1

11.7、關系運算符

算術運算符說明范例運算結果
==或eq等于1==2或{1==2}或1==2{1 eq 2}false
!= 或ne不等于2!=1或{2!=1}或2!=1{1 ne 2}true
< 或lt小于2<3或{2<3}或2<3{2 lt 3 }true
>或 gt大于16>5或{16>5}或16>5{16 gt 5}true
<=或le小于等于16<=5或{16<=5}或16<=5{16 le 5}false
>=或ge大于等于16>=5或{16>=5}或16>=5{16 ge 5}true

11.8、邏輯運算符

算術運算符說明范例運算結果
&& 或 and與運算KaTeX parse error: Expected '}', got '&' at position 6: {true&?&true}或{true and true}true
||或or或運算true∥∥false或{true\|\|false}或truefalse{true or false}true
! 或not非運算!true或{!true}或!true{not true }false

11.9、條件運算符

${條件表達式? 語句1 : 語句2}

11.10、驗證運算符

${empty 表達式} 返回布爾值判斷表達式是否為"空"值,null值、無元素的集合或數組、長度為零的String被認為是空值

12、JSTL

JSTL( JSP Standard Tag Library ) 被稱為JSP標準標簽庫,開發人員可以利用這些標簽取代JSP頁面上的Java代碼,從而提高程序的可讀性,降低程序的維護難度

jstl 官網:https://tomcat.apache.org/download-taglibs.cgi

12.1、輸出標簽

<c:out></c:out> 用來將指定內容輸出的標簽

12.2、設置標簽

<c:set></c:set> 用來設置屬性范圍值的標簽

12.3、刪除標簽

<c:remove></c:remove> 用來刪除指定數據的標簽

12.4、單條件判斷標簽

<c:if test =“EL條件表達式”> 滿足條件執行 </c:if >

12.5、多條件判斷標簽

<c:choose ><c:when test =“EL表達式”>滿足條件執行</c:when>…<c:otherwise>不滿足上述when條件時執行</c:otherwise> </c:choose >

12.6、循環標簽

<c:forEach var=“循環變量” items=“集合”> … </c:forEach>

12.7、自定義標簽

待補

總結

以上是生活随笔為你收集整理的JAVA WEB篇3——JSP的全部內容,希望文章能夠幫你解決所遇到的問題。

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