JSP第四天

标签具有的信息:
 1 定义标签库的书写规范的文档--tld
 2 标签处理类

自定义标签:
 1 编写tld文档,定义标签书写规范
 2 编写标签处理类 ,集成SimpleTagSupport,覆盖其中的doTag方法。
 如果标签有属性,则在处理类中需要提供同名的私有属性,
 及其对应的set方法
 3 将标签定义文档配置给web容器
 web.xml
  <jsp-config>
   <taglib>
    <taglib-uri>http://yangxp.king.com.cn</taglib-uri>
    <taglib-location>/WEB-INF/yangxp.tld</taglib-location>
   </taglib>
  </jsp-config>
  

<yangxp:sayHello name="mary"></yangxp:sayHello>
==>
Hello!mary

PrintWriter: servlet--->页面
JspWriter  :  jsp--->[servlet--->]jsp
 
 1 <yangxp:sayHello name="mary"></yangxp:sayHello>

 --------------------------------------------------------------------
 直接输出信息:
  JspWriter out = this.getJspContext().getOut();
  out.println(....);
 --------------------------------------------------------------------


 2 <yangxp:forEach begin="" end="" step="">
  hehe
 </yangxp:forEach>

 --------------------------------------------------------------------
 JspFragment info = this.getJspBody();
 info.invoke(null);
 获取标签体的内容信息,将信息封装在JspFragment对象中
 JspFragment调用其invoke方法,是将内部封装的信息传递给参数中的流输出
 如果参数为Null,则默认传给JspWriter输出,即原样输出到页面中

 --------------------------------------------------------------------

 3 <yangxp:convert type="lower">
  Hello!HeHe
 </yangxp:convert> 

 --------------------------------------------------------------------
 JspFragment info = this.getJspBody();
 //创建一个将信息输出到临时内存的流
 StringWriter out = new StringWriter();
 //将JspFragment中封装的标签体信息,传递给StringWriter内部的缓存中
 info.invoke(out);
 //将缓存中的信息取出来
 String str = out.toString();
 //对信息再加工
 ...
 //将加工之后的信息输出到页面中
 this.getJspContext().getout().println(...);
 --------------------------------------------------------------------

 

反射:
 C --show(){
  A a= new A();
  a.show();
 }
 A --show(){
  B b = new B();
  b.show();
 }
 B --show()

 String classPath = "com.sinojava.stuMgmt.web.servlet.AddServlet"
 new classsPath();
 
 tomcat--->web程序

 Class.forName("oracle.jdbc.driver.OracleDirver"); --反射
  特点:
   在被调用信息开发完成之前,即可开发调用者的流程

 new oracle.jdbc.driver.OracleDirver();    --普通创建对象方式
  缺陷:
   调用着必须依赖于被调用者开发完成之后才能开发
 
 1
 class AddTest{
  public int add(){
   System.out.println(2);
  }
 }
 2
 class Test{
  public void show(){
   AddTest a = new AddTest();
   a.add();
  }
 }

 什么是面向对象:
  万物皆对象
  相对面向过程:
   
  各司其职

 类---》对象

 张三 李四---》学生类
       -----》人类
 陈彦年 老徐-》老师类
     ---》生物类
 小白  ---》狗类
       -----》动物类
 咪咪 ---》猫类

 ---------------------------------------------------------------
 类中包含信息:  ---》Class 类的抽象概念
  属性  ---》Filed 属性的抽象概念
  方法  ---》Method方法的抽象概念
  构造方法 ---》Constructor构造方法的抽象概念
 ---------------------------------------------------------------  
 
 反射机制的运行流程:
 1 将字符串表示的类路径加载到jvm中
 2 获取调用类的构造方法类
 3 使用构造方法类创建对象
 4 获取调用类中的方法类
 5 使用对象调用方法

E:/Tomcat/apache-tomcat-5.5.12/webapps/stuMgmt/WEB-INF/classes/com/sinojava/stuMgmt/web/control/ControllerServlet
==>../../../../../../config.xml
E:/Tomcat/apache-tomcat-5.5.12/webapps/stuMgmt/WEB-INF/config.xml

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值