一:jsp
是java server page java 服务器页面。
jsp本质上是一个servlet,在html上嵌套java代码。
运行在服务器端,处理请求,生成动态内容。
对应的java文件和class文件是在tomcat的work目录中,在访问jsp的时候,会在work目录生成对应的java代码和class文件。
后缀名:.jsp
执行流程:
1) 浏览器发送请求,请求jsp页面。
2)服务端接收请求,会根据请求,查找对应的jsp文件。
这个是由tomcat的servlet来完成。
1 <servlet> 2 <servlet-name>jsp</servlet-name> 3 <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> 4 <init-param> 5 <param-name>fork</param-name> 6 <param-value>false</param-value> 7 </init-param> 8 <init-param> 9 <param-name>xpoweredBy</param-name> 10 <param-value>false</param-value> 11 </init-param> 12 <load-on-startup>3</load-on-startup> 13 </servlet>
1 <!-- The mappings for the JSP servlet --> 2 <servlet-mapping> 3 <servlet-name>jsp</servlet-name> 4 <url-pattern>*.jsp</url-pattern> 5 <url-pattern>*.jspx</url-pattern> 6 </servlet-mapping>
3)服务端会根据jsp文件生成对应的java文件。
会自动生成对应的java代码。
4)jvm会把对应的java文件编译成class文件。
查看java代码:
在tomcat 的lib目录查看jasper.jar
实质就是java的一个servlet,他也有init、service、destroy等方法。
5)服务器运行class文件,生成动态内容。
6)将生成的动态内容发送给服务器。
7)服务器组成响应的内容,发送给浏览器。
8)浏览器接收数据,展示页面。
二:jsp如何运行java代码。
1)<%...%>:java程序代码片段。输出的代码在tomcat的console里。
2)<%=...%> 输出表达式,生成在java代码里的service 方法中,相当于输出 out.print()方法,在页面上显示。
3)<%!%> 声明成员,在类的成员中。直接映射到java代码的成员位置定义,区别于在<%%>定义,这个定义的变量有顺序问题。
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>$Title$</title> 5 </head> 6 <body> 7 <%System.out.println(222); 8 9 %> 10 <%! int i=2; 11 %> 12 <%out.print(i);%> 13 <%= 888888%> 14 </body> 15 </html>