美文网首页
JSP学习0:

JSP学习0:

作者: 苦难_69e0 | 来源:发表于2021-02-24 17:43 被阅读0次

JSP规范介绍

来自于JAVAEE规范中一种

JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程

JSP规范制定了Http服务器应该如何调用管理JSP文件

响应对象存在弊端

适合将数据量较少的处理结果写入到响应体
如果处理结果数量过多,使用响应对象增加开发难度

JSP文件优势

JSP文件在互联网通信过程,是响应对象替代品.

降低将处理结果写入到响应体的开发工作量降低处理结果维护难度

在JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动的将JSP文件书写的所有内容通过输出流写入到响应体

HTML文件与JSP文件区别

作为资源文件类型不同:
HTML文件属于静态资源文件,其相关命令需要在浏览器编译并执行的
JSP文件属于动态资源文件,其相关命令需要在服务端编译并执行的

调用形式不同:
如果浏览器访问HTML文件,此时Http服务器直接通过一个输出流将HTML文件中所有的内容写入到响应体
如果浏览器访问JSP文件。此时Http服务器根据JSP规范来操作JSP文件编辑---->编译----->调用

JSP文件运行原理

JSP文件运行原理.png

Tomcat根据JSP规范,将被访问的JSP文件[编辑]为一个java文件。这个Java文件是Servlet接口实现类

Tomcat根据JSP规范,调用JVM(javac one_jsp.java)将这个java文件[编译]为class类型

Tomcat根据JSP规范负责生成这个class文件的实例对象。这个实例对象是一个Servelt接口实例对象

Tomcat根据JSP规范通过实例对象调用class文件中_jspService方法

_jspService方法在运行时负责将JSP文件中书写内容写入到响应体中

HttpJspBase

源码文档.png

Tomcat将JSP文件编辑后生成的Java文件,继承与HttpJspBase。通过Apache官方文档查看其身份是HttpServlet的子类。所以Tomcat将JSP编辑为的文件为一个Servlet接口实现类

_jspService方法

作用:
当一个JSP文件被访问时,Tomcat调用的并不是当前JSP文件。而是JSP文件对应的Servlet接口实现类中_jspService方法。_jspService方法负责将开发人员在JSP文件书写的所有内容写入到响应体中

内部结构:
判断当前请求方式。Jsp文件可以接收的请求方式有POST,GET,HEAD

声明局部变量。这些局部变量都可以在JSP文件开发时直接使用

输出部分。这部分执行时将JSP文件内容通过输出流写入到响应体

在JSP文件中如何书写Java命令

执行标记

命令格式<%%>:
<% int a =10; %> 声明局部变量

<% boolean flag = 30 >= 40; %> Java中表达式(数学表达式,关系表达式,逻辑表达式)

<%
if(判断条件){
}else{
}

while(){
}
%> 书写控制语句

命令作用:
通知Http服务器将JSP文件中Java命令与其他普通执行结果进行区分

输出标记

命令格式:
<%=java的变量名%>
<%=java的表达式%>

命令作用:
通知Tomcat将输出标记中【变量的值】或则输出标记中【表达式运算结果】写入到响应体

如何将Servlet中doGet/doPost方法执行结果交给JSP文件输出

JSP文件被访问时,并不是JSP文件在执行。而是对应的Servlet在执行

自定义Serlvet接口实现类与JSP文件之间调用关系,等同于两个Servlet之间调用关系

自定义Servelt接口实现类与JSP文件之间可以通过重定向方案或则请求转发方案进行调用考虑到运行效率问题,一般采用【请求转发】

自定义Servlet接口实现类可以通过请求作用域对象将共享数据交给JSP来输出到响应体

常见的JSP文件内置对象

JSP文件内置对象:request
类型:HttpServletRequest
作用:
在JSP文件运行时读取请求包信息
与Servlet在请求转发过程中实现数据共享

JSP文件内置对象:session
类型:HttpSession
作用:JSP文件在运行时,可以session指向当前用户私人储物柜,添加共享数据,或者读取共享数据

JSP文件内置对象:application
ServletVomtext application;全局作用域对象
同一个网站中Servlet与JSP,都可以通过当前网站的全局作用域对象实现数据共享

Servlet与JSP的分工

Servlet:负责处理业务并得到处理结果
JSP:不负责业务处理,主要任务将Servlet中处理结果写入到响应体

Servlet工作完毕后,一般通过请求转发方式向Tomcat申请调用JSP

Servlet将处理结果添加到【请求作用域对象】

JSP文件在运行时从【请求作用域对象】的到处理结果

Http服务器调用JSP文件步骤:【2019年北京地区常考面试题】

1.Http服务器将JSP文件内容【编辑】为一个Servlet接口实现类(.java)
2.Http服务器将Servlet接口实现类【编译】为class文件(.class)
3.Http服务器负责创建这个class的实例对象,这个实例对象就是Servlet实例对象
4.Http服务器通过Servlet实例对象调用_jspService方法,将jsp文件内容写入到响应体

Http服务器【编辑】与【编译】JSP文件位置:

标准答案:我在【work】下看到了这个证据

C:\Users[登录windows系统用户角色名].IntelliJIdea2018.3\system\tomcat[网站工作空间]\work\Catalina\localhost\【网站别名】\org\apache\jsp

相关文章

  • JSP学习0:

    JSP规范介绍 来自于JAVAEE规范中一种 JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体...

  • JSP笔记

    JSP脚本:<% out.println("hello"); %> JSP申明:<%! int i = 0; %>...

  • 【JSP】jsp学习笔记

    0x01 jsp的指令标签 <%@page %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等。<...

  • JSP介绍与语法-java之JSP学习第一天(非原创)

    文章大纲 一、JSP 简介二、JSP 生命周期三、JSP 语法四、学习资料下载五、参考文章 一、JSP 简介 1....

  • 安徽翻译专业资格口译考试收费标准核定 每生每科90元+

    http://www.ahpc.gov.cn/pub/content.jsp?newsId=35D0BEE0-BA...

  • JavaWeb之 JSP

    JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! page -- 最复杂 pageEncoding和...

  • J2EE——之JSP篇

    本篇知识点 静态网页与动态网页 JSP工作原理及具体学习 了解了servlet,接下来进入学习jsp,jsp其实就...

  • JSP学习

    JSP的静态包含和动态包含区别 静态包含语句:<%@ include file="路径" %> 动态包含语句:

  • JSP学习

    emmm总的来说,我python还没学会,为啥开始学java了呢算了学吧 一、JSP和Severlet区别 参考知...

  • Jsp学习

    引入 Servlet的作用:用JAVA语言开发动态资源的技术。 JSP的作用: 用java语言+Html语言开发动...

网友评论

      本文标题:JSP学习0:

      本文链接:https://www.haomeiwen.com/subject/igednktx.html