91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSP HTTP服務器如何實現對JSP的支持

發布時間:2021-11-22 10:37:46 來源:億速云 閱讀:133 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關JSP HTTP服務器如何實現對JSP的支持,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

1. 設計思路

通過JSP HTTP服務器對本地的JSP源文件進行解釋,生成中間java源文件。繼而調用javac編譯工具將java源文件編譯成為class文件。JSP HTTP服務器對class文件中定義的類進行載入并運行。

2. 設計要點

(1)對JSP文件語法的定義
(2)將JSP文件轉換為java源文件
(3)編譯java源文件
(4)載入java class并執行類對象的實例對象

3. 設計實施

(1)制定JSP文件語法,并根據JSP語法形式將代碼解釋為java源文件考慮到JSP文件解釋工作的簡化,設計中主要考慮三種JSP語法形式,本設計中,對JSP文件中編譯語句塊的解釋處理代碼如下:

//Current line contain JSP compile block start flag   if(line.indexOf("<%@") >= 0)  {  //file .jsp contains compiled header   is_has_compiled_header = true;  //Those statements in same line.   if(line.indexOf("%>") >= 0) //JSP cimpile block end flag   {  int start = line.indexOf("<%@");  int end = line.indexOf("%>");  fout.println(line.substring(start + 3, end) );  }  else //Those statements no in same line.   {  while(true)  {  line = fin.readLine();  if(line == null) //The compiled header is broken   {  return (false);  }  if(line.equals("%>") == true) //JSP compiled block end flag   {  break;  }  else  {  fout.println(line); //Output the middle statements of compiled header   }  }//while(true)   }  }//if(line.indexOf("<%@") >= 0)

以上處理代碼是將JSP文件中編譯語句塊解釋成java源文件。如果編譯語句存在于一行之中,則將語句開始標志和結束標志中間的編譯語句取出形成java代碼。如果編譯語句塊存在于多行之中,則將語句開始標志行和結束標志行之間的編譯語句行取出形成java代碼。 本設計中,對JSP表達式語句解釋處理代碼如下:

//Current line contain JSP expression (mark "<%=" and "%>" must be in same line)   if(line.indexOf("<%=") >= 0)  {  //Get start flag position   int start = line.indexOf("<%=");  //Get end flag position   int end = line.indexOf("%>");  //Get frontal part of JSP expression block   String pre = line.substring(0, start);  //Get expression from line   String exp = line.substring(start + 3, end);  //Get back part of JSP expression block   String back = line.substring(end + 2);  //Replace character " of frontal part and back part with character '   prepre = pre.replace('\"', '\'');  backback = back.replace('\"', '\'');  //Output the new line (java statement)   fout.println("outln(\"" + pre + "\" + " + exp + " + \"" + back + "\");");  }

以上代碼中,首先是將JSP表達式所在的行按照表達式前部分,表達式和表達式后部分提取出來,經過符號替換之后再合成java語句。本設計中,對JSP語句塊解析處理如下:

//As to JSP statements block, mark "<%" and "%>" must be in sigle line   while(true)  {  //Read next line   line = fin.readLine();  if(line == null || line.equals("%>") == true) //JSP statements block end flag is "%>"   {  break;  }  fout.println(line);  }

以上JSP HTTP服務器代碼中,將語句塊開始標志行(<%)和結束標志行(%>)之間的編譯語句行取出形成java代碼。

關于“JSP HTTP服務器如何實現對JSP的支持”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遂平县| 峨眉山市| 休宁县| 西乌珠穆沁旗| 台前县| 阿瓦提县| 忻州市| 吴江市| 扎兰屯市| 陇南市| 道孚县| 泰和县| 东乡| 闽清县| 定日县| 灵山县| 错那县| 阿城市| 龙海市| 澄迈县| 四子王旗| 建瓯市| 泰安市| 安远县| 莲花县| 乐平市| 平乐县| 深泽县| 蒲城县| 扎囊县| 安福县| 台湾省| 贵州省| 玉山县| 资讯| 松江区| 会东县| 广东省| 乌拉特中旗| 托克托县| 永仁县|