JSP运行过程
当web容器JSP页面有访问请求时,将访问请求转发到JSP引擎进行处理。
Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。
实例解释
我们用一个实例来说明上面的JSP运行过程:
1. Hello.jsp文件内容如下:
Hello!
当前时间:${currentTime}
2. servlet代码
下面代码通过注解来处理/hello的请求, 并在代码中将请求转发到上述.
@WebServlet
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
DateFormat dateFormat = new SimpleDateFormat;
String currentTime = da(new Date);
req.setAttribute(,currentTime);
req.ge(req,resp);
}
}
3. 运行服务器并访问
这时用everything搜索本机上的文件, 可以找到如下内容的文件:
package org.a
public final class hello_jsp extends org.a
implements org.a,
org.a {
...
// 这里是最主要的方法, 我们在jsp文件里的内容, 都在这里通过out.write写入到输出中.
public void _jspService(final javax. request, final javax. response)
throws java.io.IOException, javax. {
try {
re
pageContext = _j(this, request, response,
null, true, 8192, true)
_jspx_page_context = pageContext
application =
config =
session =
out =
_jspx_out = out
out.write
out.write
out.write
out.write
out.write
out.write
out.write
out.write
out.write
out.write(当前时间:")
out.write) org.a(, java.lang.S, )_jspx_page_context, null))
out.write(n")
out.write
out.write
out.write
} catch t) {
...
} finally {
_j(_jspx_page_context)
}
}
}
这里可以看出, 当我们访问需要jsp文件时, tomcat的Jasper组件会将jsp文件翻译成java文件, 然后再编译. 继续用everything搜索hello_jsp, 可以发现还有一个文件叫, 侧面印证了我们的论断.
图形解释
我们先用图形大概解释一下上述流程:
简洁易懂. 接下来我们在思考每一步的具体实现, 看下图:
1.客户端请求jsp文件, web服务器(tomcat等)根据jsp文件生成java文件.
2.java文件生成对应的class字节码文件,字节码文件是可以通过classloader加载进虚拟机的.
3.web容器加载class字节码文件.
4.web容器通过反射等手段建立hello_jsp实例.
5.调用对应的jspInit来进行实例初始化.
6.调用_jspservice, 响应用户请求.
7.调用jspDestroy销毁jsp_hello实例.
1.文章《如何打开jsp文件 ipad怎么打开jsp文件》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《如何打开jsp文件 ipad怎么打开jsp文件》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好