`

java自定义标签获得session等一些属性

 
阅读更多
自定义标签的主要接口类
     TagSupport            使用最为频繁的类,可设置属性。
     BodyTagSupport     可以处理body体部分的内容,使用不是很多。
     SimpleTagSupport   简单标签实现类,是JSP2.0以后添加的新类,可以快速开发自定义标签。

JspTag接口:
     所有的标签处理类,都要实现JspTag接口。这个接口只是一个标识接口,它里面没有定义任何方法。

Tag接口:定义了所有传统标签处理类要实现的基本方法。
     setPageContext(PageContext ctx)由Servlet容器调用。向当前的标签处理类传递当前PageContext对像。
     setParent(Tag t) – 由Servlet容器调用此方法,向当前Tag对象传递父标签的Tag对象。
     doStartTag() – 当遇到标签体开始标记时执行的方法,需要用户实现。
     doEndTag() – 当遇到标签体结束标记时执行的方法。需要用户实现。


     其中doStartTag和doEndTag方法都要求用户返回一个int类型的值,此值决定标签的后续部分如何处理。
          doStartTag的两个返回值是:
               Tag.SKIP_BODY:表示标签的主体部分将被忽略。
                    If the TagLibraryDescriptor file indicates that the action must always have an empty action, by an <body-content> entry of "empty", then the doStartTag() method must return SKIP_BODY.
               Tag.EVAL_BODY_INCLUDE:表示标签的主体部分将被正常执行。
                    Otherwise, the doStartTag() method may return SKIP_BODY or EVAL_BODY_INCLUDE
          doEndTag的两个返回值是:
               Tag.SKIP_PAGE:表示停止标签后面的JSP代码的执行。
               Tag.EVAL_PAGE:表示按正常顺序执行标签的后续JSP代码。

获得session方法1: 自定义标签与spring注入http://tcrct.iteye.com/blog/258657
public class Options extends RequestContextAwareTag{

  public int doStartTagInternal() throws JspTagException {
      JspWriter out = pageContext.getOut(); // 重要
     StringBuffer sb = new StringBuffer();
     try {
    
       sb.append(createHtml());
   
       out.print(sb.toString());

      } catch (Exception e) {
      e.printStackTrace();
  }

  return EVAL_PAGE; // 表示处理完标签后继续执行以下的JSP网页
  // return SKIP_PAGE; //表示不处理接下来的JSP网页
 }

   public string createHtml(){
        ...........
       JdbcTemplate jdbc = (JdbcTemplate)this.getRequestContext().getWebApplicationContext().getBean("jdbcTemplate");
    ...............
  }

}

直接使用变量pageContext


获得session方法2:
 
public class PerssionTag extends SimpleTagSupport{
      ......
      PageContext page = (PageContext) this.getJspContext();
      ......
}


获得session方法3:
1.继承TagSupport, 或者Tag
2.定义private PageContext pageContext;
3.实现Tag接口的方法:
public void setPageContext(final javax.servlet.jsp.PageContext pageContext) { 

this.pageContext=pageContext; 

} 


JSP容器通过上面的方法调用标签,而且上面的方法用来设置标签的PageContext

pageContext.getOut();// 获取JSP页面的输出流 out 
  pageContext.getRequest();// 获取JSP页面的请求对象 request 
  pageContext.getSession();// 获取JSP页面的会话对象 session 
  pageContext.getServletContext();// 获取JSP页面的应用对象 application[Page] 
分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    JAVA上百实例源码以及开源项目源代码

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第二部分详细讲解了jsf ri、jta、jndi、rmi、jms、javamail、ejb 3的session bean、message driven bean、jpa、jax-ws 2、jaas等java ee知识,这部分知识以jsf+ejb 3+jpa整合开发为重点,通过使用netbeans ide工具...

    Java语言基础下载

    自定义标签 613 标准标签的使用 618 内容总结 621 独立实战 622 第三十章:struts入门 623 学习目标 623 Struts简介 624 什么是应用框架 624 WEB框架所要解决的问题 625 建立简单的Struts应用 627 内容总结 636 独立...

    java 面试题 总结

    SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。 对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上...

    Java EE常用框架.xmind

    Java EE常用框架 WebService 介绍 基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用 术语 XML. Extensible Markup Language -扩展性标记语言 WSDL – ...

    Java Web程序设计教程

    3.4自定义标签库 51 3.5预处理用户请求:filter 53 3.6使用listener 56 3.7项目实战——用户登录 59 本章小结 62 课后练习 63 第4章sql与jdbc 64 4.1sql 64 4.1.1sql概述 64 4.1.2ddl与dml简介 64 4.1.3...

    java面试题

    答:运行时异常时(JVM)java虚拟机在运行过程中发生的问题,比如:内存溢出等问题。这类异常没法要求程序员去一一捕获并抛出,一般异常是Java类库或程序员自己写的代码发生的错误,这类异常可以由我们去一一捕获并...

    超级有影响力霸气的Java面试题大全文档

    SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。  对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器...

    LxAjaxFrame

    简单来说,这套框架 就是用于在JSP页面与后台JAVA类直接通讯的框架,现在只支持String没...如果你想在自己写的类里面使用request,response,session等web参数 则需要注册的类 继承WebPage类 如需源代码 QQ:466253283

    JSP高级编程

    本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...

    深入浅出Struts2(附源码)

    5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 5.10 checkbox标签 67 ...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 5.10 checkbox标签 67 5.11 list...

    Java/JavaEE 学习笔记

    Java/JavaEE 学习笔记 作者在杰普学习时的学习笔记,是J2ee初学者必备手册,是大家学习J2EE开发的很好的参考笔记。 Java/JavaEE 学习笔记 内容目录: Unix 学习笔记..........7 一、Unix前言............7 二、...

    低清版 大型门户网站是这样炼成的.pdf

    7.6.2 文本新闻列表分页控制自定义标签类textnewspagetag 502 7.6.3 图片新闻列表自定义标签类picnewstag 505 7.6.4 幻灯片新闻列表自定义标签类slidenewstag 507 7.6.5 struts2与ajax完全结合实现点击数加一 510...

    JAVA程序开发大全---上半部分

    以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、Spring等主流框架的各种Java应用程序。...

    Java开发技术大全 电子版

    Java开发技术大全 电子版 第1篇Java基础知识入门. 第1章Java的开发运行环境2 1.1Java的运行环境与虚拟机2 1.2Java的开发环境4 1.2.1JDK的安装4 1.2.2如何设置系统环境变量6 1.2.3编译命令的使用8 1.2.4解释...

Global site tag (gtag.js) - Google Analytics