JSP的简单认识
JSP的简单认识
1.什么是JSP
JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。
JSP是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以 <%
开头,以%>
结束。
JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序,运行在服务端的语言。
JSP文件后缀名为 *.jsp 。JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据
、访问数据库
及其他数据源
,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库
、记录用户选择信息
、访问JavaBeans组件
等,还可以在不同的网页中传递控制信息和共享信息。
写一个jsp程序
运行
2.使用JSP的好处
- 与其他语言相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植。
- 与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
- 第三方支持:可以连接数据库,获取表单。
- 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
- 与静态HTML相比:静态HTML不包含动态信息。
3.JSP与Servlet的区别
jsp本质上是servlet,用jsp实现的页面用servlet也能实现。有说jsp是特殊的servlet也有说servlet是特殊的jsp。
- 运行过程
客户在第一次请求JSP时,请求较慢,因为JSP Engine先把JSP程序转换成servlet代码,接着将它编译成类文件,以后贮存在内存中再次调用速度就快了;访问servlet时,可以直接对其编译好的类文件执行。
- 使用方式
要想使用servlet必须把它放在特定位置而且必须对其映射配置; jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。
- 程序组成
Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容; JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容。
-
职能分工
jsp更侧重于前端页面显示,servlet更侧重于业务逻辑。
JSP侧重HTML,servlet侧重java代码。
4.JSP处理
以下步骤表明了 Web 服务器是如何使用JSP来创建网页的:
就像其他普通的网页一样,你的浏览器发送一个 HTTP 请求给服务器。
Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。
JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。
JSP 引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。
Web 服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。
Web 服务器以静态 HTML 网页的形式将 HTTP response 返回到您的浏览器中。
最终,Web 浏览器处理 HTTP response 中动态产生的HTML网页,就好像在处理静态网页一样。
一般情况下,JSP 引擎会检查 JSP 文件对应的 Servlet 是否已经存在,并且检查 JSP 文件的修改日期是否早于 Servlet。如果 JSP 文件的修改日期早于对应的 Servlet,那么容器就可以确定 JSP 文件没有被修改过并且 Servlet 有效。这使得整个流程与其他脚本语言(比如 PHP)相比要高效快捷一些。
总的来说,JSP 网页就是用另一种方式来编写 Servlet 而不用成为 Java 编程高手。除了解释阶段外,JSP 网页几乎可以被当成一个普通的 Servlet 来对待。