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

歡迎訪問 生活随笔!

生活随笔

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

javascript

JSP的基本内容

發(fā)布時間:2025/4/16 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP的基本内容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSP(可以進行業(yè)務邏輯判斷)?學習:

問題: 在學習了 Servlet 之后,使用 Servlet 進行頁面的展現,代碼書寫過于麻煩。極大的影響了開發(fā)的效率,那么有沒有一種方式可 以讓我們像以前寫網頁一樣來進行網頁的編程工作呢?

解決: 使用 JSP 技術

概念: JSP 全名為 Java Server Pages,中文名叫 java 服務器頁面,其根本是一個簡化的 Servlet 設計,它 [1] 是由 Sun Microsystems 公司倡導、許多公司參與一起建立的一種動態(tài)網頁技術標準。

特點: 本質上還是 Servlet

? ? ? ? ? ? 跨平臺,一次編寫處處運行

? ? ? ? ? ?組件跨平臺

? ? ? ? ? ?健壯性和安全性

Jsp 的訪問原理: 瀏覽器發(fā)起請求,請求 JSP,請求被 Tomcat 服務器接收,執(zhí)行 JspServlet 將請求的 JSP 文件轉義成為對應的 java 文件(也是 Servlet),然后執(zhí)行轉義好的 java 文件。


動態(tài)網頁技術?:衡量標準是里面的數據會不會改變。若改變,則是。


Jsp 的語法和指令:

JSP page 指令

JSP taglib 指令

Jsp 的局部代碼塊

Jsp 的全局代碼塊

Jsp 的腳本端

Jsp 的注釋

Jsp 的靜態(tài)引入(JSP include 指令)

Jsp 的動態(tài)引入

頁面轉發(fā)(forword 標簽)

Jsp 的內置對象:

PageContext 對象

Request 對象

Session 對象

Application 對象

Response 對象

Out 對象

Page 對象Exception 對象

Config 對象

使用: JSP 負責頁面展現,Servlet 負責業(yè)務邏輯處理。

?

資源路徑總結:

Jsp 中路徑: 相對路徑:../../資源

? ? ? ? ? ? ? ? ? ? ? 絕對路徑:/虛擬項目名/資源路徑


Jsp的三種注釋?? ?

? ? ? ? 前端語言注釋:?會被轉譯,也會被發(fā)送,但是不會被瀏覽器執(zhí)行? ? ??
?? ??? ?java語言注釋:?會被轉譯,但是不會被servlet執(zhí)行? ? ?
?? ??? ?Jsp注釋:?不會被轉譯。? ?<%--? ?--%>


?Jsp的page指令學習

? ? ? ? ?<%@page 屬性名="屬性值" 屬性名="屬性值"...%>

eg. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>

? ? ? ? language:聲明jsp要被轉譯的語言
?? ??? ?import:聲明轉譯的java文件要導入的包,不同的包使用逗號隔開
?? ??? ?pageEncoding:設置jsp文件的數據編碼格式。
?? ??? ?contentType="text/html; charset=utf-8" ?設置jsp數據響應給瀏覽器時,瀏覽器的解析和編碼格式。


? ? ? ??


?? ??? ?

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'error.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>服務器繁忙,請稍后重試 <br></body> </html>


?

? ? ? ? session:設置轉譯的servlet中是否開啟session支持,默認開啟,true表示開啟。false表示關閉。
?? ??? ?errorPage:設置jsp運行錯誤跳轉的頁面.
?? ??? ?extends:設置jsp轉譯的java文件要繼承的父類(包名+類名)。?? ?
?? ??? Jsp的page指令作用:?配置jsp文件的轉譯相關的參數。
?? ??? ???


jspPro.jsp?

<%@ page language="java" import="java.util.*,java.lang.*" pageEncoding="utf-8" contentType="text/html; charset=utf-8"%> <%@page session="true" %> <%@page errorPage="error.jsp" %> <%@page isErrorPage="true" %><html><head><title>jsp基本語法學習</title><meta charset="utf-8" /></head><body><h3>jsp基本語法學習</h3><hr/></body> </html>

?表面上是html代碼,實質上是Java代碼


Jsp的局部代碼塊:


?? ??? ?特點:
?? ??? ??? ?局部代碼塊中聲明的java代碼會被原樣轉譯到jsp對應的servlet文件的_JspService方法中
?? ??? ??? ?代碼塊中聲明的變量都是局部變量。
?? ??? ?使用:<% java代碼 ?%>
?? ??? ?缺點:
?
? ??? ??? ?使用局部代碼塊在jsp中進行邏輯判斷,書寫麻煩,閱讀困難。
?? ??? ?開發(fā):
?? ??? ??? ?servlet進行請求邏輯處理使用jsp進行頁面展現。


Jsp的全局代碼塊:


?? ??? ?特點:
?? ??? ??? ?聲明的java代碼作為全局代碼轉譯到對應的servlet類中。
?? ??? ?使用:
?? ??? ??? ?<%! 全局代碼 %>
?? ??? ?注意:
?? ??? ??? ?全局代碼塊聲明的代碼,需要使用局部代碼塊調用。


Jsp的腳本段語句:

? ?<%=str%>

? ? ? ? 特點:幫助我們快速的獲取變量或者方法的返回值作為數據響應給瀏覽器。
?? ??? ?使用:<%=變量名或者方法%>
?? ??? ?注意:不要在變量名或者方法后使用分號。?? ?
?? ??? ?位置:除jsp語法要求以外的任意位置。


Jsp的靜態(tài)引入和動態(tài)引入:

? ? ? ? 靜態(tài)引入:
?? ??? ??? ?<%@include file="要引入的jsp文件的相對路徑" %>

? ? ? ? ? ?eg.?

? ? ? ? ? ?
?? ??? ???

? ? ? ? ? ?特點:
?? ??? ??? ??? ?會將引入的jsp文件和當前jsp文件轉譯成一個java(Servlet)文件使用。
?? ??? ??? ??? ?在網頁中也就顯示了合并后的顯示效果。
?? ??? ??? ?注意:
?? ??? ??? ??? ?靜態(tài)引入的jsp文化不會單獨轉譯成java(Servlet)文件。
?? ??? ??? ??? ?當前文件和靜態(tài)引入的jsp文件中不能夠使用java代碼塊聲明同名變量。

? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ?變量名必須不同,即使變量的聲明不同,如一個是int型,一個是String型,但是變量名一致,還是會報錯。

? ? ? ? ? ? ? ?原因:變量里面存的是內存地址而內存地址與變量名是相關的。變量名就是一個門牌號,變量里面開辟了一個空間。如果是int型的變量,就往里面放int型的數據;如果是String型的變量,就往里面String型的數據。


??動態(tài)引入:
?? ??? ??? ?<jsp:include page="要引入的jsp文件的相對路徑"></jsp:include>

? ? ? ? ? ? ? ?
?? ??? ??? ?特點:
?? ??? ??? ??? ?會將引入的jsp文件單獨轉譯在當前文件轉譯好的java文件中調用引入的jsp文件的轉譯文件。
?? ??? ??? ??? ?在網頁中顯示合并后的顯示效果。
?? ??? ??? ?注意:
?? ??? ??? ??? ?動態(tài)引入允許文件中聲明同名變量


Jsp的三大指令:page指令、taglib指令、include指令?


?jsp的轉發(fā)標簽:

? ? ? 優(yōu)點:
?? ??? ??? ?降低jsp代碼的冗余,便于維護升級。
?? ?jsp的轉發(fā)標簽forward:
?? ??? ?使用:?? ??? ??? ?
?? ??? ??? ?<jsp:forward page="要轉發(fā)的jsp文件的相對路徑"></jsp:forward>

? ? ? ? ? ??
?? ??? ?特點:
?? ??? ??? ?一次請求
?? ??? ??? ?地址欄信息不改變。
?
? ??? ?注意:

? ? ? ??
?? ??? ???在轉發(fā)標簽的兩個標簽中間除了寫<jsp:param value="aaa" name="str" />子標簽不會報錯,其他任意字符都會報錯。
?? ??? ??? <jsp:param value="aaa" name="str" />
?? ??? ??? ?name屬性為附帶的數據的鍵名
?? ??? ??? ?value為附帶的數據內容

?注意:會將數據以?的形式拼接在轉發(fā)路徑的后面。


?? ??? ???


jsp的九大內置對象:

? ? ? ?內置對象:
?? ??? ??? ?jsp文件在轉譯成其對應的Servlet文件的時候自動生成的并聲明的對象。在jsp頁面中直接使用即可。
?? ??? ?注意:
?? ??? ??? ?內置對象在jsp頁面中使用,使用局部代碼塊或者腳本段語句來使用。不能夠在全局代碼塊中使用。
?? ??? ?內容:九個對象
?? ??? ??? ?pageContext:頁面上下文對象,封存了其他內置對象。封存了當前jsp的運行信息。
?? ??? ??? ??? ??? ?注意:每個Jsp文件單獨擁有一個pageContext對象。
?? ??? ??? ??? ??? ?作用域:當前頁面。
?? ??? ??? ?request:封存當前請求數據的對象。由tomcat服務器創(chuàng)建。一次請求
?? ??? ??? ?session:此對象用來存儲用戶的不同請求的共享數據的。一次會話
?? ??? ??? ?application:也就是ServletContext對象,一個項目只有一個。存儲用戶共享數據的對象,以及完成其他操作。項目內
?? ??? ??? ?response:響應對象,用來響應請求處理結果給瀏覽器的對象。設置響應頭,重定向。
?? ??? ??? ?out:響應對象,Jsp內部使用。帶有緩沖區(qū)的響應對象,效率高于response對象。
?? ??? ??? ?page:代表當前Jsp的對象。相當于java中的this。
?? ??? ??? ?exception:異常對象。存儲了當前運行的異常信息。
?? ??? ??? ??? ?注意:使用此對象需要在page指定中使用屬性isErrorPage="true"開啟。
?? ??? ??? ?config:也就是ServletConfig,主要是用來獲取web.xml中的配置數據,完成一些初始化數據的讀取。

eg.


? 四個作用域對象:

? ? ? ? pageContext:當前頁面.解決了在當前頁面內的數據共享問題。獲取其他內置對象。
?? ??? ?request:一次請求。一次請求的servlet的數據共享。通過請求轉發(fā),將數據流轉給下一個servlet。
?? ??? ?session:一次會話.一個用戶的不同請求的數據共享。將數據從一次請求流轉給其他請求。
?? ??? ?application:項目內.不同用戶的數據共享問題。將數據從一個用戶流轉給其他用戶。
?? ??? ?作用:數據流轉


Jsp的路徑:

?

?

為什么會出現上面這張圖片的錯誤,就是因為如下圖所示:

當把上圖相關的代碼給注釋掉就會發(fā)現可以正常顯示啦!


? ? ? ? 在jsp中資源路徑可以使用相對路徑完成跳轉,但是:
?? ??? ??? ?問題一:資源的位置不可隨意更改。
?? ??? ??? ?問題二:需要使用../進行文件夾的跳出。使用比較麻煩。
?? ??? ?使用絕對路徑:(必須會)
?? ??? ??? ?/虛擬項目名/項目資源路徑
?? ??? ??? ?例如:
?? ??? ??? ??? ??? ?<a href="/jsp/jspPro.jsp">jspPro.jsp</a>
?? ??? ??? ??? ??? ?<a href="/jsp/a/a.jsp">a.jsp</a><br />
?? ??? ??? ?注意:在jsp中資源的第一個/表示的是服務器根目錄,相當于:localhost:8080
?? ??? ?使用jsp中自帶的全局路徑聲明:
?? ??? ??? ?<%
?? ??? ??? ??? ?String path = request.getContextPath();
?? ??? ??? ??? ?String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
?? ??? ??? ?%>
?? ??? ??? ?<base href="<%=basePath%>">
?? ??? ??? ?作用:
?? ??? ??? ??? ?給資源前面添加項目路徑:?? ??? ?http://127.0.0.1:8080/虛擬項目名/(直接寫項目下的資源路徑)? ? ? ?

總結

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

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