为了账号安全,请及时绑定邮箱和手机立即绑定

JSP自定义标签

难度初级
时长 1小时55分
学习人数
综合评分9.70
52人评价 查看评价
9.9 内容实用
9.8 简洁易懂
9.4 逻辑清晰
  • JSP自定义标签——TagSupport之控制是否执行标签结束后的内容 需要重写doEndTag方法,该方法一般默认返回EVAL_PAGE EVAL_PAGE:是告诉WEB容器接着执行自定义标签后面的代码 SKIP_PAGE:就是忽略自定义标签结束后的内容 Ps1:需要通过pageContext得到request对象(HttpServletRequest),通过request得到getHeader("referer")(属于http请求头的属性),作用:通过该属性判断客户是从哪个页面链接过来的,只有通过超链接和表单提交的方式该属性才会有效。比如:防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。 Ps2:通过request.getServerName()获得服务器的URL,和上边getHeader("referer")进行比较判断是否是自己的网站。 判断字符串是否以某个子字符串开头。比如字符串“abcdefg”.startWith("abc") 判断结果是true,因为它是以 abc 开头的。
    查看全部
  • JSP自定义标签——开发第一个自定义标签 Ps:第一步:创建一个类LoginDateTag继承TagSupport类,并重写doStartTag方法,在这个方法里写上在jsp中的java代码,并用pageContext.getOut().print(dateStr);输出结果。pageContext.getOut()会得到一个输出流。 Ps:第二步:在WEB-INF下创建一个后缀名为tld的文件。这是一个标签库文件,我们所定义的标签都要在这里进行注册。这个tld文件可以在C:\apache-tomcat-7.0.68\webapps\examples\WEB-INF\jsp2中找到一个示例的文件,这个文件内容比较多,我们拷贝出对我们有用的部分。 Ps:第三步:在jsp中如何使用该标签呢?打开logininfo.jsp,在开头引入:<%@ taglib prefix="imooc" uri="/imooc-tag" %>。 结论:这样,jsp页面清爽很多,并没有多余的java代码。那它的执行过程,可以这样理解:jsp页面在被jsp引擎解析时,当碰到页面中自定义的标签时,会通过页面中的uri,就是<%@ taglib prefix="imooc" uri="/imooc-tag" %>中的uri的地址,去查找标签库文件,根据标签库文件再去查找自定义标签的处理类,也就是这个地方:<tag-class>com.imooc.tag.LoginDateTag</tag-class>,当jsp引擎处理到开始标记时,系统就会自动的调用类LoginDateTag中的doStartTag()方法。我们可以在这个方法上写入相应的业务处理逻辑。这里的标签实例是线程安全的,也就是每执行一次标签,都会生成一个新的对象。
    查看全部
  • JSP自定义标签——BodyTag接口和BodyTagSupport类 II 附加:JSP引擎是什么?是什么工作原理? 1、JSP引擎: 执行JSP代码需要在服务器上安装JSP引擎,比较常见的引擎有WebLogic和Tomcat。把这些支持JSP的web服务器配置好后。就可以再客户端通过浏览器来访问JSP页面了。 2、JSP引擎的工作原理: 当一个JSP页面第一次被访问的时候,JSP引擎将执行以下步骤: (1)将JSP页面翻译成一个Servlet,这个Servlet是一个java文件,同时也是一个完整的java程序 (2)JSP引擎调用java编译器对这个Servlet进行编译,得到可执行文件class (3)JSP引擎调用java虚拟机来解释执行class文件,生成向客户端发送的应答,然后发送给客户端 以上三个步骤仅仅在JSP页面第一次被访问时才会执行,以后的访问速度会因为class文件已经生成而大大提高。 Ps:当JSP引擎街道一个客户端的访问请求时,首先判断请求的JSP页面是否比对应的Servlet新,如果新,对应的JSP需要重新编译。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • JSP自定义标签——TagSupport之自定义标签中的迭代 III Ps:注意setAttribute("var",...);第一个参数这里应该是var,而不是name写死。(前提:private String var;) 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • JSP自定义标签——TagSupport之自定义标签中的迭代 II 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • JSP自定义标签——TagSupport之自定义标签中的迭代 I Ps:当我们再次刷新jsp页面的时候呢,这里只会取到第一个元素也就是下标为0的元素,这是由于tomcat对自定义标签运用了缓存的技术,后面我们会介绍一种更好的办法来替代它。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 根据老师所写的,优化了一下代码:


    https://img1.sycdn.imooc.com//5bf904fb000148c810010582.jpg

    https://img1.sycdn.imooc.com//5bf904fb000154e909950505.jpg

    https://img1.sycdn.imooc.com//5bf904fc0001041709070928.jpg

    https://img1.sycdn.imooc.com//5bf904fd0001da9907290563.jpg

    https://img1.sycdn.imooc.com//5bf904fd0001e9d710510773.jpg


    查看全部
  • 自定义标签的继承结构

    查看全部
  • IterationTag继承了Tag接口,除了拥有Tag接口的常量和方法之外呢, 它还增加了doAfterBody()方法和EVAL_BODY_AGAIN常量。 从这个接口的名称上呢,可以看出它提供了对代码循环的功能, 如果doAfterBody()方法向WEB容器返回了EVAL_BODY_AGAIN, WEB容器会把这个标签体的内容再执行一次,执行完之后再次执行, 直到doAfterBody()方法返回SKIP_BODY,容器才会开始处理标签的结束 标记,和调用doEndTag这个方法。 TagSupport是IterationTag的实现类,所以在实际的开发中, 可以继承该类,而简化自定义标签的处理类的开发 而后来看BodyTag这个接口,这个接口继承了IterationTag 并且增加了两个方法,setBodyContent(BodyContent b) doInitBody() 和一个常量 EVAL_BODY_BUFFERED 而EVAL_BODY_TAG是一个已经过时的常量 EVAL_BODY_BUFFERED可以对标签体的内容进行修改, BodyTagSupport实现了BodyTag的接口,它可以简化开发, 接下来看一下SimpleTag,这个接口是为了简化自定义标签的开发 在jsp2.0规范中,所新增加的接口,这里蛀牙看doTag这个方法, 该方法会在执行自定义标签时会被调用,并且只会被调用一次, Tag接口及其子接口所提供的功能呢,在doTag这个方法中,都可以完成, 它有一个实现类SimpleTagSupport,我们平时使用最多的就是 SimpleTagSupport类
    查看全部
  • JSP自定义标签——SimpleTag接口详解 一、什么是标签处理器?就是标签处理类——java文件。 二、SimpleTag接口提供方法:在源码中可以看到SimpleTag接口有5个方法, 1、doTag()方法是核心方法,我们可以将所有的标签处理逻辑都写在这个方法中,这个方法会抛出一个JspException,然后我们可以通过这个异常通知WEB容器,不再执行此标签后面的内容。 2、setParent(JspTag),这个方法呢,由WEB容器所调用的,是将父标签处理器对象传递给标签处理器。 3、getParent()是获取当前标签的父标签对象,比如在标签嵌套时,可以用此方法得到当前标签的父标签。 4、setJSPContext(JspContext)这个方法也是由容器调用的,这个方法是将JSP页面中的pageContext对象传递给标签处理器对象。 5、setJspBody(JspFragment)这个方法也由web容器调用,意思是将代表当前标签体的JspFragment对象传递给标签处理器对象,这里的参数可以理解为标签体的内容。 注意:JSP引擎在处理简单标签的标签时,会将标签体中的内容封装到JspFragment这个参数中,并调用setJspBody(JspFragment)将该对象传递给标签处理器,我们就可以根据需求来控制是否输出标签体或者循环标签体。 三、来看下JspFragment的源码:它是一个抽象类,有一个invoke(Writer)这个方法。这个方法用于执行JspFragment对象所代表的代码段,也就是说,我们要在标签体中输出一段话,我们可以用invoke(Writer)这个方法中的参数是一个输出流,使用这个方法就可以将我们想要输出的数据输出到JSP页面中,getJspContext()这个方法用于返回代表JSP页面的JspContext对象。getJspBody()返回代表标签体的JspFragment对象。也就是标签体的内容。
    查看全部
  • JSP自定义标签——总结 一、自定义JSP标签功能大致分为4类: 1.控制表前提内容是否显示。 2.控制标签结束后的内容是否执行。 3.控制标签体内容是否重复执行。 4.改变标签体内容在显示。 二、自定义标签类的结构: 1.传统标签: 传统标签属于jsp1.0规范,需要继承TagSupport类,实现复杂,body-content 可以有jsp类型,既可以在jsp页面出现java代码。 2.简单标签: 简单标签属于jsp2.0规范,需要继承SimpleTagSupport类,body-content不可以有jsp类型,只可以有scriptless类型,即不可以在jsp页面出现java代码,因为jsp2.0规范就是为了消除jsp页面出现java代码的情况。 三、自定义标签的创建过程:创建标签-->在WEB-INF中或者子目录中创建标签库文件-->在标签库中注册标签-->在页面中引入标签库-->在页面中使用标签。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
    1 采集 收起 来源:课程总结

    2018-03-22

  • JSP自定义标签——SimpleSupport案例7 V 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • JSP自定义标签——SimpleSupport案例7 IV 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • JSP自定义标签——SimpleSupport案例7 III 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • JSP自定义标签——SimpleSupport案例7 II 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
学习本门课程前需要对Java Web的基础知识有所了解,并会使用JSP的标准标签库。
老师告诉你能学到什么?
1、什么是自定义标签 2、如何实现自定义标签及应用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!