JSP自定义标签

<-----温故而知新----->

JSP生命周期

  JSP页面编译后生成字节码文件,先执行_jspInit()方法,然后有请求来时,多线程调用_jspService()方法

JSP九大内置对象

  out、request、response、session、application、page、pageContext、exception、config

  out对象(常用方法):

  

   request对象(常用方法):

  

  

    表单提交时设置编码:request.setCharacteEncoding("UTF-8");

    URL传参时设置编码:增加tomcat中server.xml的属性URIEncoding="UTF-8"

  response对象(常用方法):

    response对象具有页面域,即访问一个页面时,该页面内的response对象只对此次访问有效,其他页面的response对象对当前页面无效

  

    使用PrintWriter和out区别:getWriter()生成的对象打印总是在out对象打印之前

  请求重定向与请求转发的区别:

    重定向:response.sendRedirect()  客户端行为,本质上是两次请求,地址栏URL改变

    转发: request.getRequestDispatcher("URL").forward(req , resp);  服务器请求,一次请求,地址栏URL不变

  session对象

  (超时时间)

    生命周期:创建、活动、销毁(调用session.invalidate()方法、session过期、重启)

  application对象:实现用户间数据共享,可存放全局变量。开始于服务器启动,终止于服务器关闭。在任何地方对application对象属性的操作,都将影响其他用户对此的访问

  

  page对象(常用方法):当前jsp页面本身,类似this指针

  

  pageContext对象(常用方法):

    pageContext对象提供对JSP页面内所有对象及名字空间的访问

    pageContext对象可访问到本页所在session,也可取本页面所在application的某一属性值

  

  Config对象(常用方法):是一个Servlet初始化时,JSP引擎向它传递包括Servlet初始化所用到参数(属性名和属性值)以及服务器的相关信息(ServletContext对象)

  

  Exception对象(常用方法):异常对象,JSP页面要使用此对象,需要设置isErrorPage=true

  

include指令:

  <%@   include   file="URL"   %>

include动作:

  <jsp:include   page="URL"   flush="false">

<jsp:forward>  动作

  <jsp:forward   page="URL">  等同于 转发

<jsp:param>    动作

  <jsp:param   name="参数名"   value="参数值">

<jsp:plugin>  动作

  <jsp:plugin>

<-----温故而知新----->

 ————————————————————————————————————————————————————————————————————————

 自定义标签

1、简单的自定义标签

  ①、编写标签处理类,继承自TagSupport

  ②、定义标签库(tld)描述文件

    <tag>

      <name></name>

      <tag-class></tag-class>

      <body-content></body-content>

    </tag>

  ③、将标签库描述文件放在WEB-INF或其子目录下

  ④、在JSP页面中使用自定义标签

 2、控制是否执行标签体内容

  <body-content>empty</body-content>  //  空标签体

  <body-content>JSP</body-content>   //  允许出现JSP脚本

  <body-content>scriptless</body-content>  //  EL表达式和JSP动作

  <body-content>tagdependent</body-content>  //  自定义类解析

3、自定义标签的属性

  

  ..................不想记录了...................

4、BodyTag和BodyTagSupport类

5、SimpleTag接口详解

  SimpleTag方法:

  doTag()方法  是核心方法,用于编写标签处理逻辑

  setParent(JspTag)方法  将父标签处理器对象传递给标签处理类

  getParent()  获取当前标签的父标签对象

  setJspContext(JspContext)方法  将JSP页面的pageContext对象传递给标签处理器对象

  setJspBody(JspFragment)方法  将代表当前标签体的JspFragment对象传递给标签处理器对象

  SimpleTagSupport方法(继承SimpleTag):

  getJspContext()方法  返回代表当前页面的JspContext

  getJspBody()方法  返回代表当前页面的JspBody

6、总结

  JSP  继承          <body-content>

  1.0    TagSupport       empty、JSP、scriptless、tagdependent

  2.0    SimpleTagSupport    scriptless

原文地址:https://www.cnblogs.com/ytlds/p/8213600.html