什么是jsp?jsp的内置对象有哪些?

发布时间:2021-11-30 03:47:34

这里是修真院前端小课堂,每篇分享文从


【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】


八个方面深度解析前端知识/技能,本篇分享的是:


【什么是jsp?jsp的内置对象有哪些?】


?


?


1、背景介绍


百度百科是这么介绍jsp的:“jsp是一种动态网页技术标准。它出现的根本原因是为了简化servlet的设计,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。”


从以上的介绍可以得出,servlet是先出的,jsp是后出的。


所以,想要了解jsp,先学*一下servlet。


?

在地址栏输入"test3"访问该servlet,浏览器返回结果如下。


?

如果你右键查看网页源代码,可以看到是非常普通的HTML代码。


也就是,在servlet中,各种拼接HTML代码,最终返回给客户端一个HTML页面。

那么jsp是啥样的呢?



?


去浏览器访问的结果:


?



可以看到,jsp页面中的


<% for(int i=0; i<4;i++) {

在系统的某个路径下,你可以找到被tomcat解析成java类的jsp页面。而且一个是.class文件,另一个是java文件。

?

打开test_jsp文件看一下,发现关键的部分:


public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)


throws java.io.IOException, javax.servlet.ServletException {

final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;


try {
response.setContentType("text/html;charset=UTF-8");
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;

out.write("
");
out.write("
");
out.write("
");
out.write("
");
out.write(" 测试
");
out.write("
");
out.write("
");
out.write("
");
out.write(" ");

for(int i=0; i<4;i++) {


out.write("
");
out.write(" helloWorld!

");
out.write("
");
out.write(" ");

}


out.write("
");
out.write("
");
out.write("
");
out.write("
");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try {
if (response.isCommitted()) {
out.flush();
} else {
out.clearBuffer();
}
} catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}

}


?


注意,只有jsp是新创建或是修改后第一次访问时,jsp parser才会将其编译成servlet程序。之后调用JSDK将对应的servlet程序编译成servlet字节码。


而且,它并非是将页面本身发送给客户端,而是把页面执行的结果发送给客户端。

比如我要要访问test.jsp,然后利用Tomcat的解析器,他会将jsp文件转化为java文件,这个java文件就是servlet,

jsp的9个内置对象和4个作用域:


request 请求对象  类型 javax.servlet.ServletRequest 作用域 Request

jsp useBean 标签表示 创建一个由class属性指定的类的实例,然后把它绑定到其名字由id属性给出的变量上。

<%@ page language="java" contentType="text/html; charset=UTF-8"


pageEncoding="UTF-8"%>




JSP内置对象作用域



<%


pageVar.append("page01");
requestVar.append("page01");
sessionVar.append("page01");
applicationVar.append("page01");

%>

pageEncoding="UTF-8"%>




JSP内置对象作用域



pageVar.append("page02");
requestVar.append("page02");
sessionVar.append("page02");
applicationVar.append("page02");

%>



?



?


现在我们刷新一下页面,可以看到,page作用域变量的输出的值为page02,原本它的page01已经不见了。


request作用域的变量只在当前请求的中有效,当前的请求就是从page01到page02的一次跳转。

session作用域的变量为当前会话,也就是只要浏览器不关闭,page02能一直叠加到上去。

?



?


“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,学*的路上不再迷茫。


这里是技能树.IT修真院:http://www.jnshu.com,初学者转行到互联网行业的聚集地。"


欢迎加IT交流群565734203与大家一起讨论交流







相关资源:JSP内置对象(9个常用的内置对象)

相关文档

  • 保养指甲有什么小窍门
  • 梦想当宇航员的作文
  • spring boot实现支付宝支付
  • 冬季锻炼的好处冬天锻炼好处多
  • 尼日利亚再现脊髓灰质炎
  • 端午节趣事的话题作文素材2021
  • 中国校园安全演讲稿范文
  • paiasola防晒喷雾怎么样?paiasola防晒喷雾好用吗?
  • 财务出纳个人工作总结范文精选6篇
  • Spring JdbcTemplate实现通用的泛型dao三:构建动态sql
  • 【每日蓝桥】26、一五年省赛Java组真题“三羊献瑞”
  • 超市买的冻带鱼怎么洗
  • 体验田野生活作文
  • 藏书楼阅读练习及答案
  • powershell自定义字体
  • 数据结构与状态机
  • 确实的确字怎么写
  • 热血在边塞--------读边塞唐诗
  • 适合女生分手后听的歌_2017年适合失恋听的歌
  • 失败不放弃要坚持的名言警句70句
  • 村落
  • 《快乐数学》读后感
  • 魅族手机应用备份
  • 五年级国庆征文400字六篇
  • 淘宝直播推流什么意思
  • 首饰店店长述职报告
  • 【安全】一次完整的入侵提权实践+安全防御思考
  • AndroidManifest.xml文件配置教程及相关指令详解
  • 如何查找表格中的特定内容
  • win10 java无法运行_如何解决win10配置jdk之后javac无法运行的情况?
  • 猜你喜欢

  • 山西省曲沃二中2015-2016学年高二上学期期末考试数学(理)试卷(无答案)
  • UV树脂投资项目可行性报告(园区立项申请)
  • 2008-2017年中国湖北省高等农业院校本、专科本科毕(结)业生数(人)-教育数据
  • 杞县海超农作物种植专业合作社企业信用报告-天眼查
  • redis的主从复制,及高可用
  • 浅析油品中酸度(值)的测定
  • 公司竞聘经理演讲稿600字
  • 三国时吴国皇帝孙亮简介 孙权儿子孙亮怎么死的
  • 《河南思念食品股份有限公司个性化培训课程》合集
  • 教育最新K12山东省惠民县第二中学2018-2019学年高一英语上学期第一次月考试题
  • 山东省2016年瑟肽曜⒉岢鞘泄婊?Γ壕幼∏??蚬婊?杓瓶际允蕴
  • 2019-2020学年高中物理 第十七章 波粒二象性 17.4 概率波 17.5 不确定性关系检测 新人教版选修3-5
  • 复合肥市场整体*稳 后市或价格坚挺
  • 取汉字拼音首字符的Function
  • 简约风旅游画册PPT模板
  • 《对外经贸学院学术研讨会优秀论文选集》格式要求
  • 魅力中考满分作文
  • 大班幼儿教师演讲稿
  • 开放与制约的和谐高考作文题目解析
  • 人教版B版高中数学选修1-2:流程图_课件3
  • 【语文专题推荐】小学语文考点综合复*小升初模拟试卷III卷
  • 广东省肇庆市实验中学高中生物必修2:第三章基因的本质(第一课时)教案
  • 县接待办领导班子述职述廉报告
  • 西昌泸海通讯设备有限公司企业信用报告-天眼查
  • 实时超声弹性成像应变率比值鉴别乳腺肿块性质的价值
  • 《如何成为一名优秀员工》培训有感.doc
  • 西双版纳州2019年中考数学试题及答案
  • 综合管理制度(2017年9月9日).docx
  • 计算机文化基础PPT课件_第4章_Excel_2000电子表格处理软件
  • 南京泰强建筑加固工程有限公司绵阳分公司企业信用报告-天眼查
  • 皮肤金属过敏 什么是金属过敏?
  • 我家的绿萝几年不长藤为什么
  • 专题01 论述类文本阅读-2019年高考真题和模拟题分项汇编语文 Word版含解析
  • 地下水动力学_第一讲
  • 苏教版小学语文五年级上册生字词语组词汇总
  • 350字给学校校长的建议书作文范文
  • 我在幻想_初二作文
  • 内存泄漏的问题如何解决(linux)
  • 创建脚本文件
  • 泸西县龙腾经贸有限公司(企业信用报告)- 天眼查
  • 拆除的通告怎么写
  • 幼儿园财务工作总结汇报
  • 电脑版