吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1194|回复: 1
收起左侧

[Java 转载] jsp文件运算原理介绍及在JSP文件中如何书写Java命令详细操作

[复制链接]
原味西蓝花 发表于 2021-2-5 13:43
本帖最后由 原味西蓝花 于 2021-2-5 14:45 编辑

JSP规范介绍
1.来自于JAVAEE规范中一种
2.JSP规范制定了如何开发JSP文件代替响应对象将处理结果写入到响应体的开发流程
3.JSP规范制定了Http服务器应该如何调用管理JSP文件
响应对象存在弊端
1.适合将数据量较少的处理结果写入到响应体
2.如果处理结果数量过多,使用响应对象增加开发难度
JSP文件优势
1.JSP文件在互联网通信过程,是响应对象替代品.
2.降低将处理结果写入到响应体的开发工作量降低处理结果维护难度
3.JSP文件开发时,可以直接将处理结果写入到JSP文件不需要手写out.print命令,在Http服务器调用JSP文件时,根据JSP规范要求自动的将JSP文件书写的所有内容通过输出流写入到响应体
HTML文件与JSP文件区别
作为资源文件类型不同
1.HTML文件属于静态资源文件,其相关命令需要在浏览器编译并执行的
2.JSP文件属于动态资源文件,其相关命令需要在服务端编译并执行的
调用形式不同
1.如果浏览器访问HTML文件,此时Http服务器直接通过一个输出流
2.HTML文件中所有的内容写入到响应体
3.如果浏览器访问JSP文件。此时Http服务器根据JSP规范来操作JSP文件编辑-->编译-->调用
JSP文件运算原理
图片1.png
1.Tomcat根据JSP规范,将被访问的JSP文件[编辑]为一个java文件。这个Java文件是Servlet接口实现类
2.Tomcat根据JSP规范,调用JVM(javac one_jsp.java)将这个java文件[编译]为class类型
3.Tomcat根据JSP规范负责生成这个class文件的实例对象。这个实例对象是一个Servelt接口实例对象
4.Tomcat根据JSP规范通过实例对象调用class文件中_jspService方法
5._jspService方法在运行时负责将JSP文件中书写内容写入到响应体中
HttpJspBase
图片2.png
TomcatJSP文件编辑后生成的Java文件,继承与HttpJspBase。通过Apache官方文档查看其身份是HttpServlet的子类。所以TomcatJSP编辑为的文件为一个Servlet接口实现类
_jspService方法
作用:当一个JSP文件被访问时,Tomcat调用的并不是当前JSP文件。而是JSP文件对应的Servlet接口实现类中_jspService方法。_jspService方法负责将开发人员在JSP文件书写的所有内容写入到响应体中
内部结构
1.判断当前请求方式。Jsp文件可以接收的请求方式有POST,GET,HEAD
2.声明局部变量。这些局部变量都可以在JSP文件开发时直接使用
3.输出部分。这部分执行时将JSP文件内容通过输出流写入到响应体
JSP文件中如何书写Java命令
执行标记
1.命令格式
图片3.png
2.命令作用通知Http服务器将JSP文件中Java命令与其他普通执行结果进行区分
输出标记:
1.命令格式        
<%=java的变量名%>         
<%=java的表达式%>
2.命令作用通知Tomcat将输出标记中【变量的值】或则输出标记中【表达式运算结果】写入到响应体
如何将Servlet中doGet/doPost方法执行结果交给JSP文件输出
1.JSP文件被访问时,并不是JSP文件在执行。而是对应的Servlet在执行
2.自定义Serlvet接口实现类与JSP文件之间调用关系,等同于两个Servlet之间调用关系
3.自定义Servelt接口实现类与JSP文件之间可以通过重定向方案或则请求转发方案进行调用考虑到运行效率问题,一般采用【请求转发】
4.自定义Servlet接口实现类可以通过请求作用域对象将共享数据交给JSP来输出到响应体

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

落幕後 发表于 2021-2-5 15:23
想表达啥?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-2 13:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表