博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JSP]JSP 简介
阅读量:6142 次
发布时间:2019-06-21

本文共 2316 字,大约阅读时间需要 7 分钟。

1.1 概述

1.1.1 什么是 JSP?

  • JSP 全称是 Java Server Pages,是一种动态网页开发技术
  • 它与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。
  • JSP 是一种 Java Servlet,主要用于实现 Java Web 应用程序的用户界面部分。
  • JSP 技术
    以 Java 语言作为脚本,它使用JSP标签在HTML网页中插入Java代码。标签通常以
    <%开头以
    %>结束。 
  • JSP文件后缀名为(*.jsp)。
  • JSP开发的WEB应用可以跨平台使用,既可以运行在Linux上也能运行在Window上。

1.1.2 JSP 的优点

与 ASP 相比:

  • 动态部分用 Java 编写,所以更加强大易用
  • 可以移植到多种不同的服务器和操作系统

与 PHP 相比:

  • 更好的工具支持

与 Servlet 相比:

  • 创建 HTML 更方便

与 Javascript 相比:

  • 虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。

1.2 工作原理

1.2.1 JSP 和 Servlet的区别

JSP 是一种 Servlet,但是它与 HttpServlet 的工作方式不太一样:

  • HttpServlet 是先编译后部署:先将源代码编译为 class 文件,然后部署到服务器下
  • JSP 是先部署后编译:先部署代码,然后编译为 class 文件。JSP 会在客户端第一次请求 JSP 文件时被编译为 HttpJspPage 类。该类会被服务器临时存放在服务器工作目录里面。

由于 JSP 只在客户端第一次请求时被编译,所以第一次请求 JSP 时会感觉比较慢。

1.2.2 JSP 工作原理

以下步骤表明了Web服务器是如何使用JSP来创建网页的:
  1. 就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
  2. Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
  3. JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
  4. JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
  5. Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
  6. Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
  7. 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。
以上提及到的步骤可以用下图来表示:

1.3 生命周期

JSP 也是一种 Servlet,运行时只有一个实例,它也有生命周期。

以下是JSP生命周期中所走过的几个阶段:
  1. 编译阶段:servlet容器编译servlet源文件,生成servlet类
  2. 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
  3. 执行阶段:调用与JSP对应的servlet实例的服务方法
  4. 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

很明显,JSP生命周期的四个主要阶段和servlet生命周期非常相似,下面给出图示:


JSP生命周期代码实例
<%
@ page contentType
=
"
text/html; charset=GB2312
"
 
%>
<
html
><
head
><
title
>life.jsp
</
title
></
head
><
body
>
<%
  
private
 
int
 initVar
=
0
;
  
private
 
int
 serviceVar
=
0
;
  
private
 
int
 destroyVar
=
0
;
%>
  
<%
!
  
public
 void jspInit(){
    initVar
++
;
    System.out.println(
"
jspInit(): JSP被初始化了
"
+
initVar
+
"
"
);
  }
  
public
 void jspDestroy(){
    destroyVar
++
;
    System.out.println(
"
jspDestroy(): JSP被销毁了
"
+
destroyVar
+
"
"
);
  }
%>
<%
  serviceVar
++
;
  System.out.println(
"
_jspService(): JSP共响应了
"
+
serviceVar
+
"
次请求
"
);
  
String
 content1
=
"
初始化次数 : 
"
+
initVar;
  
String
 content2
=
"
响应客户请求次数 : 
"
+
serviceVar;
  
String
 content3
=
"
销毁次数 : 
"
+
destroyVar;
%>
<
h1
>
<%
=
content1 
%>
</
h1
>
<
h1
>
<%
=
content2 
%>
</
h1
>
<
h1
>
<%
=
content3 
%>
</
h1
>
</
body
></
html
>

参考资料

Java Web 整合开发

http://www.w3cschool.cc/jsp/jsp-tutorial.html

转载地址:http://ztkya.baihongyu.com/

你可能感兴趣的文章
UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法
查看>>
User implements HttpSessionBindingListener
查看>>
抽象工厂方法
查看>>
ubuntu apt-get 安装 lnmp
查看>>
焊盘 往同一个方向增加 固定的长度方法 总结
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
jquery的冒泡和默认行为
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
前端学习之正则表达式
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
codeforce 599B Spongebob and Joke
查看>>