jsp编译原理
1. jsp中的<%=表达式%>和<%表达式%>有什么区别
区别只有如下一点:
<% %> 标识里面的是jsp代码。
<%=变量 %> 是 <% out.println(变量) %> 的简写方式。
jsp运行原理:
JSP的本质就是一个Servlet,JSP的运行之前会先被Tomcat服务器翻译为.java文件,然后在将.java文本编译为.class文件,而在访问jsp时,处理请求的就是那个翻译后的类。
<% %>:
<% %>叫做脚本片段,其中写的内容会翻译在Servlet的Service方法中,显然可以在Service方法中定义局部变量或者调用其他方法,但是不能在Service中再定义其他的方法,也就是可以在<%%>中定义局部变量或者调用方法,但不能定义方法。
在jsp页面可以有多个脚本片段,但是多个脚本片段之间要保证结构完整。
<%=%>:
称作jsp表达式,用于将已经声明的变量或者表达式输出到网页上面。
(1)jsp编译原理扩展阅读:
示例:
<body>
<%! int sum=1; %>
<% int sum=8; %>
<h3>----<% out.print(sum++); %></h3>
<h3>----<%= this.sum %></h3>
</body>
2. JSP运行原理什么
1、当用户访问一个JSP页面时,会向一个Servlet容器(Tomcat等)发出请求;
2、如果页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为class文件(test.class文件);这种过程(编译)会耗费时间
3、JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求;如果用户有多个请求,则容器会建立多个线程处理多个请求;
4、容器执行字节码文件(包括调用的servlet:formprocessor.java字节码),并将其结果返回到客户端(返回的最终方式是有servlet输出html格式的文件流)。
(2)jsp编译原理扩展阅读:
语言优点:
1、一次编写,到处运行。除了系统之外,代码不用做任何更改。
2、系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。
3、强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
4、多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
5、支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。