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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

web.xml、JSP原理、指令

發(fā)布時(shí)間:2025/3/20 javascript 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web.xml、JSP原理、指令 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

web應(yīng)用和web.xml

  • JSP(java server page)本質(zhì)是servlet,因?yàn)镴SP最終要編譯成servlet才能運(yùn)行。
  • Tomcat的webapps路徑下的web項(xiàng)目中的WEB-INF路徑下的classes文件夾用于保存*.class文件,lib文件夾用于保存打包后的JAR文件。
  • 布置到Tomcat中的項(xiàng)目才能通過(guò)鏈接形式(http)訪問(wèn)到。
  • 從servlet3.0開(kāi)始,WEB-INF路徑下的web.xml文件不再是必須的,但通常建議保留。
  • 客戶端瀏覽器無(wú)法訪問(wèn)到WEB-INF路徑下的任何內(nèi)容。
  • 在servlet3.0規(guī)范中,web.xml文件的根<web-app.../>新增了metadata-complete屬性,該屬性為true時(shí),則該web應(yīng)用將不會(huì)加載注解配置的web組件(如servlet、Filter、Listener等)。
  • Tomcat的系統(tǒng)web.xml文件放在Tomcat的conf路徑下。
  • JSP原理

  • JSP頁(yè)面的內(nèi)容由靜態(tài)部分(html標(biāo)簽)和動(dòng)態(tài)部分(JSP腳本)組成。
  • Tomcat會(huì)根據(jù)JSP頁(yè)面生成對(duì)應(yīng)的servlet的java文件和class文件。如:名為test.jsp的JSP頁(yè)面生成的是test_jsp.java文件和test_jsp.class文件。JSP頁(yè)面中的所有內(nèi)容都由test_jsp.java文件的頁(yè)面輸出流生成。
  • jsp執(zhí)行過(guò)程:.jsp頁(yè)面文件—>翻譯階段生成.java文件—>編譯環(huán)節(jié)生成.class文件。 與java相比,jsp多了一個(gè)翻譯成 .java文件的過(guò)程。
  • JSP文件必須在JSP服務(wù)器內(nèi)運(yùn)行,且必須生成servlet才能運(yùn)行。
  • 每個(gè)JSP頁(yè)面的第1個(gè)訪問(wèn)者的速度很慢,因?yàn)橐却齁SP編譯成servlet。
  • JSP頁(yè)面輸送到客戶端的標(biāo)簽HTML頁(yè)面,所以可以直接訪問(wèn)。
  • JSP基本語(yǔ)法

    我用表格來(lái)對(duì)比分析,便于記憶:

    名稱語(yǔ)法
    HTML注釋<!-- 被注釋內(nèi)容 -->
    JSP注釋<%-- 被注釋內(nèi)容 -->
    JSP腳本<% 腳本內(nèi)容 %>也可聲明變量,但聲明的是局部變量
    JSP聲時(shí)<%! 聲明變量 %>
    JSP輸出<%=表達(dá)式%>表達(dá)式中不能有分號(hào),等價(jià)于<%out.print(“內(nèi)容”)%>

    JSP的3個(gè)編譯指令(page、include、taglib)

  • 編譯指令 是 帶有默認(rèn)值的通知JSP引擎的處理消息。在JSP編譯成servlet時(shí)起作用。
  • 編譯指令使用語(yǔ)法:<%@ 指令名 屬性名=“屬性值”%>
  • page編譯指令 用于定義當(dāng)前JSP頁(yè)面的一些屬性。
    例:
  • <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

    屬性表:

    屬性名說(shuō)明
    language=”java”說(shuō)明當(dāng)前jsp所支持的腳本語(yǔ)言種類。這里支持java
    extends指定JSP頁(yè)面編譯所產(chǎn)生的java類所繼承的父類,或?qū)崿F(xiàn)的接口
    import用來(lái)導(dǎo)包,有些包是默認(rèn)導(dǎo)進(jìn)來(lái)的,如java.lang.*
    pageEncoding設(shè)置jsp頁(yè)面的編碼格式 (同時(shí)要注意的jsp文件右鍵屬性里的設(shè)置是不是已經(jīng)改utf-8的格式)
    ContentType設(shè)置瀏覽器查看這個(gè)頁(yè)面時(shí)使用的編碼格式
    session=”true”說(shuō)明當(dāng)前頁(yè)面是否使用session
    isELIgnored當(dāng)前頁(yè)面是否使用EL表達(dá)式
    buffer頁(yè)面默認(rèn)的緩沖區(qū)大小 默認(rèn) 8kb
    autoFlush是否自動(dòng)刷新
    errorPage指定的錯(cuò)誤頁(yè)面
    isErrorPage當(dāng)前頁(yè)是否錯(cuò)誤頁(yè)面
    info設(shè)置該JSP程序的信息,該信息在JSP頁(yè)面可直接通過(guò)getServletInfo()獲得

    4. include編譯指令:用于導(dǎo)入另一個(gè)JSP頁(yè)面代碼,也就靜態(tài)導(dǎo)入。 如:<%@include file="jspDemo1.jsp" %>
    5. taglib編譯指令:用于定義和訪問(wèn)自定義標(biāo)簽。
    如:<%@taglib file="jspUrl" %>

    JSP的7個(gè)動(dòng)作指令

    動(dòng)作指令是JSP運(yùn)行時(shí)的動(dòng)作,可用JSP腳 本替換。

    include

    <jsp:include page="jspDemo1.jsp"></jsp:include> <!-- 動(dòng)態(tài)導(dǎo)入其它jsp的運(yùn)行結(jié)果-->

    forward
    用于頁(yè)面跳轉(zhuǎn),仍是一次請(qǐng)求,轉(zhuǎn)發(fā)時(shí)請(qǐng)求的參數(shù)、屬性都不會(huì)變。

    <jsp:forward page="要跳轉(zhuǎn)到的頁(yè)面路徑"><jsp:param value="值" name="key"> </jsp:forward> <!-- 跳轉(zhuǎn)到另一頁(yè)面后,用key接收value里的值,也用<%request.getParameter("key")%>接收 -->

    param
    用于傳遞參數(shù),可與forword、include、plugin動(dòng)作指令結(jié)合使用,如上面代碼。

    <jsp:param name="key" value="val">

    useBean

    <jsp:useBean id="u" class="com.zrgk.model.Users" Scope="page"> </jsp:useBean>

    用于在頁(yè)面初始化一個(gè)Java實(shí)例,相當(dāng)于:Users u=new Users();

    id值:別名;
    class的值:是要使用的javaBean類所在地址路徑;
    Scope:作用范圍,page說(shuō)明只能在當(dāng)前頁(yè)使用

    setProperty
    用于給實(shí)例屬性賦值,相當(dāng)于:u.setUserName(“筷子兄弟”);

    <jsp:setProperty property="username" name="u" value="筷子兄弟"/>

    property 的值是javabean的屬性名,
    name的值是實(shí)例的別名,
    value的值是給屬性賦的值

    getProperty

    <jsp:getProperty property="username" name="u"/>

    獲取某個(gè)屬性的值,相當(dāng)于:u.getUserName();

    頁(yè)面的跳轉(zhuǎn)與刷新

    1.進(jìn)入頁(yè)面3秒后,自動(dòng)跳轉(zhuǎn)到j(luò)spDemol1.jsp頁(yè)面 :

    <meta http-equiv="Refresh" content="3"; url=jspDemol1.jsp">

    Refresh:說(shuō)明是要跳轉(zhuǎn); content的值是等待時(shí)間(秒); url的值:跳轉(zhuǎn)地址

    2.隔3秒鐘刷新當(dāng)前頁(yè)面:

    <meta http-equiv="refresh" content="3">

    靜態(tài)導(dǎo)入與動(dòng)態(tài)導(dǎo)入的區(qū)別

  • 靜態(tài)導(dǎo)入導(dǎo)的是另一個(gè)頁(yè)面的代碼,最終兩個(gè)頁(yè)面形成一個(gè)頁(yè)面,從頁(yè)只生成一個(gè)Servlet
  • 動(dòng)態(tài)導(dǎo)入導(dǎo)的是另一個(gè)頁(yè)面執(zhí)行后的結(jié)果,所以兩個(gè)頁(yè)面都有自己的servlet
  • 靜態(tài)導(dǎo)入時(shí),被導(dǎo)頁(yè)面的編譯指令會(huì)起作用,所以,如果兩個(gè)頁(yè)面編譯指令沖突會(huì)出錯(cuò)
  • 動(dòng)態(tài)導(dǎo)入可傳參數(shù)
  • 總結(jié)

    以上是生活随笔為你收集整理的web.xml、JSP原理、指令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。