网站首页 > 技术文章 正文
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
有三个基本的脚本元素,作用是使JAVA代码可以直接插入servlet.
JSP脚本:
一种是声明标签,在JAVA SERVLET的类体中放入一个变量的定义。静态的数据成员也可以如此定义。
<%! int serverInstanceVariable = 1; %> (因为会被编译成成员变量,考虑到线程安全问题,一般不常用)
一种是脚本标签,在JAVA SERVLET的类的_jspService()方法中放入所包含的语句。
<% int localStackBasedVariable = 1; out.println(localStackBasedVariable); %> (会被编译到service方法内部,out.print() )
一种是表达式标签,在JAVA SERVLET的类中放入待赋值的表达式,表达式注意不能以分号结尾。
<%= "expanded inline data " + 1 %> (输出到页面将内容)
示例:
JSP注释:
对比jsp,html源码。查看注释效果:
只有html注释显示出来,jsp注释则只在jsp源码中显示,所以为了安全开发过程中尽量使用jsp注释
jsp指令:
1.page页面指令
怕个指令一般不需要更改,默认的配置足够使用。
2.include指令(包含一个页面,比较常用)
3.taglib指令
uri中a,b代表标签库地址,prefix代表前缀(区分作用)
jsp隐式对象概述
当jsp被翻译成servlet的时候,services内部有9个对象定义并被初始化,这9个对象称为隐式对象。JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。
上图有8个隐式对象被初始化,还有一个exception,只有在错误页面时候才初始化。page指令中可以设置错误页面:
关于out对象的介绍:
观察数字出现的顺序:
可见并不是按照数字顺序出现的,这是因为为了防止大量数据同时涌入浏览器,设置了缓冲区,服务器-----out缓冲区---response缓冲区-----客户端浏览器
当我们调节out缓冲区大小为0的时候,就会导致没有缓冲区,页面就会按照顺序输出。如下:
pageContext对象
pageContext是一个域对象,可以从其他作用域中获取对象,获取顺序从小到大,page---request---session---application
示例1:
示例2:直接通过findAttribute方法获取值
我们注释page作用域 再次通过此方法获取值:
猜你喜欢
- 2024-09-20 POJO与JavaBean的区别,你知道吗?
- 2024-09-20 JSP的 结构(jsp概述)
- 2024-09-20 Jsp与Servlet如何进行数据交互(jsp和servlet的各自应用范围)
- 2024-09-20 Web服务器、Web容器、servlet的联系
- 2024-09-20 为什么要放弃 JSP?(为什么要放弃喜欢的人)
- 2024-09-20 经典技术回顾和借鉴-JSP编程(jsp技术分析)
- 2024-09-20 你知道的不一定是最好的,Java学习JSP知识点总结
- 2024-09-20 Servlet 和JSP之间的关系(servlet和jsp的区别)
- 2024-09-20 Javaweb学习(五)JSP技术(jsp+java)
- 2024-09-20 jsp的实质是什么?(jsp的概念是什么)
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 564℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 508℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 465℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 445℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 442℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)