jsp是什么以及jsp运行原理

一.JSP的简单介绍

1. JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

1.1 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。

1.2 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

1.3JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

1.4 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。    JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。  自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。JSP可用一种简单易懂的等式表示为:HTML+Java+JSP标记=JSP。

jsp文件的搭建

右击→New→Dynamic Web Project→填写Filename→Next→Next→勾选Generate web.xml deployment desciptor 最后点击Finish即可


在webContent目录(或者子目录)下创建JSP文件。右击→JSP File→填写Filename→Naxt→选中New JSP File(html5)→点击Finish,即可完成创建。


其中<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>是jsp指令,如果创建出来的文件中不是UTF-8,那么需要手动的变更UTF-8,否则传递中文是可能会出现乱码。

如果想要每次创建jsp文件时,默认的编码格式UTF-8,需要进行设置,Window→Preferences→Web→JSP File→Encoding→选择UTF-8→Apply And Close

在JSP中填写信息

访问JSP文件

首先启动Tomcat

如上图所展示的启动Tomcat成功 然后在浏览器上面搜索http://localhost:8088/jsp-1.0/index.jsp

jsp运行原理

1、运行原理

当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet代码(.java),再编译成.class 文件 再进行调用。当再次访问jsp页面时 跳过翻译和编译的过程 直接调用。

2、JSP的运行原理

1.用户发送http请求到web服务器(tomcat)

2.web服务器根据请求的Url找到对应的jsp文件

3.将找到的jsp文件转译成.java文件

4.将.java文件编程成.class字节码文件

5.执行.class字节码文件,根据客户端动态请求的生成相应HTML文件 并使用response将HTML文件发送给浏览器.

6.浏览器解析发送HTML文件,将效果展示在浏览器页面

3.jsp页面元素:

1.静态的内容:有html代码,js代码,css样式

2.Jsp注释:<%–客户端不可见注释–%>这种注释是用于开发人员内部,关于代码用途,逻辑等的注释 < !-- 用户端可见注释 --> 脚本注释://单行注释;/**/多行注释

3.指令: 以<%@开始,以%>结尾 jsp的指令注意有3种:page,include,taglib

(1).page指令:一般书写在jsp页面顶端,同一个页面可以有多个paeg指令

(2).include指令:通常就是将一个外部的jsp文件嵌入到当前的jsp文件中,同时解析这个页面中的jsp语句。

(3).tagilb指令:使用标签库定义新的自定义标签,在jsp页面中用户定制行为

4.表达式:在jsp页面执行的表达式,可以用来调用声明的变量和方法

注意:表达式中的内容默认打印到页面,表达式中不可以加;分号

6.声明:在jsp页面中定义的变量或方法(函数)格式:<%!变量或方法%>

jsp静态导入和动态导入的区别

静态导入代码:<%@ include file=“xxx.jsp”%>
动态导入代码:<jsp:include page=“xxx.jsp” />
1.静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
2.静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
3.动态包含还可以增加额外的参数。

jsp是什么以及jsp运行原理相关推荐

  1. 【Servlet】JSP学习-概念和运行原理

    为什么需要JSP? 与HTML相比:根据后台的业务,可以动态输出HTML,网页内容是可以改变的. 与原生Servlet相比:不需要自己写输出语句resp.getWriter().write(" ...

  2. 9.JSP运行原理与JSP页面的基本结构

    JSP运行原理与JSP页面的基本结构 HTML页面的基本构成 .代码中出现的几种标签 •单标签     某些标签只需单独使用就能完整地表达意思,控制网页 效果,这类标签的语法是: <标签> ...

  3. 【JSP】JSP的运行原理

    初次访问JSP页面 JSP同Servlet一样,都运行在Servlet容器中.当用户第一次访问JSP页面时,JSP页面的执行过程可分为五个步骤,各步骤含义如下: 客户向服务器发送JSP页面请求(req ...

  4. 什么是JSP,JSP的运行原理是什么?

    在动态Web项目的开发中,经常需要动态生成HTML.内容(如系统中的当前在线人数需要动态生成).如果使用Servlet实现HTML页面数据的统计,则需要使用大量的输出语句.同时,如果静态内容和动态内容 ...

  5. JSP起源、JSP的运行原理、JSP的执行过程

    JSP起源 在很多动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变. 如果使用Servlet程序来输出只有局部内容需要动态改变的网页,其中所有的静态内容也需要程序员用Java程序 ...

  6. JSP运行原理 九大内置对象 四大作用域

    Jsp的简介 jsp的全称是java server pages 意思为java的服务页面 jsp必须运行在服务器,不能脱离服务器单独运行 jsp是可以写java代码的html jsp的本质就是一个se ...

  7. JSP运行原理及运行过程

    学习J2EE时,初步了解了JSP,写过一篇小的总结:J2EE-JSP,当时还不是很了解它的运行机制. 学习DRP时,再次接触了JSP,在原来基础上有了更深的了解,了解了它的执行原理 1,JSP的运行原 ...

  8. web开发总结-Servlet与JSP(运行原理)

    文章结构:(1)剖析Servlet:(2)剖析JSP: 一.剖析Servlet: (1)概述: Servlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的web页面.它担当Web ...

  9. jsp自定义标签(taglib)编写的原理和实现

    jsp自定义标签(taglib)编写的原理和实现 转:http://www.javaeye.com/topic/157737 个tag就是一个普通的java类,它惟一特别之处是它必须继承TagSupp ...

最新文章

  1. 多个单例模式单例模式的应用
  2. Python机器学习--KNN归一化、距离的惩罚
  3. Unity 动画属性
  4. 计算机部件动漫,因一个片段肝了整部番,电脑配件上榜,它满屏“虎狼之词”...
  5. 剑指Offer14-剪绳子12
  6. python运维开发之第九天
  7. docker镜像启动后端口号是多少_java项目docker云化入门
  8. Android App Architecture使用详解
  9. RSA加密:javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes
  10. GeoPandas入门 | 03-空间关系和操作
  11. Pytorch实现有监督对比学习损失函数
  12. Cocos Creator转盘抽奖
  13. 计算机本科毕业设计-智能分类垃圾桶
  14. 北洋雷达UST-10LX基于ROS都安装使用测试小问题
  15. java 调用TSC打印机
  16. 0代码,不用app Arduino esp32cam 远程控制Web Server视频小车
  17. 启元世界获 NeurIPS 2018 多智能体竞赛Learning组冠军,决策智能平台价值凸显...
  18. linux 传输文件stpf,在Linux下搭建 miniGUI mStudio环境...-linux 全面剖析ps命令-纯Servlet实现文件上传_169IT.COM...
  19. java计算机毕业设计宠物店管理系统设计与实现(附源码、数据库)
  20. Deep3Dbox(3D Bounding Box Estimation Using Deep Learning and Geometry)理解

热门文章

  1. Kafka 的实现原理
  2. MySql中的自动编号
  3. 使用 rtk-query 优化你的数据请求
  4. 今时不同往日:VS2010十大绝技让VS6叹服
  5. 携手同心,三阳开泰:读懂2023华为中国政企合作伙伴政策
  6. cookie简介(前端)
  7. Jun-Yan Zhu(朱俊彦) - UC Berkeley
  8. 《Excel 职场手册:260招菜鸟变达人》一第 21 招 怎样在单元格中添加项目符号...
  9. HTML中的标签textarea的属性及用法
  10. 面试 | 商汤科技面试经历之Promise红绿灯的实现