声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

jsp介绍:

jsp全称Java Server Page,它是Servlet的扩展,其作用就是简化网站创建过程和维护动态网站。

jsp运作原理:

浏览器访问index.jsp的URL为http://localhost:8080/工程名称/index.jsp,tomcat服务器接收到客户端的访问请求时,服务器首先去查找到myweb工程,找到后到web.xml文件中查找JSPServlet的映射,再运行JSPServlet,然后进入到jsp对象池,询问有没有对象,如果有对象就抓取对象使用,再调用service(request,response)方法进行服务;如果没有对象就到当前目录下查找index.jsp文件,找到文件将文件生成index_jsp.java文件,然后将index_jsp.java文件进行编译加载,创建对象放回池子,然后拿出对象调用service(request,response)方法进行服务。和Servlet一样,在整个生命周期中,JSPServlet对象只有一个。

JSPServlet在Servers服务的web.xml配置文件中:

JSP访问配置如下:.jsp和.jspx的访问都发送到jsp上;

示意图:

一般情况下,index.jsp生成index_jsp.java文件的情况仅在客户端首次访问jsp文件发生。 Tomcat把由JSP生成的index_jsp.java源文件和类文件都放在work目录下。在开发和调试阶段,如果开发人员修改了jsp文件,tomcat会重新编译jsp,并把编译生成的新文件覆盖work目录下的旧文件。

示意图:

打开index_jsp.java看看他的源码:

在源代码中可以看出,与JSP文件对应的Servlet类继承org.apache.jasper.runtime.HttpJspBase类,HttpJspBase 类由Tomcat提供,它实现了JSP API中的javax.servlet.jsp.HttpJspPage接口,该接口继承了javax.servlet.jsp.JspPage接口,而JspPage接口又继承了Servlet API中的javax.servlet.Servlet接口。

jspService服务方法只不过是改了个名字,他其实就是Servlet的service方法转发过来的;

index_jsp.java源文件的HTML文本称为模板文本,他会被发送到客户端;

JSP语法:

虽然JSP本质上就是Servlet,但是JSP有着不同于Java编程语言的专门语法,该语法的特点是尽可能的用标记来取代Java程序代码,使整个JSP文件在形式上不像Java程序,而像标记文档。

在.jsp文件中除了可以直接包含HTML文本,还可以包含以下内容:

jsp页面指令:主要设置页面上的参数;

jsp代码指令:

写代码

申请属性和方法

输出参数

jjsp内置对象:

打开index.jsp生成的index_jsp.java源文件看下变量申明就知道有哪些内置对象了,如下:

java ee jsp程序_JavaEE——jsp介绍相关推荐

  1. java ee的小程序_扩展Java EE应用程序的基础

    java ee的小程序 老实说,"可扩展性"是一个详尽的主题,并且通常没有被很好地理解. 通常,它被认为与高可用性相同. 我已经看到新手程序员和"经验丰富"的建 ...

  2. openshift 部署_OpenShift Express:部署Java EE应用程序(支持AS7)

    openshift 部署 在过去的几年中,我越来越多地听说过"云"服务. 最初,我并不是很想尝试一下. 但是几个月后(一年?),我决定看看这是怎么回事. 我从事Java EE开发已 ...

  3. 扩展Java EE应用程序的基础

    老实说,"可扩展性"是一个详尽的主题,并且通常没有被很好地理解. 通常,它被假定与高可用性相同. 我已经看到新手程序员和"经验丰富"的建筑师都建议将" ...

  4. OpenShift Express:部署Java EE应用程序(支持AS7)

    在过去的几年中,我越来越听到有关"云"服务的信息. 最初,我并不是很想尝试一下. 但是几个月后(一年?),我决定看看这是怎么回事. 我从事Java EE开发已经超过7年了,所以我决 ...

  5. 编写一个JSP程序Jiecheng.jsp,计算整数的阶乘,并显示出结果。

    编写一个JSP程序Jiecheng.jsp,计算整数的阶乘,并显示出结果. 要求先声明计算阶乘的方法,再调用该方法,最后在页面上输出结果. 通过表单提交一个正整数,然后计算它的阶乘. 参考代码: ...

  6. swarm部署集群_WildFly Swarm –将Java EE应用程序部署为独立的Jar

    swarm部署集群 WildFly Swarm提供了一个简单的解决方案,用于将Java EE应用程序部署为独立的Jar文件. 这使得部署应用程序非常容易,尤其是REST或Web服务. Swarm在这方 ...

  7. java拦截器项目应用_使用拦截器分析Java EE应用程序的性能下降/提高

    java拦截器项目应用 在开发具有某些性能要求的Java EE应用程序时,必须在每个发行版之前验证是否满足这些要求. 您可能会想到,哈德森的一项工作每天晚上在某些特定的硬件平台上执行一系列测试测量. ...

  8. 使用tinylog 1.1改进您在Java EE应用程序中的登录

    tinylog是Java的轻量级日志记录框架. 与Apache Log4j和Logback相反,tinylog由仅80KB的单个JAR文件组成,没有任何依赖性,并且具有静态logger类. 这意味着您 ...

  9. WildFly Swarm –将Java EE应用程序部署为独立的Jar

    WildFly Swarm为将Java EE应用程序部署为独立的Jar文件提供了一种简单的解决方案. 这使得部署应用程序特别是REST或Web服务非常容易. Swarm在这方面与Spring Boot ...

最新文章

  1. PHP框架之间有什么区别,php框架和设计模式区别
  2. mysql 计算排名,生成排行榜
  3. 【django轻量级框架】View与Model交互(模块的交互关系)
  4. 利用Python实现gif动图倒放
  5. 《玩转微信6.0》一1.2 微信初体验
  6. JS之字符串截取方法substring
  7. 监控linux内存,linux 监控系统资源-内存
  8. iOS多线程:『pthread、NSThread』详尽总结
  9. php语法介绍,PHP 函数语法介绍一
  10. html边框塌陷怎么,你不知道的CSS(边框塌陷)?
  11. P2920 [USACO08NOV]时间管理Time Management
  12. Linux系统网络性能实例分析
  13. 软件测试到底要不要报培训班?
  14. 大数据丨网络爬虫技术总结
  15. 失控的摄像头,谁是窥视者!
  16. 一卡通(M1卡)破解过程记录——理论篇
  17. verilog版的1602+ps2
  18. 优秀,是一种生活态度
  19. CSS floats来创建三栏网页布局的方法
  20. ZOJ-1091-Knight Moves

热门文章

  1. Pytorch使用GPU
  2. 使用注解开发SpringMVC详细配置教程
  3. Tensorrt一些优化技术介绍
  4. AI+IoT+电池应用
  5. WebRTC框架中的硬件加速
  6. 如何使用Nsight Compute?
  7. 双圆弧插值算法(二)
  8. 2021年大数据Spark(四十一):SparkStreaming实战案例六 自定义输出 foreachRDD
  9. OPPO小游戏vConsole开启方法
  10. [JAVA EE] Thymeleaf 常用工具类