亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

jsp用法和代碼例子,和解析跳轉的過程

2019-11-14 15:30:15
字體:
來源:轉載
供稿:網友


jsp :

     生命周期 :
            1 先執行當前類的構造方法
            2 再執行init()方法
            3 執行service()/doGet()方法
            4 關閉的時候執行destroy()方法

   jsp 是javaServletPage的縮寫
   
   jsp 的本質,是一個Servlet,是個特殊的java文件
   Servlet : 平常的.java類,繼承于HttpServlet類,且,必須覆寫它的service()或doGet()方法
    
   jsp 是在html中寫java語句

   jsp 在tomcat運行時的解析過程 :
    
        **.jsp ---> tomcat 解析掉**.jsp中的<% %>,<%@ %>,<%= %>,<%! %>,并生成java(servlet)文件 --- > **.java ---> javac編譯,生成**.class ---> **.class --->加載到jvm虛擬機,解析出一個虛擬的html表---->瀏覽器顯示虛擬的html表--->當我們提交的時候,是在瀏覽器去找的,加載到jvm虛擬機里面的**.class(servlet文件)--->再執行操作

四種形式 :
        <% %> , <%! %> , <%@ %> , <%= %>
    
    1 <% %> : //里面可以寫任意Java代碼  就是doGet()方法 或Service()方法(一樣這兩個方法) (java代碼要加";"分號,因為是方法體,該怎么寫還怎么寫)   
        里面的內容就是在寫doGet()方法的方法體
        int accessCount=0;//就是局部變量

    2 <%! %> : //類構成元素
        // 這里聲明的變量是成員變量   
        // 聲明的方法是成員方法
        // 相當于servlet類里面的類構成元素
        // 成員變量 , 多個客戶端訪問同一份   每個線程都有一個成員變量的緩存  然后這個緩存 會定期和主線程同步
        // 所以說  盡量不要使用成員變量!!!!
     int accessCount=0;//成員變量

    3 <%@ %> : //用來導包和設置編碼格式
            如 :
                <%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
    
    4 <%= %> : //用來直接輸出,就是out.PRintln();
        里面的內容就是out.println("內容")要輸出內容的字符串,(所以不用加分號---";")
        <%= request.getParameter("name")%>
        ↓↓↓↓↓↓
        <% out.println(   request.getParameter("name")   ); %>


Servlet :    

    Servlet 是 在java中寫html語句

include_file : //靜態包含

        靜態包含 :  jsp編譯器編譯的時候,已經包含好了相應的文件 并且只生成一個java(servlet)文件 -- javac 同一個class文件 在jvm運行的時候 他兩個之間就不能傳參了,他們使用同一個request,reponse(相當于把兩個文件合并為一個文件)

    <%@ include file="文件名.jsp"%>;//在哪里靜態包含,就把指定文件合并到哪里(位置)

errorPage : //網頁錯誤/跳轉文件/跳轉網頁

    錯誤網頁 : 當當前文件出錯的時候,跳轉到指定文件中,但是指定文件的設置(編碼...),必須和當前文件一致,而且必須指明,那就是指定文件
    如 : <%@ page errorPage="文件.jsp"%>//錯誤網頁
    
    被包含文件(被指定文件) : <%@ page isErrorPage="true"%> //指明,我就是指定文件(要跳轉到的文件)IUserService

include_page : //動態加載
    
        注意: 1 jsp標簽需要自己閉合
              2 jsp:include 是動態加載! 在jsp編譯的時候 加載頁面和被加載頁面 會被解析成兩個java(servlet)文件!
              3 javac 編譯器會編譯兩次  生成兩個class文件
                   然后在jvm虛擬機中運行的過程中,這個時候包含甲文件才回去調用乙class文件
                    這就是動態加載
              4 他們不是同一個request對象了!!!!!!!
              5 肯定需要flush
              6 傳值問題

              如 :
        <jsp:include page="_02_date.jsp" flush="true" />//動態加載
        <jsp:param value="<%=value1 %>" name="v1"/>//傳參

sendRedirect :
    
    跳轉
    //使用答應(response)調用的,所以就已經出了jvm虛擬機,再過去指定頁面 地址欄會改變
         不會阻止下面的運行
            就相當于在生成的那個java文件的doget()方法里面寫了
                response.sendRedirect("指定文件.jsp");//使用答應(response)調用的,所以就已經出了jvm虛擬機,再過去指定頁面
            因為他是在瀏覽器周轉了一下  所以  瀏覽器會顯示第二個頁面的 地址
            同樣也說明了 他們肯定不是同一個對象
            他們是不同的request對象

forward :
    
    跳轉
    //使用請求(request)調用的,所以在jvm虛擬機里面,直接把指定頁面拿過來,使用,地址欄不會改變,是動態加載概念
        <jsp:forward/>  
            會阻止下面的運行
            相當于在doget方法里面寫了:
                this.getServletConfig().getServletContext()----這里是通過當前servlet
                獲得了servlet配置屬性 然后獲得servlet上下文
                    .getRequestDispatcher(URL)-- 調用 分發器
                    傳遞到指定的URL路徑去    forward方法才是真正的跳轉
                    攜帶了當前的request  response對象
                    .forward(request, response);
                雖然他們的內存地址不一樣  但是他們的對象里面的屬性是相同的

                他們兩個頁面之間的周轉沒有經過瀏覽器  一直在虛擬機里面
                所以說他是比較快的
                
                用法<forward>
                    <jsp:param 鍵值對>
                    這里相當于在原來的request對象基礎上添加了鍵值對
                    </jsp:forward>  --注意沒有空格  

useBean :

        <jsp:useBean id="變量" class="文件名"></jsp:useBean>
        //這里是獲得Bean的對象的引用  就是new bean.CounterBean
    <jsp:useBean id="cd" class="CounterBean"></jsp:useBean>
    //實例化bean文件夾里面的CounterBean類文件,把對象引用賦值給 變量 cd

 page :
    
    //范圍 page 是當前頁面有效
    <jsp:useBean id="變量" scope="page" class"文件名" />
    <jsp:useBean id="conuterBean" scope="page" class"bean.CounterBean" />
    
 request :

    //范圍 當前request對象有效
    <jsp:useBean id="變量" scope="request" class"文件名" />
    <jsp:useBean id="counterBean" scope="request" class="bean.CounterBean" />

 application :

    //范圍 所有的訪問,都能訪問
     <jsp:useBean id="變量" scope="application" class"文件名" />
    <jsp:useBean id="counterBean" scope="application" class="bean.CounterBean" />

 session :

    //范圍 當前瀏覽器
     <jsp:useBean id="變量" scope="session" class"文件名" />
     <jsp:useBean id="counterBean" scope="session" class="bean.CounterBean" />

setProperty :

    <jsp:setProperty name="變量(以獲取的對象引用)" property="屬性(成員變量)" value="值(要設置的值)" />
    //設置值
    <jsp:setProperty name="cd" property="count" value="23" />
    //給cd這個引用里面的count變量賦值為23  底層調用的setCount()方法(自己寫的),用于讓外界設置私有的成員屬性的值

getProperty :

    //獲得值
    <jsp:getProperty name="變量(以獲取的對象引用)" property="屬性(成員變量)" />
    <jsp:getProperty name="cd" property="count" />
    ///獲取cd這個引用里面的count變量的值, 底層調用的是getCount()方法(自己寫的),用于讓外界獲取私有的成員屬性的值

this_getServletConfig_getServletContext_getRequestDispatcher :

        this.getServletConfig().getServletContext()
                    .getRequestDispatcher("/_12_Servlet_Jsp/_01_ServletUseJsp.jsp")
                    .forward(request, response);
                    //當前類對象(this),調用getServletConfig()先獲得配置,在調用getServletContext()方法獲得上下文,在調用getRequestDispatcher()分發器,分發到指定文件中,在把當前的request和response傳入
 getServletConfig :

    this.getServletConfig();//獲得配置屬性

 getServletContext : 

    this.getServletConfig().getServletContext();//獲得上下文

 getRequestDispatcher :  

    this.getServletConfig().getServletContext()
                    .getRequestDispatcher("/_12_Servlet_Jsp/_01_ServletUseJsp.jsp")
                    .forward(request, response);//分發器,分發到指定位置;


上一篇:jsp基礎大全

下一篇:第一章JSP基礎語法

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91色在线视频| 亚洲欧美在线磁力| 26uuu另类亚洲欧美日本一| 亚洲伊人第一页| 欧美国产视频一区二区| 亚洲的天堂在线中文字幕| 欧美二区乱c黑人| 黄色一区二区三区| 91大神在线播放精品| 国产一区二区日韩精品欧美精品| 国内精品模特av私拍在线观看| 成人激情在线观看| 精品magnet| 国产成人一区二区三区电影| 亚洲第一福利在线观看| 超碰91人人草人人干| 欧美xxxx综合视频| 国产在线拍偷自揄拍精品| 亚洲国产欧美一区二区丝袜黑人| 日韩高清电影免费观看完整| 亚洲香蕉av在线一区二区三区| 国产精品一香蕉国产线看观看| 亚洲男人av在线| 久久久精品久久| 日韩在线观看免费av| 日韩一区二区久久久| 精品视频www| 在线观看日韩www视频免费| 欧美成人亚洲成人日韩成人| 日韩在线视频一区| 欧美电影第一页| 91精品久久久久久久久| 久久中文精品视频| 国产精品成人观看视频国产奇米| 欧美高清视频在线| 狠狠久久亚洲欧美专区| 久久久久久久久中文字幕| 国产亚洲成精品久久| 亚洲色图18p| 日韩精品免费综合视频在线播放| 久久国产精品99国产精| 日韩精品视频免费在线观看| 国产69久久精品成人看| 久久色精品视频| 91在线免费视频| 久久久在线免费观看| 日韩精品中文字幕在线| 国产v综合ⅴ日韩v欧美大片| 欧美丝袜美女中出在线| 国产福利成人在线| 欧美综合在线第二页| xvideos亚洲| 欧美理论电影在线观看| 国产欧美一区二区白浆黑人| 色哟哟入口国产精品| 国产精品自产拍在线观| 国产精品综合不卡av| 亚洲精品成人久久| 欧美一区在线直播| 亚洲一区二区精品| 久久免费国产精品1| 91成人免费观看网站| 亚洲性生活视频在线观看| 91sa在线看| 亚洲国产精品成人va在线观看| 日韩中文字幕免费| 亚洲性视频网址| 国产精品私拍pans大尺度在线| 全球成人中文在线| 久久在线免费视频| 精品国模在线视频| 欧美激情一区二区三区久久久| 欧美日韩国产一区中文午夜| 成人精品久久一区二区三区| 日韩在线中文字| 亚洲有声小说3d| 91产国在线观看动作片喷水| 狠狠综合久久av一区二区小说| 欧美亚洲日本黄色| 亚洲乱码国产乱码精品精| 午夜精品福利视频| 精品国产福利视频| 欧美激情欧美狂野欧美精品| 欧美成aaa人片在线观看蜜臀| 精品无人区太爽高潮在线播放| 在线观看成人黄色| 欧美一区二区三区……| 亚洲人成欧美中文字幕| 久久久久久久久久久久久久久久久久av| 亚洲一区二区少妇| 国内精品视频一区| 国产精品一区二区女厕厕| 69影院欧美专区视频| 欧美精品在线观看91| 亚洲视频欧洲视频| 亚洲精品国产精品国自产在线| 色妞色视频一区二区三区四区| 77777少妇光屁股久久一区| 黑人精品xxx一区| 91视频免费在线| 中文字幕亚洲字幕| 欧美成人精品xxx| 国产精品自产拍高潮在线观看| 国产亚洲视频在线观看| 国产成人精品在线视频| 97在线观看视频| 日韩精品在线观看一区| 91理论片午午论夜理片久久| 日本中文字幕成人| 国产精品久久久久77777| 亚洲久久久久久久久久| 欧美又大又硬又粗bbbbb| …久久精品99久久香蕉国产| 91手机视频在线观看| 欧美日韩精品在线| 欧美www在线| 国产欧美在线观看| 日韩精品在线视频美女| 久久久久久久国产精品视频| 欧美裸体xxxx极品少妇软件| 亚洲人成网7777777国产| 亚洲精品免费在线视频| 国内精品久久久久伊人av| 国产做受69高潮| 欧美性猛交xxxxx免费看| 亚洲白虎美女被爆操| 国产做受69高潮| 久久综合伊人77777蜜臀| 欧美黑人性视频| 日韩视频在线观看免费| 中文字幕在线看视频国产欧美| 日本道色综合久久影院| 精品亚洲一区二区三区在线观看| 日韩有码视频在线| 91精品国产九九九久久久亚洲| 欧美高清视频一区二区| 久久久久久久久电影| 这里只有精品视频| 91香蕉嫩草神马影院在线观看| 久久亚洲精品国产亚洲老地址| 高潮白浆女日韩av免费看| 日韩精品极品视频免费观看| 成人免费午夜电影| 欧美高清第一页| 日韩色av导航| 欧美精品videos性欧美| 国产精品福利在线观看网址| 亚洲美女在线视频| 久久影院中文字幕| 国产大片精品免费永久看nba| 欧美日韩亚洲天堂| 中文字幕亚洲一区二区三区| 国产精品精品国产| 欧美日韩成人免费| 国产精品一区二区三| 亚洲免费成人av电影| 国精产品一区一区三区有限在线| 日韩国产高清污视频在线观看| 欧美大秀在线观看| 中文字幕亚洲欧美日韩在线不卡| 国产精品老女人视频| 一区二区三区精品99久久| xxxxxxxxx欧美| 亚洲综合一区二区不卡|