标签:jsp原理
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术在JSP出现之前,为了实现动态网页的效果,服务器端利用 Servlet 的输出流向客户端发送HTML标签以及HTML页面中的内容,这样导致美工不方便给html修改样式,也导致servlet非常臃肿。
为了弥补Servlet 的缺陷,SUN公司在Servlet 的基础上推出了JSP(Java Server Pages)技术作为解决方案。由动态(嵌入的Java代码与JSP动态标签)、静态(html)组成
jsp原理
web容器(Servlet引擎)接收到以.jsp为扩展名的URL的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。
如果这个JSP页面是第一次被访问或者这个页面被改动过时,服务器会把JSP 编译成 .java文件,当然,这个.java 就是一个servlet类,然后再把 .java 文件编译成.class 文件。因为编译会耗费一定时间,所以页面在第一次被访问或改动后被访问时会花费较长的访问时间
创建该类对象,最后由Servlet 容器调用它的service() 方法
第二次请求同一JSP时,直接调用service() 方法。
![](http://i2.51cto.com/images/blog/201802/28/7c890e3d2a0a544b897b580f11102e34.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
` Tomcat 把为JSP页面创建的Servlet源文件和class类文件放置在上图位置`
JSP的脚本元素
* <%! %> -- 不用,做全局变量出现的,翻译成全局变量
* <%= %> -- 用,代表输出内容,不能使用分号
* <% %> -- 用,编写语句(循环 判断),成局部变量
<table border="1">
<%
for(int i =0 ;i<3; i++){
%>
<tr>
<%
for(int j =0 ;j<3; j++){
%>
<td>1</td>
<%
}
%>
</tr>
<%
}
%>
</table>
上面的代码是用jsp的标签元素写得3行3列的表格
![](http://i2.51cto.com/images/blog/201802/28/a9ecb0b6e659da780448292772741860.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
标签:jsp原理
原文地址:http://blog.51cto.com/13579086/2073769