1)全名稱為Java Server Pagas,中文名稱為java服務器頁面,其根本就是一個簡化的servlet設計,JSP是一種動態(tài)網(wǎng)頁技術標準。

2)參考了微軟ASP而來的。主要解決Servlet在界面展現(xiàn)上存在的不足" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運營 > JSP技術

JSP技術

時間:2023-09-26 02:24:01 | 來源:網(wǎng)站運營

時間:2023-09-26 02:24:01 來源:網(wǎng)站運營

JSP技術:

java052

jsp

jsp的概念:

1)全名稱為Java Server Pagas,中文名稱為java服務器頁面,其根本就是一個簡化的servlet設計,JSP是一種動態(tài)網(wǎng)頁技術標準。

2)參考了微軟ASP而來的。主要解決Servlet在界面展現(xiàn)上存在的不足(利用Servlet實現(xiàn)界面展示比較繁瑣)。

jsp的特點:

1)本質上還是 Servlet 。

2)跨平臺,一次編寫處處運行 。

3)組件跨平臺 。

4)健壯性和安全性。

jsp的使用:

JSP 負責頁面展現(xiàn),Servlet 負責業(yè)務邏輯處理。

JSP的本質:

JSP的本質就是一個Servlet.

JSP的執(zhí)行過程:

3)執(zhí)行字節(jié)碼。將JSP翻譯成java源文件(Servlet)。

2)編譯階段:將JSP編譯成class文件(字節(jié)碼文件)。

3)執(zhí)行字節(jié)碼。

JSP頁面的組成部分:

1.指令元素:page指令,include指令, taglib指令。

語法:<%@ 指令元素的名稱 屬性1="值1" 屬性2="值2"...%>

page指令:設置頁面的信息 <%@ page language="腳本語言" import="包名.類名" pageEncoding="頁面編碼集"%>

eg:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

include指令: 靜態(tài)引入(靜態(tài)包含)<%@include file="url" %>

eg:<%@include file="commons.jsp"%>

2.小腳本:<% java代碼%>

在小腳本中的代碼屬于java代碼,java的注釋(單行注釋,多行注釋,文檔注釋) 在小腳本中可以正常使用

<%
//獲取當前日期
Date date = new Date();
%>
3.前端靜態(tài)元素:HTML+CSS+JS...

4.表達式: 輸出小腳本中變量的值<%= 表達式%>

<%=date%>
5.聲明: 在頁面上聲明變量,方法等內容。(不建議使用)

<%! 聲明的元素內容%>

eg:

<%!int a=10; %>
<%!
public int max(int a,int b){
return a>b?a:b;
}
%>
6.注釋:

a.HTML注釋:<!--注釋內容--> 運行在客戶端的(可以通過查看網(wǎng)頁源代碼看到)

b.小腳本的注釋: //單行注釋 /*多行注釋*/ 運行在服務器端的(可以通過查看網(wǎng)頁源代碼無法看到)

c.JSP注釋:<%--注釋內容--%> 運行在服務器端的(可以通過查看網(wǎng)頁源代碼無法看到)

7.動作元素:

<jsp:動作名稱 屬性="值"..></jsp:動作名稱>

常見的動作元素:

請求轉發(fā): <jsp:forward page="url"></jsp:forward>
forward動作元素:等同于請求轉發(fā)request.getRequestDispatcher(url).forward(request,response)

動態(tài)包含:

<jsp:include page="url"></jsp:include>
eg:

<jsp:include page="index2.jsp"></jsp:include>
面試題:動態(tài)包含和靜態(tài)包含的區(qū)別?

相同點: 都可以實現(xiàn)頁面包含(引入)的效果。

不同的:

1)語法不同

靜態(tài)包含:<%@include file="包含的頁面"%>

動態(tài)包含:<jsp:include page="包含的頁面"/>

2)編譯的文件個數(shù)不同

動態(tài)包含最終編譯輸出的文件為2個(被包含的頁面單獨編譯), 包含頁面和被包含的頁面的變量名可用相同。

靜態(tài)包含最終編程輸出的文件為1個,不允許包含頁面和被包含的頁面的變量名相同。

代碼示例:

include.jsp類

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%--問題: 發(fā)現(xiàn),不同的jsp頁面會使用相同的資源。如果將資源在每個jsp頁面都單獨聲明 則會造成代碼的冗余量過高,不易于代碼的維護和升級。解決: 使用靜態(tài)引入和動態(tài)引入的方式使用: 靜態(tài)引入: <%@include file="要引入的資源的相對路徑"%> 特點: 被引入的jsp文件和原有jsp文件被轉譯成一個java文件使用。 注意:靜態(tài)引入的相關jsp文件中不能聲明同名變量。 動態(tài)引入: <jsp:include page="要引入的資源的相對路徑"></jsp:include> 特點: 被引入的文件會被單獨轉譯,原有jsp文件會調用被引入的jsp文件。 注意:動態(tài)引入的相關jsp文件中可以聲明同名變量。 靜態(tài)引入/靜態(tài)引入 作用:實現(xiàn)了不同jsp之間的資源共享。 --%><html><head></head><body><h2>靜態(tài)引入和動態(tài)引入的學習</h2><hr/><%-- <i>&copy;網(wǎng)站聲明,手機號:77889900,網(wǎng)站備案號等</i> --%> <%int a=3; %> <!-- 1.靜態(tài)引入 --><%-- <%@include file="static.jsp"%> --%><!-- 2.動態(tài)引入 --><jsp:include page="static.jsp"></jsp:include></body></html>static.jsp類

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><% int a=3;%><i>&copy;網(wǎng)站聲明,手機號:114,網(wǎng)站網(wǎng)站備案號</i>JSP的內置對象(九個內置對象/隱式對象)

1.request對象(HttpServletRequest):封裝用戶請求數(shù)據(jù),通過該對象可以獲取用戶請求的相關數(shù)據(jù)。

常用的方法:

request.getParameter(String name)--->String: 根據(jù)參數(shù)的名稱獲取參數(shù)的值。

request.getParameterValues(String name)--->String[]:根據(jù)參數(shù)的名稱獲取參數(shù)值。主要用于復選框。

request.setAttribute(String name,Object value):將指定的值存到request范圍中.

request.getAttribute(String name):通過名稱從request返回中獲取值。

request.getRequestDispatcher(String url).forward(request,response):請求轉發(fā)

request.setCharacterEncoding(String encoding):設置請求編碼集,可以解決post提交的亂碼問題。

request.getSession():獲取會話對象。

需要了解的方法

request.getScheme():獲取協(xié)議 --->http

request.getServerName():獲取服務器名稱或IP地址

request.getServerPort():獲取服務器端口號

request.getContextPath():獲取上下文路徑(默認是項目名)

2.response對象(HttpServletResponse):封裝響應數(shù)據(jù)。

常用的方法:

response.setContentType(String content);--->response.setContentType("text/html;charset=utf-8");

response.sendRedirect(String url):重定向

response.getWriter()--->JspWriter:獲取輸出流進行輸出

3.session對象(HttpSession):封裝會話信息(瀏覽器和服務器之間的會話),一個會話中多次請求數(shù)據(jù)共享。

常用的方法

session.setAttribute(String name,Object value):存值

session.getAttribute(String name):取值

session.invalidate():銷毀會話

4.application對象(ServletContext):封裝Servlet上下文信息,整個應用程序共享。

常用的方法

application.setAttribute(String name,Object value):存值

application.getAttribute(String name):取值

5.out對象(PrintWriter):在頁面輸出信息

out.print(Object content)/out.println(Object content);

out.write(Object content)

6. pageContext對象:頁面上下文對象,可以通過該對象獲取其他8個內置對象

pageContext.setAttribute(String name,Object value):存值

pageContext.getAttribute(String name):取值

7.page對象(this):當前頁面

8.config對象(ServletConfig):封裝配置信息

9.exception(Exception):封裝異常信息

面試題:page(pageContext)|request|session|application作用域的區(qū)別:

1)page:作用域范圍僅限于當前頁面。

2)request:作用域范圍僅限于一次請求之間(包含當前頁面)。注意:如果在A頁面存值,在B頁面取值,則A頁面跳轉B頁面必須使用請求轉發(fā)。

3)session:作用域范圍僅限于一次會話之間(包含當前頁面和多次用戶請求)。

4)application:作用域范圍是整個應用程序(項目)共享。

其范圍大小:application>session>request>page




Jsp 的訪問原理:

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

資源路徑總結:

Jsp 中路徑:

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

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

路徑問題(基礎路徑:主要解決跳轉時目錄路徑問題,通過基礎路徑每次從項目的根目錄開始查找,可以省去相對路徑之間的進退文件夾的問題)。







關鍵詞:技術

74
73
25
news

版權所有? 億企邦 1997-2025 保留一切法律許可權利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點擊下載Chrome瀏覽器
關閉