`

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] 
分享到:
评论

相关推荐

    jsp自定义标签编写的分页

    标签处理类是实现自定义标签逻辑的Java类,它处理标签的生命周期方法,如doStartTag()和doEndTag()。最后,标签库是一组自定义标签的集合,它们可以通过JSP页面引用。 在我们的例子中,"分页"自定义标签可以包含...

    struts中自定义的tag的Java类中如何获得session

    2. **编写标签库描述符文件**:即`.tld`文件,用于描述自定义标签的名称、属性等信息。 ### 二、获取`HttpSession`对象 #### 2.1 `pageContext`对象的作用 `pageContext`对象是JSP页面上下文的一个重要组成部分,...

    Java自定义分页标签

    - 使用自定义标签,设置属性如当前页码、总记录数等,标签会根据这些参数生成分页链接。 5. **实际示例** - 假设我们的标签处理类名为`PaginationTag`,TLD文件为`pagination.tld`,那么在JSP中使用如下: ```...

    JSP下 一个简单的自定义标签

    6. **自定义标签的范围**:自定义标签可以设置其变量的作用范围,例如`page`、`request`、`session`或`application`,这与JSP内置对象的范围相同。 7. **标签库**:多个自定义标签可以组合成一个标签库,通过TLD...

    Java自定义简单标签实例

    Java自定义标签是Java服务器页面(JSP)技术的一个强大特性,它允许开发者创建自定义的、可重用的组件,以增强页面的功能和可维护性。这些自定义标签可以像HTML标签一样在JSP页面中使用,但它们执行的是预定义的Java...

    JSTL 自定义标签

    **JSTL自定义标签详解** JavaServer Pages Standard Tag Library(JSTL)是用于简化JSP开发的一个标准标签库,它将常见的JSP代码片段封装成了可重用的标签,提高了代码的可读性和可维护性。在JSTL中,我们可以...

    掌握自定义jsp标签s

    2. 标签库(Tag Library):一组相关自定义标签的集合,通常以.tld(Tag Library Descriptor)文件的形式存在,用来描述标签的属性、行为等信息。 二、创建自定义JSP标签 1. 编写标签处理类(Tag Handler):这个...

    mybatis自定义分页标签

    1. **创建自定义标签库**:首先,我们需要创建一个自定义标签库的XML文件,比如`mybatispage.tld`,在这个文件中定义我们的分页标签,包括标签名、属性等信息。例如: ```xml &lt;taglib xmlns="http://java.sun....

    自定义标签 防止重复提交

    - `&lt;tag&gt;`:定义一个自定义标签,可以设置标签名、对应的Java类、属性等。 - `&lt;attribute&gt;`:定义标签的属性,包括属性名、类型、是否必须、默认值等。 - `&lt;taglib&gt;`:根元素,声明库的URI和描述。 2. **防止...

    jsp自定义标签介绍与操作实例.doc

    - **编写TLD文件**:在TLD文件中声明自定义标签,定义标签的名称、属性、事件等元数据。TLD文件是JSP容器解析自定义标签的关键。 - **部署标签库**:将标签处理程序类和TLD文件打包成JAR文件,并将其放在应用的`...

    自定义标签实现国际化

    在Java Web开发中,自定义标签(Custom Tags)是一种强大的工具,它允许开发者创建可重用的组件,提高代码的可读性和维护性。而国际化(Internationalization, 简称i18n)则是为了让应用程序能够适应不同语言和地区...

    jsp 自定义标签

    `TagSupport`类为自定义标签提供了一个基础框架,包含了一些常用的方法和属性: - `doStartTag()`:在Servlet容器遇到自定义标签的起始标记时调用,处理标签的初始化工作。 - `doEndTag()`:在Servlet容器遇到...

    完整版Java JSP web开发教程 10_自定义标签(共20页).ppt

    自定义标签遵循 `&lt;Prefix:TagFileName&gt;` 格式,使用`&lt;%@ taglib&gt;`导入,并通过标签库描述符(TLD)文件定义。 11. **JSP标准标签库(JSTL)**:JSTL提供了一组标准标签,包括使用EL和不使用EL的两组,便于实现常见...

    jsp分页查询+自定义标签

    - 在JSP页面中,引入自定义标签库,然后使用自定义标签,传入相应的属性值。 例如,一个简单的自定义分页标签可能如下: ```xml &lt;name&gt;pagination &lt;tag-class&gt;com.example.PaginationTag&lt;/tag-class&gt; ...

    java web 标签大全

    下面将详细介绍一些重要的Java Web标签。 1. JSTL(JavaServer Pages Standard Tag Library)标签库: JSTL是Java社区推荐的标准标签库,它提供了一组通用的标签,包括核心标签、XML标签、SQL标签和函数标签。例如...

    session配置secure和httpOnly

    2. `HttpOnly`属性:这个属性用于限制JavaScript等客户端脚本访问Cookie。如果设置,即使存在跨站脚本攻击(XSS),攻击者也无法通过JavaScript获取Cookie内容。但在某些场景下,如需要使用JavaScript处理Cookie的Web...

    java web标签大全

    内置对象如request、response、session等可以直接在页面中使用,指令标签如page、include、taglib用于配置页面属性或引入自定义标签库,动作标签如jsp:include、jsp:forward用于控制页面流程。 2. JSTL(JavaServer...

    tomcat-redis实现session共享

    4. **配置Tomcat**:在`$CATALINA_BASE/conf/server.xml`的`&lt;Engine&gt;`或`&lt;Host&gt;`标签内,设置`Manager`元素,指定使用自定义的`SessionManager`。例如: ```xml ``` 这里`com.yourcompany.RedisSessionManager`...

    jsp标签简介.docx

    自定义标签通常定义在一个`.tld`(Tag Library Descriptor)文件中,这个文件包含了标签的元数据,如标签名称、属性、处理类等信息。使用自定义标签库的JSP程序员可以通过`&lt;%@ taglib %&gt;`指令声明并引用这些标签库。...

Global site tag (gtag.js) - Google Analytics