摘要:JSP,全称是Java Server Pages,即Java服务器页面,是由Sun Microsystems公司主导创建的一种动态网页技术标准。

本文分享自华为云社区《Java服务器页面-JSP是什么与其简单结构介绍》,作者: gentle_zhou。

JSP,全称是Java Server Pages,即Java服务器页面,是由Sun Microsystems公司主导创建的一种动态网页技术标准。同时,JSP是一种运行在服务端的Java servlet(Server Applet,小服务程序)。

JSP以JAVA语言作为脚本,为整个JAVA编写的服务器提供了一个服务于HTTP网页的接口,可以动态生成HTML、XML 或其他格式文档的Web网页。

为什么使用JSP

使用JSP技术来编写HTTP网页的优势有如下几点:

  1. 性能优越,因为JSP可以直接在HTML网页中动态嵌入元素
  2. 服务器可以直接调用已经编译好的JSP文件,而不需要先载入解释器和目标脚本再编译
  3. JSP可以调用各种Java里的API接口
  4. JSP网页页面可以和处理业务逻辑的小服务程序一起使用
  5. JSP是Java EE(Enterprise Edition,企业级版本)重要的一部分,是一个完整的企业级应用平台

JSP需要什么开发环境

    1. JDK,是Java Development Kit,是Java的软件开发工具包。
      官方下载链接:https://www.oracle.com/java/technologies/downloads/
    2. Tomcat,一款支持运行 JSP 和 Servlets 的web服务器,可以集成在 Apache Web Server 中。
      Apache Tomcat 作为开源软件,下载链接:http://tomcat.apache.org/
      Tomcat 官网链接:http://tomcat.apache.org
    3. CLASSPATH 环境变量。由于 servlets 不是 Java SE(Standard Edition,Java 标准版,Java技术的核心和基础)的一部分,所以开发人员必须标示出 servlet 类的编译器。
      如果我们用的是 Windows 机器,需要在 C:\autoexec.bat 文件中添加以下两行:
      set CATALINA=C:\apache-tomcat-[版本号]
      set CLASSPATH=%CATALINA%\common\lib\jsp-api.jar;%CLASSPATH%
      如果是在 Linux/Unix 机器下,我们则需要在 .cshrc 文件中添加以下两行:
      setenv CATALINA=/usr/local/apache-tomcat-[版本号]
      setenv CLASSPATH $CATALINA/common/lib/jsp-api.jar:$CLASSPATH
      注:如果开发路径是 C:\JSPDev (Windows)或者 /usr/JSPDev (Linux/Unix),那么w我们就需要将这些路径添加进 CLASSPATH 变量中。

JSP结构

服务器上的JSP页面都会由JSP容器/引擎来负责处理。

JSP 容器会与 Web 服务器协同合作,为JSP正常运行提供必需的运行环境和服务;JSP容器还会正确识别专属于JSP网页的特殊元素(标签通常以<%开头,以%>结束)。

如下图所示是一个典型的支持JSP的网络服务器与客户端交互的图片,左边是代表客户端的机器(macos,linux,windows系统),中间用户通过互联网连接到我们右边的网络服务器,网络服务器里则有JSP容器/引擎(里面会包含JSP文件),然后服务器会和数据库进行交互:

参考链接

  1. https://www.runoob.com/jsp/jsp-tutorial.html

点击关注,第一时间了解华为云新鲜技术~

认识一下什么是JSP的更多相关文章

  1. myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)

    1.每次我们在MyEclispe中创建Jsp页面,生成的Jsp页面的默认编码是"ISO-8859-1".在这种情况下,当我们在页面中编写的内容存在中文的时候,就无法进行保存.如下图 ...

  2. jsp前端实现分页代码

    前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...

  3. jsp中出现onclick函数提示Cannot return from outside a function or method

    在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...

  4. jsp页面无法识别el表达式的解决方案

    今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不 ...

  5. 浅谈JSP中include指令与include动作标识的区别

    JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...

  6. 浅谈JSP注释

    HTML注释 JSP文件是由HTML尿急和嵌入的Java程序片段组成的,所以在HTML中的注释同样可以在JSP文件中使用.注释格式:<!--注释内容--> <!-- 欢迎提示信息! ...

  7. JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...

  8. Nginx服务器之Nginx与tomcat结合访问jsp

    本文使用linux centos系统 本文概述: JSP是一种动态网页技术标准.使用的方式是在HTML文件中插入程序段和JSP标记,而形成JSP文件.使用JSP开发WEB应用可以跨平台开发.但jsp需 ...

  9. 基于jsp+servlet图书管理系统之后台万能模板

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

  10. JSP页面跳转的几种实现方法

    使用href超链接标记      客户端跳转 使用JavaScript               客户端跳转 提交表单                        客户端跳转 使用response ...

随机推荐

  1. 为vscode开发一款svn右键菜单扩展

    在我平时的工作中会经常用到svn blame这个命令,但是vscode现有的svn扩展普遍都不能自定义右键菜单. 所以我产生一个想法:自己动手为vscode开发一款svn的扩展来定制右键菜单,本文记录 ...

  2. TemplatesImpl利用链

    FastJson利用链 Fastjson的版本在1.2.22-1.2.24主要有两条链利用TemplatsImpl和JdbcRowSetImpl利用链先来学习TemplatsImpl利用链,这个与前面 ...

  3. js字符串常用的方法总结,及其用法

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  4. 基于 POI 封装 ExcelUtil 精简的 Excel 导入导出

    注 本文是使用 org.apache.poi 进行一次简单的封装,适用于大部分 excel 导入导出功能.过程中可能会用到反射,如若有对于性能有极致强迫症的同学,看看就好. 序 由于 poi 本身只是 ...

  5. Dapr 远程调试之 Nocalhost

    虽然Visual studio .Visual studio code 都支持debug甚至远程debug ,Dapr 搭配Bridge to Kubernetes 支持在计算机上调试 Dapr 应用 ...

  6. 如何使用 pyqt 实现 Groove 音乐播放器

    前言 Win10 自带了一款很好用的音乐播放器 -- Groove 音乐,但是只能支持本地音乐的播放.2020年3月底到4月底,自己一直在学习 PyQt5,然后从 2020年5月开始,着手使用 PyQ ...

  7. C#语法糖系列 —— 第二篇:聊聊 ref,in 修饰符底层玩法

    自从 C# 7.3 放开 ref 之后,这玩法就太花哨了,也让 C# 这门语言变得越来越多范式,越来越重,这篇我们就来聊聊 ref,本质上来说 ref 的放开就是把 C/C++ 指针的那一套又拿回来了 ...

  8. Python学习-Day1(Typora软件与计算机)

    学习总括 Typora软件介绍(markdown语法) 相关拓展知识 文件的后缀名是什么? 什么是语言? 什么是编程语言? 什么是编程?(程序员写代码的本质) 计算机的五大组成部分 计算机的本质 计算 ...

  9. 研讨会回放视频:如何提升Jenkins能力,使其成为真正的DevOps平台

    "如何实现集中管理.灵活高效的CI/CD"在线研讨会精彩分享 演讲嘉宾:杨海涛 在2022年3月29日举办的"如何实现集中管理.灵活高效的CI/CD"在线研讨会 ...

  10. 聊聊 node 如何优雅地获取 mac 系统版本

    背景 今天突然碰到了一个兼容性需求,需要根据不同 macOS 版本,进行不同的兼容性处理. 没想到看似简单的需求,中间也经历了一番波折,好在最后解决了问题. 在此记录一下解决问题的过程,也方便其他有类 ...