一、原理图:
二、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标签> ');的形式输出到浏览器。在jsp页面中编写的html排版标签都是以out.write('<html标签> ');的形式输出到浏览器,浏览器拿到html代码后才能够解析执行html代码。
为什么你可以直接使用out对象?
原因是out是jsp的九大内置对象之一;
四、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;