从零开始学JAVA记录(JSP)——2019年6月11日

今天又是一个学习JAVA的好日子!
JSP:Java Server Page
SUN 公司提供的动态网页编程技术,是 Java Web 服务器端的动态资源。
它相比 html 而言,html 只能为用户提供静态数据,而 Jsp 技术允许在页
面中嵌套 java 代码,为用户提供动态数据。
相比 servlet 而言,servlet 很难对数据进行排版,而 jsp 除了可以用 java
代码产生动态数据的同时,也很容易对数据进行排版。

注释
在 JSP 中支持两种注释的语法操作,
一种是显示注释,这种注释是允许客户端看见的;
另一种是隐式注释,此种注释是客户端无法看见的
① 显示注释语法:从 HTML 风格继承而来
② 隐式注释语法:从 JAVA 风格继承;JSP 自己的注释
JSP 的三种注释方式:
1) // 注释,单行注释 /* 多行注释*/
2)< !-- HTML 风格的注释 -->
3)<%-- JSP 注释 --%>

Scriptlet
第一种:<% %>: java 脚本段,可以定义局部变量、编写语句
第二种:<%! %>:声明,可以定义全局(成员)变量、方法、类
第三种:<%= %>:表达式,数据一个变量或具体内容

include 静态包含
<%@ include file=”要包含的文件路径”%>相对路径
<%@include file=“include.jsp”%>

<%@include file=“include.html”%>
特点:
只会生成一个源码文件,相当于直接将内容拷贝进来,所以不能有同名变量。
运行效率高一点点。耦合性较高,不够灵活。

include动态包含
语法:<jsp:include page=“要包含的文件路径”></jsp:include>
page属性支持表达式去取值
特点:
生成多个源码文件,相当于方法的调用,可以有同名变量。
耦合度低,比较灵活,效率高。

注:
1、< jsp:include>双标签之间不能有任何内容(除非有参数)
Expecting “jsp:param” standard action with “name” and “value” attributes
2、动态包含可以传递参数
<jsp:param name=“参数名” value=“参数值”/>
获取参数使用:request.getParameter(name)
value属性支持表达式,name属性不支持

EL 表达式
EL 语法和使用
语法结构: ${expressio}
EL 表达式一般操作的都是域对象中的数据,操作不了局部变量。域对象的
概念在 JSP 中一共有四个:pageContext, request, session, application;范围依次
是,本页面,一次请求, 一次会话,整个应用程序。而 EL 默认的查找方式为
从小到大查找,找到即可。当域对象全 找完了还未找到则返回空字符串””。
当需要指定从某个特定的域对象中查找数据时可以使用四个域对象对应的
空间对象,分别是:pageScope, requestScope, sessionScope, applicationScope。
${ request.user.id} //在request域中获取user对象的id属性

JSP 中有九个内置对象
在这里插入图片描述
验证各个属性范围的特点
page: 本页面取得服务器端跳转()后无效
request : 服务器跳转()有效,客户端跳转(超链接)无效
如果是客户端跳转,则相当于发出了两次请求,那么第一次的请求将不存在了
如果希望不管是客户端还是服务器跳转,都可以保存的话,就需要继续扩大范围。
session : 无论客户端还是服务器端都可以取得,但是现在重新开启一个新的浏览器,则
无法取得之前设置的 session 了,因为每一个 session 只保存在当前的浏览器当中,并在相关的页面取得
pplication : 所有的 application 属性直接保存在服务器上,所有的用户(每一个 session)
都可以直接访问取得
只要是通过 application 设置的属性,则所有的 session 都可以取得,表示公共的内容,
但是如果此时服务器重启了,则无法取得了,因为关闭服务器后,所有的属性都消失了,所以需要重新设置。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值