什么是Java Server Pages?

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

JSP 开发环境搭建

在进行开发个过程中需要以下几个开发环境:JDK、Tomcat、Eclipse,具体配置百度。

##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来对待。

##JSP的生命周期
JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。
以下是JSP生命周期中所走过的几个阶段:

  • 编译阶段:
    servlet容器编译servlet源文件,生成servlet类
  • 初始化阶段:
    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
  • 执行阶段:
    调用与JSP对应的servlet实例的服务方法
  • 销毁阶段:
    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

实例代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<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>菜鸟教程 JSP 测试实例</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>
</body>
</html>

项目推荐



DC3是基于Spring Cloud的开源可分布式物联网(IOT)平台,用于快速开发、部署物联设备接入项目,是一整套物联系统解决方案。

JSP基础教程【1】相关推荐

  1. JSP基础教程:熟悉JSP服务器

    本篇文章由 泉州SEO www.234yp.com 整理发布,jsp入门教程 www.234yp.com/Article/176258.html 谢谢合作! jsp入门教程 熟悉JSP服务器 本&qu ...

  2. 【Javaweb】JSP基础教程

    文章目录 JSP简介 JSP工作原理 JSP生命周期 JSP注释 JSP中嵌套Java代码 JSP语法 中文编码问题 脚本程序 声明变量 表达式 指令 Page指令 Include指令 Taglib指 ...

  3. JSP学习笔记之基础教程

    JSP基础教程 什么是JSP JSP概念:Java 服务器页面 (Java Server Page ,JSP) 以扩展名== .jsp== 保存 在HTML中嵌入Java脚本语言 由应用服务器中的JS ...

  4. Fikker反向代理服务器的网站缓存加速/网站加速基础教程

    2019独角兽企业重金招聘Python工程师标准>>> Fikker反向代理服务器的网站缓存加速/网站加速基础教程 - 简介篇 前言: 本教程是针对第一次接触和使用 Fikker 的 ...

  5. Java Media Framework 基础教程

    Java Media Framework 基础教程 作者:Eric Olson     来源:ibm 摘要: 很少发现有关于jmf方面的中文资料,这是在IBM上面找的一本书,可作为jmf的入门学习,业 ...

  6. 人机交互基础教程-复习总结

    人机交互基础教程 题型分布 考纲及重点 第 1 章 绪论 1.1 什么是人机交互 1.2 人机交互的研究内容(7个) 1.3 人机交互的发展历史(3阶段) 1.4 人机交互的应用 习题 第 2 章 感 ...

  7. php基础教程推荐,php基础教程-绝对推荐

    php基础教程-绝对推荐 集成电路是采用半导体制作工艺,在一块较 小的单晶硅片上制作上许多晶体管及电阻器.电容器等元器件,按照多层布线或遂道布线的方法将元器件组合成完整的电子电路,因其管脚非常密集,所 ...

  8. java程序设计之网络编程基础教程_Java程序设计之网络编程基础教程

    基本信息 书名:Java程序设计之网络编程基础教程(21世纪高等学校计算机基础实用规划教材) :43.50元 作者:李芝兴 主编 出版社:清华大学出版社 出版日期:2012-12-1 ISBN:978 ...

  9. 迅速成为炙手可热的新一代程序员看《Ajax基础教程》

      Ajax基础教程 Foundations of Ajax   | Ryan Asleson著 金灵译 人民邮电出版社  | 7-115-14481-8/TP·5211 | 2006-02-16 | ...

  10. HTML入门基础教程相关知识

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

最新文章

  1. 前端性能优化之jQuery按需加载轮播图
  2. mySql中The user specified as a definer ('root'@'%') does not exist
  3. TP3.2的删除缓存与引入第三方库的问题(二)
  4. 如何让手游内存占用更小?从内存消耗iOS实时统计开始
  5. JAVA连接数据库ij_Derby 客户端 ij使用
  6. 计算机视觉三大顶级会议ICCV,CVPR,ECCV网址
  7. 108_Power Pivot购物篮分析分组GENERATE之笛卡尔积、排列、组合
  8. 计算机c盘小对计算机的影响吗,电脑卡真的跟C盘容量有关系吗?
  9. jquery 内容分页_为内容创建现代jQuery分页
  10. 计算机视觉书籍资源推荐_Computer Vision Principles, Algorithms, Applications, Learning
  11. 企业运维岗位笔试真题
  12. 电脑不能开热点的一种可以尝试的解决方法
  13. 小白量化学习(4)基本面选股与股票池
  14. 带有详细书签的IT电子书大全
  15. Symantec Backup Exec Agent For Linux防火墙问题
  16. 加密流量分析-4.加密协议分析
  17. uni showModeal
  18. 好的MES系统,应该是啥样?
  19. Webpack中的sourcemap以及如何在生产和开发环境中合理的设置sourcemap的类型
  20. 从零开始学PySide6/QT

热门文章

  1. TongLINK/Q7.X 8.x查看队列情况命令
  2. 深港澳金融科技师(SHMFTTP)一级考试
  3. R语言线性混合效应模型实战案例
  4. oracle 有if语句吗,oracle的if语句
  5. Pupy – 全平台远程控制工具
  6. 亿航白鹭落户西安建丝路总部,为“硬科技之都”插上双翼
  7. java打包apk_APK打包流程
  8. 计算机软件税负率,2015最新增值税税负对照表
  9. [精易软件开发工程师Leo学习笔记]011DeBug(调试)
  10. lisp如何将度分秒转换为弧度_3 角 度分秒与弧度互相转换