Jsp介紹及基本使用
時(shí)間:2023-05-30 23:45:01 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-05-30 23:45:01 來源:網(wǎng)站運(yùn)營(yíng)
Jsp介紹及基本使用:Jsp介紹
java web中。對(duì)于顯示層而言,最為基本的就是jsp。那么什么是jsp?jsp是由sun公司開發(fā)出來的一套動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)技術(shù),其核心就是在html頁(yè)面中插入Java代碼,可以方便的和服務(wù)端進(jìn)行交互。
jsp的運(yùn)行依賴于web容器(tomcat),它不能像html代碼那樣直接由瀏覽器解析,其需要由web容器將
“*.jsp” 后綴的文件轉(zhuǎn)換成
*.java的文件。編譯成
.class文件之后才能運(yùn)行。如下流程:
范例:編寫jsp頁(yè)面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><title>jsp范例</title></head><body> <h1>Hello Word</h1></body></html>
Jsp基本使用
代碼下載地址:
- 鏈接:https://pan.baidu.com/s/1FfT0nlr-lsrtR4GALEUYtg
- 提取碼:tqq
1、Scriptletscriptlet是一段代碼塊,用來編寫java代碼,scriptlet有如下三種定義格式:
<%%>:定義局部變量
<%!%>:定義全局變量,全局常量、類、方法
<%=%>:輸出值
范例:三種scriptlet演示
2、注釋在jsp中,代碼注釋有兩種:
1、顯式注釋:<!-- HTML代碼編寫風(fēng)格 -->
2、隱式注釋:jsp提供注釋:<%-- 此處為注釋編寫格式 --%>
java原生注釋:// /* */
其中,java原生注釋是編寫在scriptlet代碼塊中的。
范例:觀察注釋
Page指令jsp的Page指令是用來定義頁(yè)面的一些全局屬性,可以用來設(shè)置頁(yè)面編碼、導(dǎo)包等操作。
范例:設(shè)置頁(yè)面編碼:<%@page pageEncoding="UTF-8"%><%@ page pageEncoding="UTF-8"%>
范例:設(shè)置MIME類型:<%@page contentType="text/html;charset=UTF-8"%>當(dāng)我們?cè)跒g覽器中點(diǎn)擊的是一個(gè).exe的文件,那么瀏覽器會(huì)幫助我們自動(dòng)下載,當(dāng)我們?cè)L問一個(gè)*.html文件時(shí),則是瀏覽器解析預(yù)覽。這是因?yàn)樵谖覀兊膚eb容器中,會(huì)根據(jù)我們?cè)O(shè)置的MIME類型來識(shí)別當(dāng)前你訪問的是什么。
<%@ page contentType="text/html; charset=UTF-8"%>// 當(dāng)然也可以將這兩個(gè)寫在一起,空格區(qū)分<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
范例:包導(dǎo)入:<%@page import ="java.util.Date"%>// 導(dǎo)入具體的某個(gè)包<%@page import ="java.util.Date"%>// 動(dòng)態(tài)導(dǎo)入某個(gè)包及子包下面所有的類<%@page import ="java.util.*"%>// 同時(shí)導(dǎo)入多個(gè)包,逗號(hào)隔開<%@page import ="java.util.*,java.io.*,java.lang.reflect.*"%>
3、
jsp標(biāo)簽指令導(dǎo)入指令include,導(dǎo)入指令是將我們的多個(gè)頁(yè)面合并成一個(gè)頁(yè)面,如下圖:頁(yè)面導(dǎo)航欄為例
導(dǎo)入指令有靜態(tài)導(dǎo)入和動(dòng)態(tài)導(dǎo)入兩種方式。
范例:靜態(tài)導(dǎo)入:<%@include file="文件地址"%>但是靜態(tài)導(dǎo)入有一個(gè)問題,如下情況,我們?cè)趯?dǎo)入的頁(yè)面中定義相同的變量名稱。這個(gè)時(shí)候就會(huì)發(fā)生錯(cuò)誤。如下圖:
我們知道,jsp是需要經(jīng)過轉(zhuǎn)換成*.java的文件,然后編譯才可以執(zhí)行。那么我們的靜態(tài)導(dǎo)入是
先將我們的頁(yè)面合并在一起,再轉(zhuǎn)換編譯成*.class文件執(zhí)行,由于我們頁(yè)面上定義了兩個(gè)相同的變量名,那么在轉(zhuǎn)換時(shí)就會(huì)出現(xiàn)錯(cuò)誤。通過動(dòng)態(tài)導(dǎo)入即可解決此問題。
范例:動(dòng)態(tài)導(dǎo)入-不傳遞參數(shù)<jsp:include page="導(dǎo)入的文件"/>此時(shí)就解決了靜態(tài)導(dǎo)入變量名稱相同引發(fā)的錯(cuò)誤問題,這是因?yàn)閯?dòng)態(tài)導(dǎo)入是在導(dǎo)入之前,將要導(dǎo)入的頁(yè)面先進(jìn)行轉(zhuǎn)換編譯后,在合并在一起。
范例:動(dòng)態(tài)導(dǎo)入-傳第參數(shù)<jsp:include page="導(dǎo)入的文件"><jsp:param name="參數(shù)名稱,可以不傳參數(shù)" value="值"></jsp:param>......</jsp:include>范例:跳轉(zhuǎn)指令-不傳遞參數(shù) <jsp:forward page="跳轉(zhuǎn)地址"/>范例:跳轉(zhuǎn)指令-傳第參數(shù) <jsp:forward page="跳轉(zhuǎn)地址"><jsp:param name="參數(shù)名稱,可以不傳參數(shù)" value="值"></jsp:param></jsp:forward>