我来我网
https://5come5.cn
您尚未
登录
注册
|
菠菜
|
软件站
|
音乐站
|
邮箱1
|
邮箱2
|
风格选择
|
更多 »
vista
鍙よ壊涔﹂
card
wind
绮夌孩濂抽儙
帮助
统计与排行
无图版
我来我网·5come5 Forum
»
电脑技术
»
程序员之家
»
编写 纯HTML jsp应用--学会使用 JSTL
交 易
投 票
本页主题:
编写 纯HTML jsp应用--学会使用 JSTL
显示签名
|
打印
|
加为IE收藏
|
收藏主题
|
上一主题
|
下一主题
2004
∷
性别:
∷
状态:
∷
等级:
品行端正
∷
发贴:
222
∷
威望:
0
∷
浮云:
1107
∷
在线等级:
∷
注册时间: 2006-09-25
∷
最后登陆: 2011-10-25
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
prolong
/pr
ə
'lo
ŋ
/
vt. 延长,拉长,拖延
]
编写 纯HTML jsp应用--学会使用 JSTL
刚开始学JSP的时候,往往把JSP代码和HTML代码一起编写,写简单的程序的时候,感觉这种方法挺好的~~
因为简单而且不用配置什么东西。可后来代码渐渐多起来,感觉修改代码的时候好吃力,眼睛都看晕了还找不出什么错误。真是一种愚蠢的方法!这种方法和ASP、PHP差不多。而JSP诞生之日,就和ASP、PHP划清界限了:
使用javaBean、Servlet可以有效的将HTML中夹杂的java 代码段剥离,然后包装成一个可在多个页面复用的“逻辑处理组件”---这是JSP相对于PHP,ASP的优越之处之一。
但有时即使使用javabean + servlet,我们也不得不将“极少量”的 java代码 嵌入到HTML中----的确,有时你必须这样:因为在 javabean中,你无法使用JSP中的隐含对象,比如 request,session,response等.
使用Servlet虽然可以使用JSP的对象,但却不能象javaBean灵活地插入到 html 中--
所以,Tag(标签) 就出现了(可以使用所有的JSP隐含对象),它的出现彻底解决了这个问题,可以让你编写出“纯HTML”的JSP页码---由此带来的好处自然不言而喻:更高的可维护性、更高的组件复用效率、更易维护的HTML页面
下面我们就开始我们的第一个TAG吧。
我的开发环境:win2003+tomcat5.5+JDK 1.5.08
1、环境变量设置:
JAVA_HOME:D:\Program Files\programing\Java\jdk1.5.0_08
CATALINA_HOME:C:\tomcat 5.5
path:%JAVA_HOME%\bin;%CATALINA_HOME%\bin
classpath:%JAVA_HOME%\common\lib\tools.jar;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\jsp-api.jar
完成我们的环境配置。
开发一个Tag,需要编写2个主要文件:
1-标签处理器(一个类servlet的java类)
2-标签描述符(一个XML风格的tld文件)
完成这两个文件,就可以在WEB应用中部署、应用了。
2、编写Tag处理器:Datetag.java
它的作用就象一个Servlet,接受来自客户端的请求,但它却可以象javaBean一样在JSP中方便调用。
package tag;
import java.util.Date;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class datetag extends TagSupport{
public int doStartTag() throws JspException{
?? Date dte=new Date();
?? try{
?? JspWriter out=pageContext.getOut();
?? out.print(dte);
? ? }
? ? catch(java.io.IOException e)
? ? {throw new JspTagException(e.getMessage());}
return SKIP_BODY;
}
}
用 javac编译之后,就得到了 datetag.class文件了,将其放在 xxx\WEB-INF\classes\tag 目录下。
3、编写标签描叙符:tags.tld
<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<!--Datetag标签-->
<tag>
<name>date</name>
<!--申明标签处理类-->
<tag-class>tag.Datetag</tag-class>
<!--主体内容标签-->
<body-content>jsp</body-content>
</tag></taglib>
4、配置web.xml(在tomcat目录的conf里面)
配置web.xml,注册你的标签库:在web.xml的 <web-app>和</web-app>之间添加:
在这里注册你的自定义标签符,在JSP中的引用名为:/tags
<taglib>
<taglib-uri>/tags</taglib-uri>
<taglib-location>/WEB-INF/tags.tld</taglib-location>
</taglib>
5、在JSP中使用
因为已经在web.xml中注册过,通过/tags引用你的标签库。prefix的作用相当于bean中的引用id.
<%@ page contentType="text/html;charset=gb2312"%>
<html><body>
<%@taglib uri="/tags" prefix="visa"%>
现在时间是:<visa:date/>
</body>
</html>
**相信到了这里,有人就有了疑问了:为了使用一个Tag,我就做了这么多的“多余”工作(编写tld,修改web.xml,还要重启tomcat),值得吗?!
---答案是:这是很值得的!
1、如果将比较复杂的逻辑功能封装进Tag,它就具有比Servlet,javaBean更高的灵活性,更多的优点,更易扩展,更易维护---彻底分离表示层与逻辑层!
2、因为Tag的功能并非只是这一些,还有更多高级功能---值得去学习!
Posted: 2008-01-10 15:34 |
[楼 主]
pangpeng126
∷
性别:
∷
状态:
∷
等级:
品行端正
∷
发贴:
131
∷
威望:
0
∷
浮云:
413
∷
在线等级:
∷
注册时间: 2005-10-17
∷
最后登陆: 2021-03-26
【
复制此帖地址
只看此人回复
】
5come5帮你背单词 [
cardboard
/'ka:dbo:d/
n. 卡纸,卡纸板
]
求jstl 包,楼主能否发下?谢谢
Posted: 2008-05-02 16:25 |
[1 楼]
快速跳至
|- 站务管理
|- 惩罚,奖励公布区
|- 会员咨询意见区
|- 申请区
|- 已批准申请区
|- 威望和荣誉会员推荐区
|- 5come5名人堂·Hall of Fame
>> 休闲娱乐
|- 灌水乐园 大杂烩
|- 精水区
|- 幽默天地
|- 开怀大笑(精华区)
|- 灵异空间
|- 运动新时空·菠菜交流
|- 动之风.漫之舞
|- 新货上架
|- 古董挖挖
|- 唯美贴图
|- 创意&美化&设计
|- 5COME5头像及签名档图片引用专区
|- 艺术摄影
|- 音乐咖啡屋
|- 音道乐经
>> 热点讨论
|- 工作交流
|- 求职信息
|- 就业精华区
|- 同城联谊
|- 留学专版
|- 情感物语
|- 情感物语精华区
|- 带走一片银杏叶
|- 精华区
|- 新闻直通车
|- 众志成城,抗震救灾
|- 衣食住行
|- 跳蚤市场
|- 旅游出行
>> 学术交流
|- 学业有成
|- 智力考场
|- 考研专版
|- 外语乐园
|- 考试·毕业设计
|- 电子设计·数学建模
|- 学生工作·社团交流·RX
|- 电脑技术
|- 电脑F.A.Q.
|- 软件交流
|- 硬件·数码
|- 程序员之家
|- Linux专区
|- 舞文弄墨
|- 历史&文化
|- 军临天下
|- 军事精华区
|- 财经频道
>> 游戏新干线[电子竞技俱乐部]
|- Blizz@rd游戏特区
|- WarCraft III
|- 魔兽区档案库
|- 魔兽争霸3博彩专区
|- StarCraft(new)
|- 暗黑专区
|- 休闲游戏区
|- PC GAME综合讨论区
|- 实况足球专区
|- Counter-Strike专区
|- TV GAME& 模拟器
|- 网络游戏
>> 资源交流
|- 恋影部落
|- 连续剧天地
|- 综艺开心档
|- 书香小筑
|- 小说发布
|- 资源交流
|- 综艺、体育、游戏资源发布
|- 音乐资源发布区
|- 电影电视剧发布区
|- 字幕园地
我来我网·5come5 Forum
»
程序员之家
Total 0.007749(s) query 5, Time now is:11-21 23:07, Gzip enabled
Powered by PHPWind v5.3, Localized by
5come5 Tech Team
,
黔ICP备16009856号