抓取jsp网页源代码(JSP在WEB容器中的变化过程中如何找到答案?)
优采云 发布时间: 2022-01-22 11:05抓取jsp网页源代码(JSP在WEB容器中的变化过程中如何找到答案?)
在开发Java Web的过程中,我们可能会有这样的疑问。当我们编写jsp页面时,我们可以使用请求、会话和应用程序对象,而无需引用或创建它们。使用浏览器访问JSP页面时,查看页面源码发现java代码消失了,是这个原因。
首先我们看下面的流程图,了解WEB容器中JSP的变化过程:我们上面的所有问题都可以在下面的第二步中找到。
第二步,将JSP文件转换为Servlet类文件,转换后的文件结构如下图所示(其中HttpJspBase是HttpServlet的子类)
主要的转换动作在方法_jspService()中实现
下面可以看到Servlet类的代码截图,里面插入了session、application等对象的初始化。可以看出,这些对象都是通过页面级对象pageContext获取的。
页面中的java代码在哪里?转换过程中,HTML页面元素的内容可以理解为通过out.write()直接输出到前端页面,直接去掉java代码(收录的内容)写入类中执行部分代码截图如下。
红框内的内容是JSP页面中获取项目路径的过程,在转换中直接去掉,放在类代码中,其余的可以理解为直接out.write()输出到前端页面。
到目前为止,我们已经解释了本文开头的问题。这些源代码内容可以在 WEB 容器中找到。以tomcat为例,转换后的文件存放在apache-tomcat-*\work\Catalina\[项目IP]\[项目名称]\org\apache\jsp。