zoukankan      html  css  js  c++  java
  • 2阶——jsp EL 与 自定义标签

     

     EL表达式

       ${pageContext.request.contextPath}

             5.1 EL作用(替代 <%= %>

     

    语法:

     

                       ${变量}

                       3.1 输出普通字符串: ${name}

                       3.2 输出对象属性:  ${student.name}  注意: .name 相当于  .getName()方法

                       3.3 输出List集合:   ${list[0].name }   注意: [0]  相当于 get(下标)方法

                       3.4 输出map集合:  ${map[key].name}  注意: [key]相当于getkey)方法

                                 例如:session.setattrbue(“mp”,map)   ${mp.gender}   或者 ${mp["gender"]}     格式 ${域对象中的键.map中的键}

     

     

     

                       EL表达式作用:向浏览器输出域对象中的变量值或表达式计算的结果!!!

     

     

     

                       语法: ${变量或表达式}

     

      

    2 自定义标签

    2.2 第一个自定义标签开发步骤

                                1)编写一个普通的java类,继承SimpleTagSupport类,叫标签处理器类

     

    核心代码PageContext pageContext = (PageContext)this.getJspContext();
    HttpServletRequest request =(HttpServletRequest) pageContext.getRequest();

                                        

     

    2)在web项目的WEB-INF目录下建立itcast.tld文件,这个tld叫标签库的声明文件。(参考核心标签库的tld文件)

     

    <?xml version="1.0" encoding="UTF-8" ?>

    <taglib xmlns="http://java.sun.com/xml/ns/javaee"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"

        version="2.1">

      <!-- 标签库的版本 -->

      <tlib-version>1.1</tlib-version>

      <!-- 标签库前缀 -->

      <short-name>itcast</short-name>

      <!-- tld文件的唯一标记 -->

      <uri>http://gz.itcast.cn</uri>

      <!-- 一个标签的声明 -->

      <tag>

        <!-- 标签名称 -->

        <name>showIp</name>

        <!-- 标签处理器类的全名 -->

        <tag-class>gz.itcast.a_tag.ShowIpTag</tag-class>

        <!-- 输出标签体内容格式 -->

        <body-content>scriptless</body-content>

      </tag>

    </taglib>

     

                      

    3)在jsp页面的头部导入自定义标签库

                                             <%@taglib uri="http://gz.itcast.cn" prefix="itcast"%>

     

                       4)在jsp中使用自定义标签

                                                   <itcast:showIp></itcast:showIp>

     

     

     

     

     

     

    2.4 自定义标签处理器类的生命周期

                                SimpleTag接口:

                                         void          setJspContext(JspContext pc)  --设置pageContext对象,传入pageContext(一定调用)通过getJspCotext()方法得到pageContext对象

     

                                         void          setParent(JspTag parent)  --设置父标签对象,传入父标签对象,如果没有父标签,则不用此方法。通过getParent()方法得到父标签对象。

     

                                         void     setXXX()             --设置属性值。

                                         void          setJspBody(JspFragment jspBody) --设置标签体内容。标签体内容封装到JspFragment对象中,然后传入JspFragment对象。通过getJspBody()方法得到标签体内容。如果没有标签体内容,则不会调用此方法

     

                                         void          doTag() --执行标签时调用的方法。(一定调用)

         2.5 自定义标签的作用

                                1)控制标签体内容是否输出

                                This.getjspbody().invoke(null) 可以输出标签体的内容

                                2)控制标签余下内容是否输出

                                Throw new SkipPageException();

                                3)控制重复输出标签体内容

                 For循环控制输出的次数

                                4)改变标签体内容

                                StringWriter sw = new StringWriter();

                                This.getJspbody().invoke(sw);

                                String str = Sw.tostring();  取出标签体的内容

                                String Str3 = Str.tolowerCase() 改变标签体的内容

                                This.getjspcontext().getout().writer(str3) 输出新的标签体内容

     

    坚持
  • 相关阅读:
    周末、广州、WEB安全测试实战训练
    WEB安全测试实战训练周末精品班课程圆满结束!
    常用渗透性测试工具
    大家还在迷信工具么?
    团购网站安全性普遍堪忧
    网页安全漏洞检测 隐藏字段
    用ModSecurity+PhantomJS进行服务器端XSS攻击检测
    关于HP WebInspect 9.1
    AQA(www.AutomationQA.com)开始连载《Web Security Testing Cookbook》学习笔记
    从团购网的漏洞看网站安全性问题
  • 原文地址:https://www.cnblogs.com/gaoSJ/p/12928765.html
Copyright © 2011-2022 走看看