互联网三大基石
- HTTP: HyperText Transfer Protocol, 传输数据
- URL: Uniform Resource Locator, 定位数据
- HTML: HyperText Markup Language, 显示数据
servlet
servlet 就是 java,是继承父类 HttpServlet 的 java 类。在服务器端运行,用于处理用户的请求并给予响应。
servlet 运行过程:
- 浏览器发送请求到服务器
- 服务器根据请求的 URL,去调用相应的 servlet(servlet 有不止一个),servlet 操作数据库,获取信息
- 通过 servlet 中打印流对象,将生成的 HTML 数据输出给服务器
- 服务器将 servlet 生成的 HTML 数据再输出给客户端浏览器
- 浏览器根据服务器传回的 HTML 数据解析,再发送请求,最终显示出页面
可以看出,浏览器和servlet不直接沟通,web服务器是媒介。下面这幅图片很好的描述了各种关系:
图:注意要区分Web服务器和应用服务器。Apache是Web服务器;Tomcat是Java应用服务器。Web服务器用来处理HTTP, URL, 和HTML;Tomcat用来处理Java的应用,JSP/Servlet。在开发Java的Web程序的时候,Apache和Tomcat配合在一起使用,Apache处理静态页面,Tomcat处理动态页面。
jsp
jsp经过编译,成为 java 类(此类的超类的超类,最终是 HttpServlet,因此也可以说 jsp 就是 servlet),所以 jsp 也是java。jsp ≈ java + html。有时候写 jsp 就像是在写 HTML,然后嵌套一点 Java。JSP 是简化 Servlet 编写的一种技术,它将 Java 和 HTML 混合在一起编写。动态产生的内容使用 Java 代码编写,而固定不变的静态内容采用 HTML 编写。
jsp 文件在第一次运行的时候,通过 jsp 引擎( JspServlet ),会生成对应的 java 文件和 class(位置:tomcat/work/Catalina/localhost/web项目名/org/apache/jsp)
jsp 语法分为三种不同的类型:
编译器指令:
1. page,页面设置 < %@ page … %>)
2. include,源码级别导入 < %@ include … %>)
3. taglib
脚本语法:
1. HTML注释,Servlet中会生成,会发给浏览器 < !– comments –>
2. 隐藏注释,Servlet中不会生成,不发给浏览器< %– comments –>
3. 声明,< %! … %>
4. 表达式,< %= … %>
5. java脚本段,< % … %>,在这里直接写入 java 代码,变量,方法等
动作语法:
< jsp:forward >, < jsp:include >, < jsp:plugin >等
补充
servlet 和 jsp 都是属于 Java EE 内容。Servlet 负责相应请求产生数据,并把数据通过转发技术带给 JSP,数据显示用 JSP 来做。
比较 | 优势 | 劣势 |
---|