成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析JSP頁面翻譯的原理

開發(fā) 后端
本文介紹JSP頁面翻譯的原理,了解這些原理對于學習JSP來說,是非常重要的,能大大的提高學習的效率。

眾所周知,每一個JSP頁面都會被Web容器編譯成一個Java類,供Web容器調(diào)用,并且生成HTML葉面回饋給用戶。而了解其中的變異方法和規(guī)則,對我們學習JSP是非常有好處的,可以說學習好了這個編譯原理,就已經(jīng)學習好了大部分的JSP知識,剩下的工作就只剩下熟記一些tablib和反復應用以使自己更加熟練而已了。

先來看一下JSP頁面所對應的Class的基本結(jié)構(gòu)。每一個JSP頁面都會被編譯成成如下的格式樣子,先給一個大致的印象,詳細的說明在后面

這里面最重要的函數(shù)就是pageservice,web容器在編譯好一個JSP類以后,就申請這個類的對象,并且直接調(diào)用pageservice來獲得Response,最后返回給客戶。作為細節(jié),我們可以總結(jié)如下:

1.所有的JSP頁面翻譯出來的class,都從HttpJspBase繼承,并且命名為PageName$jsp。

2.在第一次調(diào)用pageservice函數(shù)的時候,該class會進行一次初始化,而這個初始化函數(shù)是_jspx_init,如果我們想,我們還可以自定義這個函數(shù),來實現(xiàn)JSP頁面的初始化。

3.<% %> 這樣的代碼被轉(zhuǎn)換成什么了?
這樣的代碼被直接轉(zhuǎn)成Java代碼放到pageservice函數(shù)里面。

4.<%! %> 這樣的代碼被轉(zhuǎn)換成什么了?
這樣的代碼被翻譯成成員函數(shù)和成員變量,也就是說,這些聲明在JSP的生命周期內(nèi)都是存在的。

5.HTML代碼呢?
html代碼直接被寫到PrintWriter里面回饋給用戶,非常的直接。

6.為什么JSP頁面翻譯有那么多省寫方式,比如說session , out , page , context之類。
這都是在pageservice里面定義的臨時變量,具體的初始化可以參看上面的例子代碼,每一次調(diào)用JSP頁面,這些變量都會被重新初始化一次。當然我們也可以方便的聲明自己的變量。

7.省寫方式<%= object.doSomething()%> 這么理解?
這種省寫方式調(diào)用doSomething所得到的Object的toString(),然后直接寫到out里面。相當于:
out.print(object.doSomethiing().toString())

8.JavaBean 里面的scope定義了作用域范圍,這個范圍在這里的意思是?
這是Bean對象句柄保存的地方的意思。我們可以想象一下,一個page范圍的Bean只是pageservice里面的一個局部變量,當一次處理結(jié)束后,這個變量就會被Java虛擬機回收。而session變量。而request級別的Bean就應該是JSP頁面的成員變量。而session和 application則不能在JSP頁面class里面保存,而應該保存在JSP頁面的調(diào)用對象里面。

9.關于<%@ page %>命令,這個就太簡單了,只是一個一個的對應為response.setContentType()的語句而已。

10.關于JSP頁面翻譯轉(zhuǎn)向問題。這個語句被翻譯為getServletContext().getRequestDispatcher("/List.jsp").forward(req, res);語句。

11.<%@ include file="included.jsp" %> 遇到這個語句,JSP翻譯器就會把這個文件的代碼和現(xiàn)在文件的代碼混合然后一起編譯,生成JSP類。這個方法很好,可以讓我們統(tǒng)一文檔的樣式,比如說吧 header寫成一個文件,,而把footer也寫成一個JSP ,并且在index.html里面把這兩個文件包含近來,這樣,不管Content怎么變,上下樣式都不會變,有利于樣式的統(tǒng)一。

以上是JSP頁面翻譯過程的簡單探討,更加詳細的細節(jié)可以參考tomcat的源代碼,了解這些原理對于學習JSP來說,是非常重要的,能大大的提高學習的效率。

【編輯推薦】

  1. JSP開發(fā)環(huán)境的搭建
  2. 簡單介紹JSP環(huán)境配置
  3. JSP、ASP和PHP安全編程
  4. 整合Apache中JSP和PHP
  5. JSP和Servlet應用的安全問題
責任編輯:佚名 來源: IT168
相關推薦

2009-07-14 15:42:38

MyEclipse開發(fā)

2009-07-03 17:41:47

JavaBean Se

2009-07-14 16:25:04

MyEclipse開發(fā)

2009-07-14 16:07:46

MyEclipse開發(fā)

2009-07-14 10:47:47

MyEclipse J

2009-06-24 09:12:26

ASP.NET頁面請求

2009-07-06 13:52:56

編寫JSP Tag

2009-06-29 17:39:31

JSP設計模式

2009-07-01 18:20:29

JSP的優(yōu)勢

2009-07-02 11:34:42

JSP指令JSP開發(fā)

2009-07-02 10:51:21

腳本編程JSP開發(fā)

2009-07-06 17:11:38

Servlet文件上傳

2009-03-17 16:18:51

JspActionStruts

2009-07-03 09:08:23

JSP標記學習筆記

2009-07-03 09:08:23

JSP標記學習筆記

2009-07-06 14:05:11

JSP服務器

2011-04-13 15:01:39

2020-08-05 08:21:41

Webpack

2020-12-09 05:24:28

SQL翻譯器程序

2009-07-06 12:32:26

JSP引擎
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本一区二区三区在线观看 | 欧美性受xxx| 国产精品18hdxxxⅹ在线 | 91黄色片免费看 | 蜜桃传媒一区二区 | 精品中文在线 | 成人小视频在线观看 | 欧美精品91 | 成人福利在线观看 | 狠狠爱综合 | 性福视频在线观看 | 久久精品亚洲欧美日韩精品中文字幕 | 欧美激情精品久久久久久 | 国产精品三级 | 精品一区二区三区免费视频 | 日韩福利在线 | 伊人超碰 | 日韩成人免费 | 古典武侠第一页久久777 | 成人高清网站 | 国产乱码精品一区二区三区五月婷 | 日本在线黄色 | 精品无码久久久久久国产 | 伊人超碰 | 不卡在线视频 | 亚洲国产精品日韩av不卡在线 | 九九亚洲 | 亚洲精品国产综合区久久久久久久 | 日韩有码一区 | 国产99久久精品一区二区永久免费 | 久久夜视频| 国产一二三视频在线观看 | 一区二区三区视频在线免费观看 | 国产精品视频综合 | 日韩视频三区 | 国产高清在线精品一区二区三区 | 免费观看一级毛片视频 | 黄色大全免费看 | 毛片视频观看 | 精品国产一区二区在线 | 精品九九九 |