JSP原理解析(一)

本文介绍了JSP的基本原理,从浏览器发送HTTP请求开始,详细阐述了JSP如何被Web服务器转化为Servlet,再编译执行生成HTML响应的过程。通过分析JSP转换后的源码和字节码文件位置,帮助读者理解JSP的工作机制。
摘要由CSDN通过智能技术生成

JSP难点解析(一)

1.JSP 是Java Server Pages的缩写,可别误以为是java script page的缩写,它是一种动态网页开发技术。是java代码与HTML的结合。
写法为:<% 代码片段 %>
不过还有另外一种写法

<jsp:scriptlet>
   代码片段
</jsp:scriptlet>

第一种方法举例为:

当遇到这种表达式时:写法一
<% for (int i=1;i<=6;i++){
 out.print("<h"+i+">你笑起来真好看</h"+i+">");
 }%>

写法二:
<% for (int i=1;i<=6;i++){
%>
<h<%=i%>>你笑起来真好看</h<%=i%>>
  <% 
  }
  %>

那么上面代码执行完呈现的效果是怎样的呢!如下图所示

在这里插入图片描述
此时应该有所疑惑,为什么在jsp中写完,他会直接呈现效果呢,他的原理是什么?

该步骤表明了 Web 服务器是如何使用JSP来创建网页的:

1.首先你的浏览器发送一个 HTTP 请求给服务器。
2. Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。
3.JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。
4.JSP 引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。
5.Web 服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。
6.Web 服务器以静态 HTML 网页的形式将 HTTP response 返回到您的浏览器中。

最终,Web 浏览器处理 HTTP response 中动态产生的HTML网页,就好像在处理静态网页一样。
以上提及到的步骤可以用下图来表示:
在这里插入图片描述从index.jsp进行编译后,会形成index_jsp.java源码和index_jsp.class字节码两个文件,接下来继续刨根问底,那么我们怎么去查找这些源码呢?
(1)首先你将index.jsp文件部署到D:\tomcat\apache-tomcat-9.0.24-windows-x64\apache-tomcat-9.0.24\webapps\manager中
(2)部署完之后进行编译
(3)编译完之后到D:\tomcat\apache-tomcat-9.0.24-windows-x64\apache-tomcat-9.0.24\work\Catalina\localhost\ROOT\org\apache\jsp(root根目录下去查找你的源文件和字节码文件)如下图所示:
在这里插入图片描述
然后点击查看源码如下:它大致所有的java代码经过解析都会成这种状态。

org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${tomcatDocUrl}", java.lang.String.class, (javax.servlet.jsp.PageContext)_jspx_page_context, null));
      out.write("deployer-howto.html\">Deployer</a></li>\r\n");
      out.write("                        </ul>\r\n");
      out.write("                    </div>\r\n");
      out.write("                </div>\r\n");
      out.write("                <div class=\"col20\">\r\n");
      out.write("                    <div class=\"container\">\r\n");
      out.write("                        <h4>Other Documentation</h4>\r\n");
      out.write("                        <ul>\r\n");
      out.write("                            <li><a href=\"");
      out.write((java.lang.String) 

到了这里估计大家都懂了,jsp就是如此这般神奇,下面两幅图也会帮助你解析:

打开tomcat的lib文件里的jar包,查看即可。jsp的实现源于:

在这里插入图片描述
在这里插入图片描述
后续继续解析,希望对大家理解有帮助!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值