- 浏览: 64285 次
- 性别:
- 来自: 北京
最新评论
-
wucaifang819787:
你好!麻烦问下不知道哪个图片行不行的:http://dl.it ...
struts2源码浅析(四) -
ChenXzh:
高手,佩服得五体投地
关于struts2报There is no Action mapped for namespace / and action name xxx_xxx
1.标记文件使用一个页面来实现标记功能,而标记处理器使用一个java标记处理器类来实现标记功能。
2.标记处理器有两种类型:传统和简单(in jsp 2.0)。
3.建立简单标记处理器时,可以扩展SimpleTagSupport,同时这个类实现了SimpleTag接口。
4.要部署一个标记处理器,必须建立一个tld,使用jstl和其他定制标记库所用的<tag>元素来描述标记。
5.如果使用一个有体的简单标记,要保证这个标记的TLD<tag>没有将<body-content>声明为empty。然后调用getJspBody().invoke()来处理体.
6.SimpleTagSupport类包括SimpleTag接口中所有的方法的实现,另外还提供了3个便利的方法,其中标个包括getJspBody(),可以使用这个方法访问标记体的内容。
7.简单标记声明周期:简单标记绝不会由容器重用,所以每次调用标记时,都会实例化标记处理器,并调用其setJspContext()方法。如果标记本身是从另一个标记中调用的,则会调用setParent()方法。如果调用标记时有属性,对于每个属性会调用一个bean式的设置方法。如果调用标记时有体,则会调用setJspBody()方法。最后,调用doTag()方法,结束时,撤销标记处理器实例。
8.只有调用标记时确实有体,才会调用setJspBody()方法。如果调用标记时没有体,不论是空标记<my:tag/>,还是开始和结束标记<my:tag><my:tag/>之间没有任何内容,都不会调用setJspBody方法。记住,如果标记有体,TLD必须反映出这一点:<body-content>的值不能是“empty”。
9.简单标记的doTag()方法可以设置标记体使用的一个属性,为此先调用getJspContext().setAttribute(),在调用getJspBody().invoke()。
10.doTag方法声明了一个JspException和一个IOException,所以可以直接写至JspWriter,而无需将其包装在一个try/catch块中。
11.通过在循环体调用体getJspBody().invoke(),可以迭代处理简单标记的体。
12.如果标记有一属性,要在tld中使用<attribute>元素声明这个属性,并在标记处理器类中提供一个类似于bean的setter方法。调用时,会在doTag之前调用这个setter方法。
13.getJspBody()方法返回一个JspFragment,它有两个方法:invoke和getJspContext,getJspContext返回一个JspContext,标记处理器可以用这个JspContext访问PageContext API。
14.如果invoke传入null,会把计算的体写至响应输出,不过,如果你想直接访问体内容,可以传入另一个Writer。
15.如果你希望当前页面停止处理,可以跑出一个SkipPageException。如果调用标记的页面包含在另一个页面中,尽管被包含的页面在抛出异常之后就停止处理,但外层页面仍会继续。
16.传统标记方法的生命周期返回值:
BodyTagSupport | TagSupport | |
doSartTag()可能返回的值 |
SKIP_BODY EVAL_BODY_INCLUDE EVAL_BODY_BUFFERED |
SKIP_BODY EVAL_BODY_INCLUDE |
实现类的默认返回值 |
EVAL_BODY_BUFFERED |
SKIP_BODY |
可以调用的次数 | 仅一次 | 仅一次 |
doAfterBody()可能返回的值 |
SKIP_BODY EVAL_BODY_AGAIN |
SKIP_BODY EVAL_BODY_AGAIN |
实现类的默认返回值 |
SKIP_BODY |
SKIP_BODY |
可以调用的次数 | 0到多次 | 0到多次 |
doEndTag()可能返回的值 |
SKIP_PAGE EVAL_PAGE |
SKIP_PAGE EVAL_PAGE |
实现类的默认返回值 |
EVAL_PAGE |
EVAL_PAGE |
可以调用的次数 | 仅一次 | 仅一次 |
diInitBody()和setBodycontent()在哪些情况下可以调用以及每个标记调用的次数 | 仅一次,而且仅当doSartTag()返回
EVAL_BODY_BUFFERED |
从不调用 |
17.简单标记和传统标记的主要区别:
简单标记 | 传统标记 | |
Tag接口 | SimpleTag(扩展JspTag) |
tag(扩展JspTag) IterationTag(扩展Tag) BodyTag(扩展IterationTag) |
支持实现类 | SimpleTagSupport(实现SimpleTag) |
TagSupport(实现IterationTag) BodyTagSupport(扩展TagSupport实现BodyTag) |
可能实现的关键生命周期方法 | doTag() |
doStartTag doEndTag doAfterBody (对于BodyTag---还有doInitBody()和setBodyContent()) |
如何写到响应输出 | getJspContext().getOut().println(不需要try/catch,因为SimpleTag方法声明了IOException) | pageContext.getOut().println(包装在一个try/catch中,因为传统标记方法没有声明IOException) |
如何从一个支持实现访问隐式变量和作用域属性 | 利用getJspContext()方法返回一个JspContext(这通常是一个PageContext) | 利用pageContext隐式变量—而不像SimpleTag那样使用一个方法。 |
如何导致体得到处理 | getJspBody().invode(null) | 从doStartTag()返回
EVAL_BODY_INCLUDE,或者如果类实现了Bodytag,则返回 EVAL_BODY_BUFFERED |
如果让当前页面停止计算 | 抛出一个SkipPageException | 从doEndTag()返回SKIP_PAGE |
发表评论
-
JAVA多线程-厕所问题
2012-11-22 11:55 1985在http://my.oschina.net/xpbug/bl ... -
第八章 最大自序列和
2012-11-01 20:29 900第八章的问题是常见的---最大自序列和 的问题 书中提 ... -
第二章 旋转字符串的思考
2012-10-26 16:09 893编程珠玑第二章旋转字符串,abcdefg向左旋转3位,变为de ... -
Mongdb的upsert出现E11000 duplicate key errors的错误分析
2012-10-25 17:36 9213昨日上线的系统,今天查日志时发现有不少E11000 dupli ... -
开源的Mongodb java client -- mango发布
2012-07-20 21:53 1886Mango ---- 一个非常简单的操作mongodb的 ... -
浅出Apache Cxf
2012-03-05 20:14 0由于业务需要,开放了系统的 Web Se ... -
struts2源码浅析(四)
2011-10-19 17:15 1595接上一篇讲了filter后,现在request到了action ... -
struts2源码浅析(三)
2011-10-19 16:50 1614接上篇http://mazhiyuan.iteye.com/b ... -
struts2源码浅析(二)
2011-10-19 16:34 2279接上一篇http://mazhiyuan.iteye.com/ ... -
struts2源码浅析(一)
2011-10-19 16:18 17861. Struts2架构图 请求首先通过Filter ... -
struts2.1权威指南-笔记
2010-12-19 22:36 11311.struts 1.x 和 struts 2.x的 ... -
Hibernate学习总结4---对象状态
2010-12-10 16:14 995session 的几个主要方法: 1,save方法和persi ... -
Hibernate学习总结3 --配置文件
2010-12-10 16:10 996如果不希望使用默认的hibernate.cfg.xml 文件作 ... -
Hibernate 学习总结一
2010-12-10 14:54 897引入: 模型不匹配(阻 ... -
HF servlet&jsp 前6章要点总结
2010-11-21 11:58 937今天有时间把前6章主要讲servlet的内容坐下总结。好了,开 ... -
jquery源码分析之属性篇
2010-11-20 20:09 1954jquery提供了一些快捷函 ... -
bean相关标准动作总结+复习
2010-11-07 23:22 7961.<jsp:useBean>动作会定义一个变量, ... -
HF servlet&jsp ---include 指令和动作元素
2010-11-07 23:02 8381.include的2种方式 include多用于网站中可重用 ... -
HF servlet&jsp 总结—无脚本的JSP
2010-11-04 18:26 8488无脚本的JSP 8.1在JSP页面使用动作元素 <js ... -
HF servlet&jsp 总结—使用JSP
2010-11-02 17:37 801初看HF系列的servlet&jsp前6章主讲的ser ...
相关推荐
**Java Servlets与JSP详解** ...总结,Java Servlets和JSP结合使用,能够构建出高效、灵活的Web应用。通过理解并熟练掌握这两者,开发者能够更好地应对各种Web开发场景,实现高效的数据处理和动态页面展示。
【标题】 "Mybatis-Servelt+JSP+Mybatis 分页实战(取PageInfo的属性完成)" 提供了一个实际的开发案例,演示了如何在Java Web应用中使用Mybatis框架进行分页处理。这个实战项目的核心是整合Servlet、JSP和Mybatis,...
Servlet和JSp分页,的一个Jar包,可以直接在EL表达式里面直接套用,内有直接使用说明
Servlet和JSP是Java Web开发中的核心技术,它们用于构建动态网页和Web应用程序。Servlet是Java编写的小型服务器端程序,负责处理HTTP请求并生成响应。而JSP(Java Server Pages)是一种视图技术,它允许开发者将HTML...
它使用了“Servlet+jsp+servlet实现”,这里的第二个“servlet”可能是指的过滤器(Filter)或者是在描述中出现了笔误,通常在Web开发中,我们用Servlet来处理HTTP请求,而JSP则是用于生成动态HTML页面。另外,...
收入了164个完整的、来自实战的Java编程实例,每个例子都有详尽的注释,全新的第二版涵盖了Java v1.3,实现了20个不同的Java API,其中包括Servelt、JSP、XML、Swing和Java2D java 网络高级编程(PDF) 介绍了网络...
最近tomcat做了负载均衡,碰到一个难题,就是上传文件的共享问题。 最后使用的解决方案是使用一个共享地址,该地址可以被多个服务器共同访问。每个服务器通过smb与共享文件进行通信。 实现上传文件到网络共享文件夹...
综上所述,"网上书店系统的JSP+Servlet+DAO实现"项目涉及了Web开发的多个核心技术,通过MVC模式组织代码,实现了用户友好的界面、高效的后台处理和灵活的数据访问。开发者可以通过学习和实践此类项目,提升在Java ...
JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签目录JSP+Servlet+Tomcat应用开发从零开始学_完整版 PDF电子书下载 带书签...
在IT行业中,Web开发是一项核心技能,而JSP(JavaServer Pages)和Servlet是Java Web开发中的重要技术。本项目是东北大学网络编程课程的一项作业,主要目标是使用JSP和Servlet来实现一个简单的登录功能。这个功能...
**JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建Web应用程序时扮演着重要的角色。在MVC(Model-View-Controller)设计模式下,JSP通常用于视图层,而Servlet则负责处理业务逻辑和...
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,...
音乐商城是一个在线平台,用于销售音乐作品...移动应用开发:包括iOS开发(使用Swift或Objective-C)和Android开发(使用Java或Kotlin)等。 大数据技术:包括Hadoop、Spark、Hive等用于处理和分析大规模数据集的技术。
【花店后台模板 jsp servlet MVC】是一种常见的Web应用程序开发框架,主要用于构建高效、可维护性强的后台管理系统。本文将详细解析这些技术及其在花店后台模板中的应用。 首先,让我们了解一下`jsp(JavaServer ...
【标题】"jsp+javaoop+servelt问卷调查系统"涉及了Web开发中的核心技术和实践。JSP(JavaServer Pages)是Java平台上的动态网页技术,用于创建交互式的Web应用程序。Java OOP(面向对象编程)是Java语言的基础,它...
总结来说,这个"Servlet实现登录"的例子展示了JavaWeb开发中基础的用户身份验证流程,涵盖了JavaBean、Servlet和JSP的使用,以及基本的安全考虑。通过这个小项目,开发者可以学习到如何构建一个简单的用户登录系统,...
servelt jjjjiejilskjefjsafsdf
【标题】"jsp+Servelt+mysql增删修改.zip"是一个针对初学者的教程,它涵盖了使用JavaServer Pages (JSP)、Servlets以及MySQL数据库进行网页开发中的基本操作,特别是增、删、改、查(CRUD)功能的实现。这个教程可能...
Servlet和JSP(JavaServer Pages)是Java Web开发中的核心技术,用于构建动态Web应用程序。它们在Web服务器上运行,提供与客户端(通常是浏览器)交互的能力,处理HTTP请求并生成响应。 **Servlet概述** Servlet是...
总之,这个"Jsp+Servlet+jdbc商城小案例"是一个全面的实战项目,可以帮助初学者巩固基础,提高对Web开发的理解,并掌握如何在实际项目中运用JSP、Servlet和JDBC技术。通过实际操作,学习者不仅可以提升编程技能,还...