当前位置: 首页 > news >正文

jsp简单介绍

一.什么是JSP

  JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

  JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

  JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。

  JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

二.JSP作用及优势

  JSP程序与CGI程序有着相似的功能,但和CGI程序相比,JSP程序有如下优势:

  • 性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
  • 服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
  • JSP 基于Java Servlet API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。
  • JSP页面可以与处理业务逻辑的 Servlet 一起使用,这种模式被Java servlet 模板引擎所支持。
  • 与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
  • 与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
  • 与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
  • 与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
  • 与静态HTML相比:静态HTML不包含动态信息。

三.JSP结构

  网络服务器需要一个 JSP 引擎,也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。本教程使用内嵌 JSP 容器的 Apache 来支持 JSP 开发。

  JSP 容器与 Web 服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于 JSP 网页的特殊元素。

  下图显示了 JSP 容器和 JSP 文件在 Web 应用中所处的位置。

四.JSP生命周期

  • 编译阶段:

    servlet容器编译servlet源文件,生成servlet类

  • 初始化阶段:

    加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

  • 执行阶段:

    调用与JSP对应的servlet实例的服务方法

  • 销毁阶段:

    调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

五.JSP语法简介

   1.JSP注释:

    

语法描述
<%-- 注释 --%>JSP注释,注释内容不会被发送至浏览器甚至不会被编译
<!-- 注释 -->HTML注释,通过浏览器查看网页源代码时可以看见注释内容
<\%代表静态 <%常量
%\>代表静态 %> 常量
\'在属性中使用的单引号
\"在属性中使用的双引号

  2.JSP指令:

指令描述
<%@ page ... %>定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等
<%@ include ... %>包含其他文件
<%@ taglib ... %>引入标签库的定义,可以是自定义标签

  3.JSP行为:

 

语法描述
jsp:include用于在当前页面中包含静态或动态资源
jsp:useBean寻找和初始化一个JavaBean组件
jsp:setProperty设置 JavaBean组件的值
jsp:getProperty将 JavaBean组件的值插入到 output中
jsp:forward从一个JSP文件向另一个文件传递一个包含用户请求的request对象
jsp:plugin用于在生成的HTML页面中包含Applet和JavaBean对象
jsp:element动态创建一个XML元素
jsp:attribute定义动态创建的XML元素的属性
jsp:body定义动态创建的XML元素的主体
jsp:text用于封装模板数据

  3.JSP隐含对象:

对象描述
requestHttpServletRequest类的实例
responseHttpServletResponse类的实例
outPrintWriter类的实例,用于把结果输出至网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page类似于Java类中的this关键字
ExceptionException类的对象,代表发生错误的JSP页面中对应的异常对象

。。。。。。。

转载于:https://www.cnblogs.com/lyq-biu/p/10755356.html

相关文章:

  • python inspect模块
  • 通过SQL脚本来查询SQLServer 中主外键关系
  • python的pandas库学习笔记
  • 最全的前端模块化方案
  • 深入浅出了解“装箱与拆箱”
  • 力扣算法题—091解码
  • 如何利用在线画图网站绘制流程图
  • 软件原型设计工具Axure
  • 数据脱敏(一)--基础知识
  • linux-高并发与负载均衡-lvs-DR模型试验
  • Guns 旗舰版 2.4 发布,更简洁的管理系统
  • JAVA中AWT编程
  • swoft| 源码解读系列一: 好难! swoft demo 都跑不起来怎么破? docker 了解一下呗~
  • Kubernetes单机部署操作学习
  • 第十周学习进度报告
  • Android Volley源码解析
  • ES6 学习笔记(一)let,const和解构赋值
  • js递归,无限分级树形折叠菜单
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • sessionStorage和localStorage
  • Spring Boot MyBatis配置多种数据库
  • 回顾 Swift 多平台移植进度 #2
  • 利用jquery编写加法运算验证码
  • 小李飞刀:SQL题目刷起来!
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #pragma once
  • #控制台大学课堂点名问题_课堂随机点名
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (译)计算距离、方位和更多经纬度之间的点
  • (正则)提取页面里的img标签
  • (转)母版页和相对路径
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET 5种线程安全集合
  • .NET 使用配置文件
  • .netcore如何运行环境安装到Linux服务器
  • .net开发时的诡异问题,button的onclick事件无效
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @media screen 针对不同移动设备
  • @PreAuthorize注解
  • [ C++ ] STL---string类的使用指南
  • [.NET]桃源网络硬盘 v7.4
  • []T 还是 []*T, 这是一个问题
  • [20180129]bash显示path环境变量.txt
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [ARC066F]Contest with Drinks Hard
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [Editor]Unity Editor类常用方法
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [GYCTF2020]Ez_Express
  • [hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入HBASE
  • [Java][算法 双指针]Day 02---LeetCode 热题 100---04~07
  • [lintcode easy]Maximum Subarray