jsp运行原理分析

一、原理图:

二、jsp访问过程

    如果是第一次访问jsp文件,被服务器翻译成一个对应的Java文件(sevlet),然后,再被编译成.class文件并加载到内存中。如果是第二次访问jsp,那就可以直接调用内存中的jsp实例,所以之后的访问jsp速度会比之前快一些。

三、jsp页面中的HTML排版标签是如何被发送到客户端的?

分享链接:http://www.360doc.com/content/16/0708/06/34910487_573919463.shtml

    在jsp中编写的java代码和html代码都会被翻译到_jspService方法中去,在jsp中编写的java代码会原封不动地翻译成java代码,如<%out.print('Hello Jsp');%>直接翻译成out.print('Hello Jsp');,而HTML代码则会翻译成使用out.write('<html标签>\r\n');的形式输出到浏览器。在jsp页面中编写的html排版标签都是以out.write('<html标签>\r\n');的形式输出到浏览器,浏览器拿到html代码后才能够解析执行html代码。

为什么你可以直接使用out对象?

  原因是outjsp的九大内置对象之一;

 

 

四、Jsp页面中的java代码服务器是如何执行的?

    Jsp = HTML + java代码 + js + css + jsp标签

 

<body>

12345678987654321;

<%

//在这之间,可以写我们的java代码,就和我们在java文件中写java代码是一样的;

out.println("hello,world" + "当前日期=" + new java.util.Date());

%>

<%

int i = 5;

int j = i + 10;

%>

<h1>测试</h1>

<%

out.print("j = " + j + ";");

%>

</body>

注意:在这个代码段中,虽然j在两个不同的代码段中使用,但是,实际上在sevlet中,这两个代码段是在同一个方法中的,所以下面可以使用上面j的值,他们是同一个;

1、就是有多个<% %>其实相当于一个大的<% %>;

2、<% %>中定义的变量,会成为service函数的局部变量;

五、Web服务器在调试jsp时,会提供jsp一些什么java对象?

Out对象就相当于servlet中的printwrite

posted @ 2017-07-14 14:16  维尼少少  阅读(1205)  评论(0编辑  收藏  举报