温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JSP HTTP服务器如何实现对JSP的支持

发布时间:2021-11-22 10:37:46 来源:亿速云 阅读:118 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关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