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

歡迎訪問 生活随笔!

生活随笔

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

javascript

jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式

發布時間:2024/9/30 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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>

JSP 與 Servlet 的關系

  • JSP 在靜態 HTML 內容中嵌入 Java 代碼,Java 代碼被動態執行后生成 HTML 內容;Servlet 在 Java 代碼中通過 HttpServletResponse 對象動態輸出 HTML 內容。
  • JSP 經編譯后就變成了 Servlet。JSP 的本質就是 Servlet,JVM 只能識別 Java 的類,不能識別 JSP 的代碼,Web 容器將 JSP 的代碼編譯成 JVM 能夠識別的 Java 類。
  • JSP 更擅長表現于頁面顯示,servlet 更擅長于邏輯控制。
  • Web 瀏覽器發送 HTTP 請求到服務端,被 Servlet 獲取并進行處理(例如參數解析、請求轉發);Servlet 調用核心業務邏輯獲得處理結果;Servlet 將邏輯處理結果交給 JSP,動態輸出 HTML 內容;動態生成的 HTML 內容返回到瀏覽器顯示。

JSP 的語法

JSP 語法結構

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

聲明區

基本語法:<%! %>

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

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

程序代碼區

基本語法:<% 程序代碼區 %>

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

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

表達式

基本語法:<%= %>

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

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

<%= "hello world" %> <%= i+1 %>

注釋

注釋的內容不會被執行。

<!-- HTML 文件的注釋,瀏覽器可以查看到 --> <%-- JSP 文件的注釋,瀏覽器看不到 --%> <% // Java 語言中的單行注釋,瀏覽器看不到/* Java 語言中的多行注釋,瀏覽器看不到 */ %>

指令和動作

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

指令的屬性可以設定多個。

JSP常用指令有:page、taglib、include。

page 指令

用于導包和設置一些頁面屬性,常用屬性如下:

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

taglib 指令

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

<!-- prefix 屬性用于指定庫前綴 --> <!-- uri 屬性用于指定庫的標識 --> <%@taglib uri="tagLibary" prefix="prefix" %> <!-- 引入第三方的標簽庫 --> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

include 指令

用于引入另一個 JSP 程序或 HTML 文件等。

JSP 引擎會在 JSP 文件的轉換時期先把 ?le 屬性設定的文件包含進來,然后開始執行轉換及編譯的工作。

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

jsp:include

jsp:include 動作用于引入另一個 JSP 程序或 HTML 文件等。

執行到 include 時,被 include 的文件才會被編譯。

如果 include 的是 jsp 文件,那它暫時不會被轉換成 Servlet 文件。

<jsp:include page="URLSpec" flush="true"/> <jsp:include page="URLSpec" flush="true"><jsp:param name="key" value="value"/> </jsp:include>

include 指令和 jsp:include 動作的區別

include 指令是在 JSP 程序的轉換時期就將 ?le 屬性所指定的程序內容嵌入再編譯執行(靜態包含)。

jsp:include 動作在轉換時期是不會被編譯的,只有在客戶端請求時期被執行到才會被動態的編譯載入(動態包含,推薦)。

jsp:forward

jsp:forward 動作用于在 JSP 中實現轉發,將請求轉發到另一個指定的 JSP 程序或者 Servlet 中處理。

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

JSP 內置對象

基本概念

在 JSP 程序中有 9 個內置對象由容器為用戶進行實例化,程序員可以不用定義就直接使用這些變量。

在 JSP 轉換成 Servlet 后,會自動追加這些變量的定義,使用內置對象可以簡化 JSP 的開發。

out 內置對象

該對象類型是 JSPWriter。

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

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

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) 將指定屬性的值作為對象返回,若不存在則返回空值

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) 設置類型與編碼方式

session 內置對象

該對象表示瀏覽器和服務器之間的一次會話;一次會話可以包含多次請求,在多次請求之間可以借助 session 對象存儲信息,它是 HttpSession 類型的一個實例。

該對象的屬性值在一次會話范圍中保存,保存在服務器端,只要不關閉瀏覽器,默認半個小時內都可以訪問。

  • void setAttribute(String name, Object value) 使用指定的名稱將對象綁定到此會話
  • Object getAttribute(String name) 返回在此會話中用指定名稱綁定的對象,如果沒有對象在該名稱下綁定則返回空值

application 內置對象

該對象代表全局上下文,是一個 web 程序的全局變量,它是 ServletContext 類型的一個實例。

該對象在整個服務器上保存數據,所有用戶共享。

  • void setAttribute(String name, Object object) 將對象綁定到此 servlet 上下文中的給定屬性名
  • Object getAttribute(String name) 返回給定名稱的 servlet 容器屬性,若沒有該名稱的屬性返回 null

pageContext 內置對象

該對象表示 JSP 頁面上下文,是 PageContext 類型的對象,可以使用這個對象來管理其他的隱含對象。

該對象只在一個頁面中保存數據。

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

page 內置對象

該對象的類型是 Object。

該對象是 JSP 頁面本身。

config 內置對象

該對象的類型是 ServletCon?g。

該對象是 Servlet 配置對象。

exception 內置對象

該對象是 Throwable 的實例,表示的是 JSP 的異常信息,作用是捕獲網頁異常。

如果要使用它,必須將跳轉的錯誤頁面(如 error.jsp)的 page 指令的 isErrorPage 屬性設置成 true。

單個頁面的處理方式:

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

在 web.xml 中配置統一的異常處理頁面:

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

JavaBean 組件

基本概念

JavaBean 是使用 Java 語言開發的一個可重用的組件,在 JSP 開發中可以使用 JavaBean 減少重復代碼,使整個 JSP 代碼的開發更加簡潔。

JavaBean 本質上就是 Java 類,通常要求如下:

  • 屬性 - 全部私有化,通過 get 和 set 方法進行訪問。
  • 方法 - 必須是 public 關鍵字修飾。
  • 構造器 - 必須有無參構造方法。

使用方式

使用 jsp:useBean 的方式創建 javaBean 實例;保存范圍有 page|request|sessin|application,默認為 page 范圍。

<jsp:useBean id="對象名" scope="保存范圍" class="包名.類名" />

使用 jsp:setProperty 的方式設置 javaBean 的屬性值。

<jsp:setProperty name="對象名" property="屬性名" value="屬性值" param="參數名"/>

使用 jsp:getProperty 的方式獲取 javaBean 的屬性值。

<jsp:getProperty name="對象名" property="屬性名"/>

保存范圍

JavaBean 的保存范圍有 page、request、session 以及 application,默認是 page 范圍。

刪除方式

<%內置對象.removeAttribute(“JavaBean 的名字”); %>

MVC 設計模式

基本概念

MVC 是模型(Model)和視圖(View)以及控制器(Controller)的簡寫,是一種將數據、界面顯示和業務邏輯進行分離的組織方式,這樣在改進界面及用戶交互時,不需要重新編寫業務邏輯,從而提高了代碼的可維護性。

M:主要用于封裝業務數據的 JavaBean(Bean) 和 業務邏輯的 JavaBean(Service) 及訪問數據庫的 DAO 對象。

V:主要負責數據收集和數據展現,通常由 JSP 文件完成。

C:主要負責流程控制和頁面跳轉,通常由 Servlet 完成。

基本模型

  • 瀏覽器發起請求;
  • Servlet 接受處理請求,通過 JavaBean 封裝業務數據和業務邏輯;
  • Servlet 通過 Dao 對象來訪問數據庫,數據庫把數據以 JavaBean 的形式發給 Servlet;
  • Servlet 對數據進行業務邏輯處理并將結果發給 JSP;
  • JSP 動態輸出 HTML 頁面到瀏覽器。
  • 想了解更多,歡迎關注我的微信公眾號:Renda_Zhang

    總結

    以上是生活随笔為你收集整理的jsp 将页面中的值导入java中_JavaWeb - JSP:概述和语法,内置对象,JavaBean 组件,MVC 设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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