JSP简介
JSP全称Java Server Pages,一种Java Servlet,主要用于实现Java web应用程序的用户界面部分。
为什么需要JSP?
JSP是为了简化Servlet的工作出现的替代品,Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的。
JSP技术特点
1)能够在任何Web 或应用程序服务器上运行:比如Apache服务器也都会提供对JSP的支持。
2)将程序逻辑和页面显示相分离:在使用 JSP 技术开发 Web 应用时,可以将界面的开发与应用程序的开发分离。
3)采用标签简化页面开发:使用JSP的标签可以执行访问和实例化JavaBeans组件。
4)组件可重用:JSP 可以使用 JavaBean 编写业务组件,在 JSP 页面甚至整个项目中,都可以重复使用这个 JavaBean。
JSP组成结构
下面是一个大家都最熟悉的JSP例子:
<html> <head> <title>HelloWorldJSP~</title> </head> <body> <% out.println("HelloWorld"); %> </body> </html>
由上面例子可以看出,JSP主要是由两部分组成:
1)静态部分
标准的HTML标签,静态的页面内容,这些内容与静态HTML页面相同。
2)动态部分
Java程序控制的内容,这些内容由Java程序来动态生成。
一句话总结:JSP = HTML + Java片段(各种标签本质上还是Java片段)。
JSP工作原理
当有人请求JSP时,服务器内部会经历一次动态资源(JSP)到静态资源(HTML)的转化,服务器会自动帮我们把JSP中的HTML片段和数据拼接成静态资源响应给浏览器。
具体如下图所示:
JSP的工作流程,大致分为如下4步:
1)当用户访问一个JSP页面时,首先会向Servlet容器,比如:向Tomcat发出请求;
2)如果是第一次请求页面,则Servlet容器首先要把JSP页面,比如:test.jsp转化为Servlet代码,比如:test.java,再将其转化为test.class文件。
3)然后,JSP容器负责调用从JSP转换来的Servlet,这些servlet负责提供服务相应用户请求。
比如:客户端发送表单,要求servlet:具体的表单.java来处理,则容器会建立一个线程,调用具体的表单.java来处理该请求。
如果用户有多个请求,则容器会建立多个线程处理多个请求。
4)容器执行字节码文件(具体的表单.java字节码),并将其结果返回到客户端,一般返回的方式html格式文件。
mikechen睿哥
mikechen睿哥,十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》