property--name--id-这三者在值传递的过程中的实现关系
链接:https://www.zhihu.com/question/286739416/answer/454300180
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
jsp可以看作一个页面渲染引擎(类比freemark) 那一套页面语法(包含内置对象,页面脚本,el,标签库)最终会被jsp引擎解析为一个servlet类.
在渲染jsp页面的时候 Jsp引擎调用对应的JspTag类(tld文件里关联的)题主所说的useBean 就是在这时候被处理.
具体实现大致像下面这样
- 标签处理类
/*
每当容器解析页面中的每一个 UsebBean时,都会创建一个此类的实例。
*/
public class UsebBean implements SimpleTagSupport{
private String id;
private Class<?> class;
private String scope;
@Override
public void setJspContext(JspContext pc) {
pageContext = (PageContext) pc;
if("request".equals(scope))
pageContext.getRequest().setAttribute(id,)
else if("session".equals(scope))
pageContext.getSession().setAttribute(id,)
else
//省略...
}
//省略其他方法...
}
- tld文件里配置 标签与标签处理类 的对应关系
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<display-name>MyTag Core</display-name> <!-- 标签库名称 -->
<short-name>Light</short-name> <!-- 建议的标签库前缀 -->
<uri>http://www.xx.com/mytag</uri>
<tag>
<name>UsebBean</name>
<tag-class>xx.xx.UsebBean</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>id</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>scope</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>class</name>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
- jsp页面里使用标签
<%@ taglib prefix="jsp" uri="http://www.xx.com/mytag" %>
<!--
渲染时由jsp引擎创实例化UseBean(通过tld文件找到)并调用setJspContext(),并传入PageCnntext对象
-->
<jsp:UseBean id="jack" scope="request" class="xx.xx.XX">
property--name--id-这三者在值传递的过程中的实现关系的更多相关文章
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- Java中没有引用传递只有值传递(在函数中)
◆传参的问题 引用类型(在函数调用中)的传参问题,是一个相当扯的问题.有些书上说是传值,有些书上说是传引用.搞得Java程序员都快成神经分裂了.所以,我们最后来谈一下“引用类型参数传递”的问题. 如下 ...
- 为什么说java是只有值传递?
如果你学的第一门程序语言是java可能对这个传递方式没有那么敏感,如果学了c或c++,然后再学java,那么可能对这个问题会感到困惑. 1.值传递与引用传递的概念 在将传递方式之前先理解一下形参与实参 ...
- java基础 - 形参和实参,值传递和引用传递
形参和实参 形参:就是形式参数,用于定义方法的时候使用的参数,是用来接收调用者传递的参数的. 形参只有在方法被调用的时候,虚拟机才会分配内存单元,在方法调用结束之后便会释放所分配的内存单元. 因此,形 ...
- MQL4编程—值传递和引用传递
定义 简单的说就是给一个变量或者对象取一个别名(引用和被引用的共享存储单元,要用修饰符&). 引用的用法 在MQL4中通过调试只接受引用作为函数参数的用法,在函数参数传递过程中,有两种传递方式 ...
- 面试官问:Go 中的参数传递是值传递还是引用传递?
一个程序中,变量分为变量名和变量内容,变量内容的存储一般会被分配到堆和栈上.而在 Go 语言中有两种传递变量的方式值传递和引用传递.其中值传递会直接将变量内容附在变量名上传递,而引用传递会将变量内容的 ...
- [转]Python中函数的值传递和引用传递
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
- python中的值传递和引用传递
Python中的变量是没有类型的,我们可以把它看做一个(*void)类型的指针,变量是可以指向任何对象的,而对象才是有类型的. Python中的对象有可变对象(number,string,tuple等 ...
- python的值传递与引用传递
首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...
随机推荐
- 打包.NET Core的程序到一个单独的可执行文件
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:打包.NET Core的程序到一个单独的可执行文件.
- IDEA+Maven+多个SpringBoot子模块(创建多模块整合项目)
https://blog.csdn.net/willjgl/article/details/77773634 https://blog.csdn.net/qqHJQS/article/details/ ...
- CSS之背景的填充范围
1.资料:CSS2.1 进行了更正:元素的背景是内容.内边距和边框区的背景 2.也就是说背景颜色,background-color:这些会填充内边距和边框border, 而不会填充外边框margin的 ...
- PHP性能检测与优化—XHProf 数据阅读
PHP性能检测与优化—XHProf 数据阅读 一. 效果如下 请求总揽 函数调用情况 二. 参数含义 Inclusive Time 包括子函数所有执行时间 ...
- The nineteenth day
Twinkle,twinkle,little start! 闪烁,闪烁,小星星 How I wonder what you are, 我想知道你是什么 Up above the world so hi ...
- 云端基于Docker的微服务与持续交付实践
云端基于Docker的微服务与持续交付实践笔记,是基于易立老师在阿里巴巴首届在线技术峰会上<云端基于Docker的微服务与持续交付实践>总结而出的. 本次主要讲了什么? Docker Sw ...
- iPython与notebook的基本用法
1 Ipython 安装 pip install ipython 2 Notebooke 基本用法 启动ipython使用ipython 启动notebook 使用 ipython notebook ...
- TinkPHP去重统计查询
当统计一个有重复的字段可以用这个方法 $count = $model->where($map)->count('distinct(id)'); 转自 http://www.thinkphp ...
- 抓取android系统日志_记录一次定位app闪退故障
在测试android客户端兼容性时,发现app闪退,上海的小伙伴需要闪退时的系统日志:故把快生锈的adb知识拿出来show一把: 1.下载adb工具包(adb的全称为Android Debug Bri ...
- HASH JION AND NESTED JION
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sssbbbryj/article/details/27795905 关于HASH_JION的原 ...